GQL

詳細情報

タイトル GQL
URL https://github.com/AmrDeveloper/GQL
バージョン ver 0.25.0
更新日 2024/07/10
追加日 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.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.
0.18.0
  • Support unicode in the tokenizer.
  • Migrate to latest chrono and make clippy happy.
  • Support query branch last active date as updated column.
  • Update gix version to 0.62.0.
0.17.0
  • Implement RAND Math functions.
  • Implement REGEXPR expression.
  • Implement NOT REGEXPR expression.
  • fix: Diagnostic position for invalid table name.
  • Update gix version to 0.61.0.
0.16.0

What's Changed

  • Fix Implicit casting with variant type.
  • Support DIV and MOD keywords.
  • Implement REGEXP_INSTR, REGEXP_LIKE, REGEXP_REPLACE and REGEXP_SUBSTR Regex function.
  • Implement DATE, MINUTE, MONTH, LAST_DAY Date functions.
  • Implement WEEKOFYEAR, WEEKDAY, YEARWEEK Date functions.
  • Update gix version to 0.60.0.

Full Changelog: 0.15.0...0.16.0