GQL

詳細情報

タイトル GQL
URL https://github.com/AmrDeveloper/GQL
バージョン ver 0.33.0
更新日 2024/12/19
追加日 2024/03/16
種別 フリーソフト / オープンソース(MIT)
説明 SQLに似た言語を使ってGitリポジトリの情報を操作することができるツール。

レビュー

GQLはGitリポジトリをデータベースファイルと見立てて、SQLによくにたクエリを実行することができるRust製のオープンソースツール。

Windows、macOS、Linuxに対応し、Rustのパッケージ管理ツールcargo等を用いてインストールすることができる。

インストール後、gitqlコマンドでGitリポジトリを指定して実行する。

gitql -r ./GQL
gql > 

例えばSELECTをつかってさまざまな情報を出力することができる。

SELECT * FROM commit
SELECT name, email FROM commits
SELECT name, email FROM commits ORDER BY name DESC, email ASC
SELECT name, email FROM commits WHERE name LIKE "%gmail%" ORDER BY name
SELECT * FROM commits WHERE LOWER(name) = "amrdeveloper"
SELECT name FROM commits GROUP By name
SELECT name FROM commits GROUP By name having name = "AmrDeveloper"

スクリーンショット

更新グラフ

バージョン履歴

0.33.0
  • Check for repositories in the script mode.
  • Support Const String as Alias.
  • Fix show tables query.
  • Support Implicit casting in both directions of binary expressions.
  • Support Window functions.
  • Support ORDER BY in window function over clause.
  • Support named Window over clauses.
  • Improve resolving variable arguments of dynamic type ...Dynamic.
  • Implement FIRST_VALUE, NTH_VALUE, LAST_VALUE window functions.
  • Implement ROW_NUMBER window function.
  • Support Partition by clause in Window definition.
  • Aggregation and Window function arguments by reference.
  • Support NULLS FIRST and NULLS LAST in ORDER BY statement.
  • Report error where a window or aggreg
(省略されました)
0.32.0
  • Support Contained By expression using @> operator for Array, Range.
  • Support Contained By expression using <@ operator Array, Range.
  • Change Between Expr syntax to be BETWEEN X AND Y.
  • Supports Between [Symmetric | Asymmetric] X AND Y kinds.
  • Supports NOT BETWEEN expression.
  • Support NOT LIKE expression.
  • Support Explicit cast from Date to DateTime.
  • Generate different name for column and hidden selections.
  • Improve the structure of the Tokenizer.
  • Implement TO_HEX Text Function.
  • Support Escape characters in the Tokenizer.
  • Implement Scripting mode from external file.
  • Support NOT as prefix unary operator.
  • Prefix unary expression Bitwise
(省略されました)
0.31.0
  • Implement Cast function call expression CAST(expr AS <Type>).
  • Implement Cast operator expr::<type>.
  • Created the TypesTable component to register types and aliases.
  • Fix schema datetime and updated types from Date to DateTime.
  • Fix consuming table name twice.
0.30.0

  • Implement Composite type.
  • Implement Member access expression for Composite type.
  • Replace atty with std is_terminal.
  • Improve order of iterating over composite type members.
  • Fix comparions operators for String, Date, Time and DateTime
0.29.1
  • Implement Dynamic type system.
  • Implement new Dynamic values system.
  • Improve the output printer implementation.
  • Change the analysis format to be similar to popular engines.
  • Implement benchmark function.
  • Implement Bitwise XOR operator for integers.
  • Implement Contained By expression using <@ operator.
  • Speedup order by statement by using pre eval map.
  • Support multi lines and unicode in LIKE and REGEX expressions.
  • Improve error message for invalid column name.
  • Improve safety check for std or aggregation signature.
  • Migrate to Gix 0.67.0.
  • Integrate with LineEditor.
0.28.0
  • Enable LTO (Link time optimization).
  • Optimize set alias for selected expression.
  • Handle groups rows elemenations in case group by don't create extra groups #117.
  • Implement contains operator for Range in other Range.
  • Implement IF, IFNULL general functions.
  • Implement ARRAT_POSITIONS, TRIM_ARRAY array functions.
  • Implement ISEMPTY range function.
  • Implement WITH ROLLUP feature.
  • Implement ORDER BY ... USING <operator> feature.
  • Implement Overlap operator for Arrays and Ranges.
  • Remove hidden selection information from the render.
  • Handle WITH ROLLUP edge case for using one column only in grouping.
  • Improve classifying columns on tables.
(省略されました)
0.27.0
  • Improve comparing Arrays values.
  • Support Range data types.
  • Implement int4range range function.
  • Implement daterange range function.
  • Implement tsrange range function.
  • Simplify the dynamic types helper functions.
  • Implement ARRAY_PREPEND function.
  • Implement ARRAY_REMOVE function.
  • Implement ARRAY_APPEND Array function.
  • Implement ARRAY_REPLACE Array function.
  • Update ARRAT_POSITION signature.
  • Organize the std functions registers.
  • Implement BIT_XOR Aggregation function.
  • Implement ARRAY_AGG Aggregation function.
  • Improve the type checker to resolve dynamic types in arguments.
  • Implement Contains operator @&g
(省略されました)
0.26.0
  • Fix iagnostic position when parsing undefined symbol.
  • Improve handle error in data provider.
  • Don't apply CROSS join operator if one of the tables is empty.
  • Update docs for new Data provider design.
  • Remove un needed code for remove hidden selection after engine.
  • Support exponentiation operator.
  • Optimize the calling of data provider if table is empty.
  • Implement Select ... INTO OUTFILE.
  • Support INTO OUTFILE Terminated options and enclosed.
  • Implement Select ... into dumpfile feature.
  • Improve error messages when use options with dumpfile.
0.25.0

Support JOIN more than two tables togther in same query.

  • Handle hidden selection with multi tables.
  • Support query datetime from diffs table.
  • Implement LEFT, RIGHT, INNER and CROSS JOINS operation.
  • Implement JOIN predicate using ON keyword.
  • Simplifiy the DataProvider Design.
  • Implement Bitwise xor operator.
  • Change XOR operator to match postgresql.
  • Implement ARRAY_SHUFFLE Array function.
  • Implement ARRAY_POSITION Array Function.
  • Implement ARRAY_DIMS Array Function.
  • Support Infinity and NaN values.
  • Support OUTER keyword.

0.24.0
  • Fix passing global variable value to function call.
  • Support slice with default start and end and optimize it.
  • Implement PostgreSQL DISTINCT ON operator.
  • Support GROUP BY one or more expression.
  • Improve the parse and performance of DESCRIBE query.
  • Support PostgreSQL boolean values literals.
  • Support query parents_count of commit.
  • Support query committer_name and committer_email of commit.
  • Rename name and email to author_name and author_email of commit.
  • Support commit_conventional function in gitql application.
  • Support implicit casting in WHERE statement.
  • Support implicit casting in HAVING statement.
(省略されました)
0.23.0
  • Fix resolving return type of function with Dynamic and depend on Variant types.
  • Fix Projection check for symbols after select statement.