--- obj: application website: https://amrdeveloper.github.io/GQL/ repo: https://github.com/amrdeveloper/GQL --- # GitQL GQL is a query language with a syntax very similar to SQL with a tiny engine to perform queries on `.git` files instance of database files, the engine executes the query on the fly without the need to create database files or convert `.git` files into any other format, note that all Keywords in GQL are case-insensitive similar to SQL. ## Examples ```sql SELECT 1 SELECT 1 + 2 SELECT LEN("Git Query Language") SELECT "One" IN ("One", "Two", "Three") SELECT "Git Query Language" LIKE "%Query%" SELECT INTERVAL '1 year 2 mons 3 days 04:05:06.789' SET @arr = [1, 2, 3]; SELECT [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; SELECT @arr[1], @arr[2], @arr[3], ARRAY_LENGTH(@arr); SELECT @arr[1:2], @arr[2:], @arr[:2]; SELECT DISTINCT title AS tt FROM commits SELECT author_name, COUNT(author_name) AS commit_num FROM commits GROUP BY author_name, author_email ORDER BY commit_num DESC LIMIT 10 SELECT commit_count FROM branches WHERE commit_count BETWEEN 0 AND 10 SELECT * FROM refs WHERE type = "branch" SELECT * FROM refs ORDER BY type SELECT * FROM commits SELECT author_name, author_email FROM commits SELECT author_name, author_email FROM commits ORDER BY author_name DESC, author_email ASC SELECT author_name, author_email FROM commits WHERE author_email LIKE "%gmail%" ORDER BY author_name SELECT * FROM commits WHERE LOWER(author_name) = "amrdeveloper" SELECT author_name FROM commits GROUP By author_name SELECT author_name FROM commits GROUP By author_name HAVING author_name = "AmrDeveloper" SELECT * FROM branches SELECT * FROM branches WHERE is_head = true SELECT name, LEN(name) FROM branches SELECT * FROM tags SELECT * FROM tags OFFSET 1 LIMIT 1 SELECT path, count() AS changes_count, SUM(insertions) AS additions, SUM(removals) AS removes FROM diffs_changes GROUP BY path ORDER BY changes_count DESC ```