- Support
=operator between Raw expressions. - Support
!=operator between Raw expressions. - Migrate to Gix 0.80.0.
- Fix out of index panic when groups length is zero.
- Handling optional commit author and committer.
- Add interval to supported types.
- Support postgresql syntax of intervals.
- Migrate to Gix 0.74.1.
- Support postgresql style for defining number literal.
SELECT 0b_100_101, 0B_100_11001, 0o_273, 0O_755, 0x_42f, 0X_FFFF
- Support C-style block comments.
- Support Unary plus operator.
- Implement
cardinalityfunction for array.
- Extend the list of string representation of true & false state.
- Always check the posibility for implicit casting before explicit one.
- Support
infkeyword as alias for infinity. - Add support for Range lower and upper bounds.
- Implement
Rowtype and value. - Add support for
Rowkeyword.
- Improve the printers to catch pipe errors.
- Allow OFFSET to take variable expression.
- Extend
DOcommand to execute one or more expression. - Implement
QUALIFYstatement. - Migrate to Gix 0.72.1.
- Improve Invalid table name diagnostic to suggest the closest correct name.
- Support output yaml format.
- Implement theme customization for table printer.
- Migrate to Gix 0.71.0.
- Implement Group Comparison Expression
Expr <Op> <ALL | ANY | SOME> Expr. - Implement Group Comparison Expression for
Int,Float,Text, andBooltypes. - Implement Group Comparison Expression for
Date,TimeandDateTimetypes. - Improve the unresolved table error message.
- Fix number of required arguments error message.
- Fix type checker case of variant.
- Implement Interval type, value and ast node.
- Fix token position after consuming comments.
- Add support for interval
+,-,*and/operators. - Add support for interval
=and!=operators. - Add support for interval
>,>=,<and<=operators. - Check that interval value in range -170M to 170M.
- Add support for
+and-operator betweenDateandInt. - Implement
justify_days,justify_hoursinterval functions.
- Fix implicit casting RHS with greater operator.
- Improve implicit casting when applying operators.
- Implement
DIFF_CHANGED_FILESdiff function. - Improve calculating diff line stats.
- Introduce a new table for
diffs_changesto perform analysis on every change. - Fix the order of applying distinct operator plan.
- Allow
LogicalExprto return dynamic type depend on operands. - Speedup selecting from diffs table by 58.36% (In Gitql repo from 6.001383125s to 2.4985875s) #124.
- Speedup selecting from refs table by 32.45% (In Gitql repo from 5.367084ms to 3.625292ms).
- Support overriding
LIKE,GLOBandREGEXPfor user defined types. - Introduce
diff_changescolumn in diffs table to store changes. - Rename
deletionscolumns toremovalsin diff table. - Implement
DIFF_CONTENT,DIFF_ADDED_CONTENT,DIFF_DELETED_CONTENTandDIFF_MODIFIED_CONTENTfunctions in GitQL App scope. - Implement
DIFF_CONTENT_CONTAINSandDIFF_ADDED_CONTENT_CONTAINSfunctions in GitQL App scope. - Implement
DIFF_DELETED_CONTENT_CONTAINSandDIFF_MODIFIED_CONTENT_CONTAINSfunctions in GitQL App scope. - Implement
DIFF_FILES_COUNTandIS_DIFF_HAS_FILEfunctions in GitQL App scope. - Create constructors for Types and Values that make it easy to create instance.
- 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
ORDERBY in window function over clause. - Support named Window over clauses.
- Improve resolving variable arguments of dynamic type
...Dynamic. - Implement
FIRST_VALUE,NTH_VALUE,LAST_VALUEwindow functions. - Implement
ROW_NUMBERwindow function. - Support Partition by clause in Window definition.
- Aggregation and Window function arguments by reference.
- Support
NULLS FIRSTandNULLS LASTinORDER BYstatement. - 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 Ykinds. - Supports
NOT BETWEENexpression. - Support
NOT LIKEexpression. - Support Explicit cast from
DatetoDateTime. - Generate different name for column and hidden selections.
- Improve the structure of the Tokenizer.
- Implement
TO_HEXText 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
attywith 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
benchmarkfunction. - 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
LIKEandREGEXexpressions. - 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,IFNULLgeneral functions. - Implement
ARRAT_POSITIONS,TRIM_ARRAYarray functions. - Implement
ISEMPTYrange function. - Implement
WITH ROLLUPfeature. - Implement
ORDER BY ... USING <operator>feature. - Implement Overlap operator for Arrays and Ranges.
- Remove hidden selection information from the render.
- Handle
WITH ROLLUPedge 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_POSITIONsignature. - Implement
int4range,daterange,tsrangerange function. - Implement
ARRAY_PREPEND,ARRAY_REMOVEArray functions. - Implement
ARRAY_APPEND,ARRAY_REPLACEArray functions. - Implement
BIT_XOR,ARRAY_AGGAggregation 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
datetimefrom diffs table. - Implement LEFT, RIGHT, INNER and CROSS JOINS operation.
- Implement JOIN predicate using
ONkeyword. - Simplifiy the DataProvider Design.
- Implement Bitwise
xoroperator. - Change XOR operator to match postgresql.
- Implement
ARRAY_SHUFFLEArray function. - Implement
ARRAY_POSITIONArray Function. - Implement
ARRAY_DIMSArray Function. - Support
InfinityandNaNvalues. - Support
OUTERkeyword.
- Fix passing global variable value to function call.
- Support slice with default start and end and optimize it.
- Implement PostgreSQL
DISTINCT ONoperator. - Support
GROUP BYone or more expression. - Improve the parse and performance of
DESCRIBEquery. - Support PostgreSQL boolean values literals.
- Support query
parents_countof commit. - Support query
committer_nameandcommitter_emailof commit. - Rename
nameandemailtoauthor_nameandauthor_emailof commit. - Support
commit_conventionalfunction in gitql application. - Support implicit casting in
WHEREstatement. - Support implicit casting in
HAVINGstatement.
- 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_andandbit_orAggregation function. - Implement Array literal and Index expression.
- Implement Index expression for Multi dimensions arrays.
- Implement Index expression and fix exception handling.
- Implement
array_lengthArray function. - Fix runtime exception handling.
- Make
COUNT()aggregation argument to beOption<Any>. - Replace
lazy_staticcrate bystd::sync::OnceLock. - Migrate to gix
0.63.0. - Fix hidden selection in group by statement.
- Implement
GROUP_CONCATAggregation function. - Catching function argument with undefined type.
- Update Regex expression implementation to not converted to call.
- Introduce
gitql-coreandgitql-stdto allow dynamic std. - Implement
BINText function. - Implement
bool_andandbool_oraggregation 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
UUIDgeneral function. - Implement
STRTExt function.
- Support unicode in the tokenizer.
- Migrate to latest chrono and make clippy happy.
- Support query branch last active date as
updatedcolumn. - Update
gixversion to0.62.0.
- Implement
RANDMath functions. - Implement
REGEXPRexpression. - Implement
NOT REGEXPRexpression. - fix: Diagnostic position for invalid table name.
- Update
gixversion to0.61.0.
- Fix Implicit casting with variant type.
- Support
DIVandMODkeywords. - Implement
REGEXP_INSTR,REGEXP_LIKE,REGEXP_REPLACEandREGEXP_SUBSTRRegex function. - Implement
DATE,MINUTE,MONTH,LAST_DAYDate functions. - Implement
WEEKOFYEAR,WEEKDAY,YEARWEEKDate functions. - Update
gixversion to0.60.0.
- implement 'describe table_name' to show fields and types of a table.
- Add mysql like
show tablesstatement to list all available tables. - Implement
DAYOFWEEK,DAYOFMONTHandDAYOFYEARDate functions. - Implement
QUARTER,YEARandTO_DAYSDate function. - Implement
QUOTENAMEString 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
ROUNDimplementation to supports decimal places. - Implement
MODfunction. - Implement Dynamic DataType to be calculated depending on other types.
- Make
SINGfunction accept Int or Float type. - Implement
CONCAT_WSText function. - Fix Minus unary operator for f64.
- Implement exporting data as
JSON,CSV. - Implemnet
DAYDate 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 OFFSETshorthand inspired by MySQL. - Implement
HOURDate functions. - Implement
STRCMPText Function. - Implement
GREATEST,LEASTGeneral function. - Implement
ISDATEDate function. - Optimize
inexpression in case of empty list. - Add Support for
NOT INexpression. - Report error if user write un expected content after valid statement.
- Fix Date and DateTime incorrect equals #71.
- Allow
BETWEENto 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
Eithertype in the type system. - Support
Optionaltype in the type system. - Support
Varargstype in the type system. - Implement
ACOS,ATAN,ATN2andSIGNMath functions. - Implement
CHARINDEXText function. - Implement
DAYNAME,MONTHNAMEDate functions. - Update
CONCATText function to accept 2 or more Text values. - Support Aggregation
MAX,MINto 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
CONCATfunction to work with any value type.
- Migrate from
git2togix. - Implement
ASINfunction. - Implement
TANfunction. - Use current directory as repository path if no path is passed.
- Implement
--query | -qflat 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
typeoffunction. - Implement
ROUNDfunction. - Make Identifiers case-insensitive.
- Support
<=>operator. - Implement
SINfunction. - Implement
COSfunction. - Support Implicit casting Text to Time.
- Support Implicit casting Text to Date.
- Support Implicit casting DateTime to Text.
- Support
GLOBkeyword. - Support
DISTINCTkeyword. - 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
PIfunction. - Implement
FLOORfunction.
- Support
NULLkeyword. - Implement
ISNULL,ISNUMERICfunctions. - Handle crash for undefined symbol as argument at runtime.
- Implement
NOWfunction. - Fix handling grouping with aggregations.
- Print Date and DateTime with formats.
- Support
LikeExpression. - Remote un needed Check expression.
- Support order by any expression.
- Ignore input if its empty or new line.
- Update Git2 version from
0.17.1to0.18.0. - Implement 20 Text Functions #13 by @Lilit0x and @tbro.
- Support
<<and>>overflow. - Fix reporting error with out of index position.
- Implement
Caseexpression. - 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,rtrimfunction.. - 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
ascanddesc. - 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
WHEREorHAVINGcondition 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.