GQL

詳細情報

タイトル GQL
URL https://github.com/AmrDeveloper/GQL
バージョン ver 0.28.0
更新日 2024/09/28
追加日 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.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.
0.22.1
  • Hot fix type checker if eval expression without table.
0.21.0
  • Implement bit_and and bit_or Aggregation function.
  • Implement Array literal and Index expression.
  • Implement Index expression for Multi dimensions arrays.
  • Implement Index expression and fix exception handling.
  • Implement array_length Array function.
  • Fix runtime exception handling.

Full Changelog: 0.20.0...0.21.0

0.20.0
  • Make COUNT() aggregation argument to be Option<Any>.
  • Replace lazy_static crate by std::sync::OnceLock.
  • Migrate to gix 0.63.0.
  • Fix hidden selection in group by statement.
  • Implement GROUP_CONCAT Aggregation function.
  • Catching function argument with undefined type.
  • Update Regex expression implementation to not converted to call.
  • Introduce gitql-core and gitql-std to allow dynamic std.
  • Implement BIN Text function.
  • Implement bool_and and bool_or aggregation functions.

Full Changelog: 0.19.1...0.20.0

0.19.1
  • Fix Count aggregation function parameter type #101 .
0.19.0
  • Improve the structure of the parser.
  • Support string literal with single quotes.
  • Improve the Type checker to allow mix of optional and varargs parameters.
  • Implement UUID general function.
  • Implement STR TExt function.