GQL

詳細情報

タイトル GQL
URL https://github.com/AmrDeveloper/GQL
バージョン ver 0.31.0
更新日 2024/11/13
追加日 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.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.
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