- Check for repositories in the script mode.
- Support Const String as Alias.
- Fix show tables query.
- Support Implicit casting in both direction 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
andNULLS LAST
inORDER BY
statement. - Report error where window or aggregate value is used before evaluation.
- Improve the performance of filtering operator.
- 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
toDateTime
. - 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 not.
- 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.
- Implement Composite type.
- Implement Member access expression for Composite type.
- Replace
atty
with std is_terminal. - Improve order of iterating over composite type members.
- 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
andREGEX
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.
- 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.
- Improve comparing Arrays values.
- Support Range data types.
- Simplify the dynamic types helper functions.
- Update
ARRAT_POSITION
signature. - Implement
int4range
,daterange
,tsrange
range function. - Implement
ARRAY_PREPEND
,ARRAY_REMOVE
Array functions. - Implement
ARRAY_APPEND
,ARRAY_REPLACE
Array functions. - Implement
BIT_XOR
,ARRAY_AGG
Aggregation functions. - Organize the std functions registers. ]- Improve the type checker to resolve dynamic types in arguments.
- Implement Contains operator
@>
between Range and Element.
- 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.
- 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
andNaN
values. - Support
OUTER
keyword.
- 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
andcommitter_email
of commit. - Rename
name
andemail
toauthor_name
andauthor_email
of commit. - Support
commit_conventional
function in gitql application. - Support implicit casting in
WHERE
statement. - Support implicit casting in
HAVING
statement.
- Fix resolving return type of function with Dynamic and depend on Variant types.
- Fix Projection check for symbols after select statement.
- Hot fix type checker if eval expression without table.
- Allow using column native name in condition after alias it
- Implement Slice expression for Collection
[start : end]
. - Implement Slice expression for Collection with optional start and end.
- Fix calling function without table name.
- Improve projection columns type checker
- Implement
bit_and
andbit_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.
- Make
COUNT()
aggregation argument to beOption<Any>
. - Replace
lazy_static
crate bystd::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
andgitql-std
to allow dynamic std. - Implement
BIN
Text function. - Implement
bool_and
andbool_or
aggregation functions.
- Fix Count aggregation function parameter type.
- 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.
- 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 to0.62.0
.
- Implement
RAND
Math functions. - Implement
REGEXPR
expression. - Implement
NOT REGEXPR
expression. - fix: Diagnostic position for invalid table name.
- Update
gix
version to0.61.0
.
- Fix Implicit casting with variant type.
- Support
DIV
andMOD
keywords. - Implement
REGEXP_INSTR
,REGEXP_LIKE
,REGEXP_REPLACE
andREGEXP_SUBSTR
Regex function. - Implement
DATE
,MINUTE
,MONTH
,LAST_DAY
Date functions. - Implement
WEEKOFYEAR
,WEEKDAY
,YEARWEEK
Date functions. - Update
gix
version to0.60.0
.
- implement 'describe table_name' to show fields and types of a table.
- Add mysql like
show tables
statement to list all available tables. - Implement
DAYOFWEEK
,DAYOFMONTH
andDAYOFYEAR
Date functions. - Implement
QUARTER
,YEAR
andTO_DAYS
Date function. - Implement
QUOTENAME
String function. - Fix Parsing function without right paren at the end
- Implement DataProvider interface to allow custom data.
- Implement Data Schema component to allow custom data schema.
- Improve
ROUND
implementation to supports decimal places. - Implement
MOD
function. - Implement Dynamic DataType to be calculated depending on other types.
- Make
SING
function accept Int or Float type. - Implement
CONCAT_WS
Text function. - Fix Minus unary operator for f64.
- Implement exporting data as
JSON
,CSV
. - Implemnet
DAY
Date function - Fix not reporting diagnostic when date or time format has number out of range.
- Perform projection operator before export as
JSON
,CSV
. - Fix the order of parsing prefix unary with binary expression.
- Handle passing 0 tokens to the parser.
- Change GitQLObject structure to get more speedup and keep values sorted.
- Supports
LIMIT OFFSET
shorthand inspired by MySQL. - Implement
HOUR
Date functions. - Implement
STRCMP
Text Function. - Implement
GREATEST
,LEAST
General function. - Implement
ISDATE
Date function. - Optimize
in
expression in case of empty list. - Add Support for
NOT IN
expression. - Report error if user write un expected content after valid statement.
- Fix Date and DateTime incorrect equals #71.
- Allow
BETWEEN
to work with any type. - Fix ArithmeticExpression expr_type if any side is float.
- Support Assignment expressions
@name := value
. - Allow Assignment expressions to store aggregation value.
- Allow lazy evaluate any expression that has aggregation value.
- Prevent assign aggregation value to global variable with SET statement.
- Support creating identifier using backticks.
- Support
Either
type in the type system. - Support
Optional
type in the type system. - Support
Varargs
type in the type system. - Implement
ACOS
,ATAN
,ATN2
andSIGN
Math functions. - Implement
CHARINDEX
Text function. - Implement
DAYNAME
,MONTHNAME
Date functions. - Update
CONCAT
Text function to accept 2 or more Text values. - Support Aggregation
MAX
,MIN
to work with different types. - Support Implicit Type casting for Function arguments.
- Revamp GQLError to a new Diagnostic representation.
- Migrate to Gix v0.57.0.
- Update
CONCAT
function to work with any value type.
- Migrate from
git2
togix
. - Implement
ASIN
function. - Implement
TAN
function. - Use current directory as repository path if no path is passed.
- Implement
--query | -q
flat to run a single query without repl mode. - Support receiving input from a pipe or file redirection.
- Support consuming
;
at the end of query main statement. - Support User defined variables.
- Suppoer
:=
operator.
- Preallocate the attributes hash with row length.
- Fix Clippy comments and setup CI for Lint and Format.
- Implement
typeof
function. - Implement
ROUND
function. - Make Identifiers case-insensitive.
- Support
<=>
operator. - Implement
SIN
function. - Implement
COS
function. - Support Implicit casting Text to Time.
- Support Implicit casting Text to Date.
- Support Implicit casting DateTime to Text.
- Support
GLOB
keyword. - Support
DISTINCT
keyword. - Make sure
SELECT *
used with specific table. - Migrate from Prettytables-rs to comfy-table for render tables.
- Support optional Pagination with user custom page size.
- Support
<>
Operator. - Implement
PI
function. - Implement
FLOOR
function.
- Support
NULL
keyword. - Implement
ISNULL
,ISNUMERIC
functions. - Handle crash for undefined symbol as argument at runtime.
- Implement
NOW
function. - Fix handling grouping with aggregations.
- Print Date and DateTime with formats.
- Support
Like
Expression. - Remote un needed Check expression.
- Support order by any expression.
- Ignore input if its empty or new line.
- Update Git2 version from
0.17.1
to0.18.0
. - Implement 20 Text Functions #13 by @Lilit0x and @tbro.
- Support
<<
and>>
overflow. - Fix reporting error with out of index position.
- Implement
Case
expression. - Support bang equal != for comparisons.
- Improve error message for unexpected token.
- Support negative numbers.
- Add repository path as a field for data all tables.
- Make function name case-insensitive.
- Implement Text
reverse
,replicate
,ltrim
,rtrim
function.. - Select the same field twice.
- Optimize engine to work on one repo only if table name is empty.
- Fix merging empty groups.
- Add custom error message for invalid use of
asc
anddesc
. - Fix resolving symbols.
- Fix name alias for non symbols.
- Fix name alias for aggregation function.
- Use aggregation function after select statement.
- Don't allow using aggregation in where statement.
- Fix hidden selections.
- Alias the same name twice.
- Fix evaluate function before argument.
- Split the project into multi crates.
- Support query from multi repositories.
- Add CLI flag to enable/disable reporting analysis.
- Report error when
WHERE
orHAVING
condition is not boolean. - Introduce Runtime exceptions.
- Report runtime exception for divide by zero.
- Report runtime exception for reminder by zero.
- Report runtime exception for right and left shift overflow.
- Prevent crash and report more error messages.
- Make sure select statement is used before any other statement.
- Make sure having is used after group by expression.
- Support hex decimal number format.
- Support binary decimal number format.
- Support octal decimal number format.
- Support Aggregations function without selecting the field.
- Support Merging group if it only select aggregations.
- Implement Aggregation functions
avg
. - Improve render performance.
- Allow calling aggregation function with upper or lower cases.
- Implement Aggregation functions
count
,max
,min
,sum
. - Implement insertions, deletations, file changes for diffs table.
- Remove un needed dependencies #4.
- Publish the project on crates.io.
- Create docs website.
- Support Number expression.
- Support Arithmetics operators.
- Support Bitwise operators.
- Support selecting commit id
- Support Aggregation Functions.
- Select number of commits for each branch.
- Add column alias name.
- Add Group by statement.
- Add Having statement.
- Support order by Ascending and Descending.
- Introduce simple type system with error messages.
- Report error messages for transformations.
- Allow engine to reorder the commands.
- Print output in table format.
- First release of GQL.