* Support MDX.
* [pretty print] format privot table in a more readable layout
* [pretty print] format AnalyticFunction in a more readable layout
* [pretty print] rewrite algorithm for begin_no_format/end_no_format
* [pretty print] new format option:gfmtopt.AlignAndOrWithOnInJoinClause, able to align AND/OR keywords with ON in join clause
* [pretty print] new format option:gfmtopt.expr_concat_string_max_length, format string concat expression into a more readable format.
* [pretty print] new format options:
gfmtopt.CaseWhenInSamelineAsCase
gfmtopt.CaseThenExprInNewline
gfmtopt.CaseElseExprInNewline
make case expression in a new layout.
* [pretty print] new format options:
gfmtopt.BEStyle_createtable_leftBEIndentSize
gfmtopt.BEStyle_createtable_rightBEIndentSize
gfmtopt.Createtable_Fieldlist_Comma_option
gfmtopt.Createtable_Fieldlist_Style
these format options apply to declare table as well.
* [pretty print] new format option: gfmtopt.Insert_Columns_Per_line
This format option make it much easy to link value to column in insert statement.
if there is a subquery in insert statement, select list also effected by this option no
matter what's value of Select_Columnlist_Style was set.
* [pretty print] new format options: gfmtopt.WhereClauseAlignExpr, align expression in where
clause
* [pretty print] new format options: gFmtOpt.AlignAliasInFromClause, align table alias in from
clause.
* [DB2] support alter table alter column drop identity|default
* [db2] support alter table drop column.
* [db2] case keyword can be used as table name.
* [MySQL] support is [not] [false|true] predicate
* [sqlserver] support real number 0xabc in updatetext
* Rewrite procedure TCustomSqlStatement.ReBuildSql(pFlags: TRebuildFlags);
in order to fix bug that use lots of memory which cause Very Slow Performance of Rebuild query
with 100 SQL variables in ASP.NET application
* [msaccess] support alter table add column.
* add TGSqlParser.OnMetaDatabaseTableColumn, user can provide meta information of database to
help SQL parser to determine relationship between column and tables.
* [oracle/plsql] support keyword ARRAY as type name.
* [oracle/plsql] fixed a bug can't parse select statement in plsql if there is a ) before order by clause.
* [oracle/plsql] support object access method in using clause.
* fix a bug that onFieldToken event fired twice for a column in create table statements
* [mysql] support multi \ escape character in literal
* able to pretty print big script without out of memory exception.
* fix a bug doesn't support sql server OPENDATASOURCE syntax.
* fix a bug doesn't support MySQL b'0' literal
* support sql server create trigger of ddl
* support with clause in insert statement of sql server
* support sql server xml data type
* support WITH(HOLDLOCK) in merge statement
* introduce TLzTable.withBeforeAlias and TLz_TableRef._withBeforeAlias
* support GRANT EXECUTE ON OBJECT::G2.GetAssetTagComponentMap TO public
* supprt OPTIMIZE FOR query hint
* support exists subquery in if updated() column
* add support for WITH (TABLOCKX)
* support alter index of SQL Server
* support variable in merge into name
* fix a memory leak bug.
* able to provide a TSelectSqlStatement for the third parameter of the OPENROWSET
as well as the full AsXmlText for a TSelectSqlStatement
* support error as table alias
* [ms access] support Precision of text data type
* [sql server] support NOT FOR REPLICATION clause in reference clause
* [sql server] support string variable while Execute a character string
* support - character in DB2 identifier
* set parenthesis in the left side of set clause of DB2.
* rename unit dbcmds to lzdbcmds.
* support sql server deny statement
* support sql statement that block statement that follow declare statement directly.
* support FETCH FIRST ROW ONLY
* fixed a bug which will slow down the parse( and even freeze the parse) when the table name is a big query
* add %prec OUTER_JOIN to rule joined_table, so all of those table_ref XXX RW_JOIN table_ref have the same priority, this make following sql organized correctly:
SELECT *
FROM S1
natural join w3
LEFT OUTER JOIN S2
ON S1.S = S2.S
* new format options:
gfmtopt.declare_list_style,
gfmtopt.declare_comma_option,
gfmtopt.LinebreakBeforeParamInExec replaced by
gfmtopt.exec_first_paramater_in_newline
gfmtopt.exec_parameters_style
gfmtopt.exec_parameters_comma_option
gfmtopt.exec_parameters_align_value
* fix a bug that can't modify case of quoted identifier of table/column/alias
* make the result xml of group by clause is same in GroupbyClause.AsXmlText vs. parser.XmlText
* Able to access view alias by introduce a new property TCreateViewSqlStatement.AliasClause which is type of _TOracleViewAliasClause
* TSourceToken.DBObjType of plsql package, procedure and funtion set correctly.
* support delete clause in merge_update_clause of merge statement:
* fix a bug that in DB2 insert value clause, all list was treated as a single expression.
* fix a bug that merge statement inside begin...end block was not handled
* support interval expression in plsql
* support BULK COLLECT INTO clause of EXECUTE IMMEDIATE
* Bug the bug that can't format PLSQL correctly.
* MS access, fully support DROP TABLE statement.
* star (*) was treated as a column name of t in this SQL: select * from t
* add new format option:
gfmtopt.Subquery_Newline_After_IN,
gfmtopt.Subquery_Newline_After_EXISTS
gfmtopt.Subquery_Newline_After_ComparisonOperator
gfmtopt.Subquery_Newline_Before_ComparisonOperator
* add support for sybase: create join index, drop join index in sql server engine
* Oracle: support DETERMINISTIC keyword in function specification when create package.
* at least 2x faster than previous version.
* fix a bug when search table/column relations in subquery with union set operation.
* arguments in analytic Function processed correctly.
* if there are syntax errors in some SQL statements in a script, other valid SQL statements will be formatted.
* SQL server lexer was enhanced to handle string that not ended correctly.
* Increase the trial version's query size limitation to 10000 characters which is adequate for you to evaluate this SQL Parser for the most SQL scripts.
* Add 90 days time limitation.
* support multi fields in delete statement of Microsoft Access
* identifier can start with digit 0-9 in Microsoft Access
* fix a bug that can't recognize alter view correctly in getrawsqlstatement,
* add 2 demos to illustrates how to beautify sql.
* format options in COM version now is the same as .NET version.
* TSourceToken.Location can be used to check which clause a column belongs to.
* datepart argument in DATEADD, DATENAME,DATEDIFF,DATEPART function
wouldn't be recognized as a column name.
* fix a bug that SQL statement inside Oracle pl/sql will be visited twice.
* gfmtopt.BEStyle_Function_BodyIndent was replaced by BEStyle_BlockIndentSize.
* add support for access transform, parameters statement.
* Support BEGIN;...END; syntax of SQL Server.
* Add 3 new format options: gfmtopt.expr_parenthesis_innewline, gfmtopt.expr_remove_redundant_brackets,gFmtOpt.Insert_Parenthesis_in_separate_line
* Format comment in parameters declaration of stored procedure was enhanced
* Having clause before group by clause in select statement was supported.
* Syntax like this in PL/SQL was supported: Insert into g_price_marginal_rule values marginal
* Support qualified name like this: dbo.##BondDetail2.
* Fully support of SQL Server truncate table.
* Tested on .NET framework 4, and fixed a minor bug.
* Add a new function lzbasetype.AutoDetectCharacterSet to detect sql file encoding.
* Easy to check what's type of sql statement those class were represented by using
SqlStatementType of TMssqlIfElse,TMssqlCreateprocedure, TMssqlCreatefunction and TMssqlCreatetrigger.
* Introduce a new class: TMssqlDropProcedure
* Sql statement in exec_string can be fetch via execute statement's ChildNodes.
* Add a new demo: affectedObject to determine affected database objects in sql file.
* refine alter option in alter table statement. and add some new code in analyzscript to illustrate how to use this option.
* add new property: TLzAlterTableOption._ndColumnName
* remove TLzAlterTableOption.ColumnConstraintList
* Introduce a new class: TLz_AttrList, represents a list of qualified name
* TLzConstraint.ConstraintColumnList was removed, and replaced with ColumnNameList
* New property: TLz_Attr.sortToken, this property was used when column names in
primary key/foreign key had sort(asc,desc) information.(this is for sql server only)
* fix a bug that missing distinct/top clause information in TSelectSqlStatement.GetAsXmlText
* [sql server] full support of SQL Server Drop Index statement, and add demo code in analyzescript to show how to use TMssqlDropIndex.
This is the first official released Java version as stable as .NET version, support Oracle, SQL Server, DB2, MySQL, Access, and Teradata. All features in .NET version were available except sql formatter.
* Change license mode to enterprise edition license(support all following database: oracle, sql server, db2, mysql, and enable all developers in a physical site to use this library) and professional edition license(support one of following database: oracle, sql server, db2, mysql, and enable one developer in a physical site to use this library).
* If you need to distribute this library together with your application to end users, please contact sales@sqlparser.com for a distribution license.
* [Oracle] support comment on statement.
* [Oracle] support create synonym statement.
* [Oracle] support compress/uncompress clause in physical_properties.
* [Oracle] able to get sequence name and options.
* [internal] adjust max_matches value to reduce usage of memory, improve performance.
* introduce a new property: TLzField.DisplayName, this property returns alias name of
a column if any, otherwise, return column name.
* fix bug that TLzField.Name returns a dot before fieldname.
* support "not for replication" clause in IDENTITY property of sql server.
* intorduce 9 format options
gFmtOpt.IntoClauseInNewline
gFmtOpt.WhereClauseInNewline
gFmtOpt.GroupByClauseInNewline
gFmtOpt.OrderByClauseInNewline
gFmtOpt.HavingClauseInNewline
gFmtOpt.Update_Columnlist_Style
gFmtOpt.LinefeedsAndOr_option
control and/or keyword in condition before newline or after newline or no linebreak.
gFmtOpt.Select_Groupby_Style
gFmtOpt.Select_Orderby_Style
* Handle "TOP X" the same as "DISTINCT"
* [sql server] support Sparse Columns of sql server 2008.
* [sql server] support SQL Server 2008 new introduced several extensions to the GROUP BY clause:
GROUPING SETS, CUBE, and ROLLUP subclauses of the GROUP BY clause and the GROUPING_ID function.
* [sql server] support delete in merge not matched clause.
* [sql server] support sql server 2008 HIERARCHYID Data Type
* [sql server] support Compound Assignment Operators
* [sql server] support new sql server 2008 spatial function like: ([geom].Reduce(10)).STAsText()
* [sql server] support the geometry and geography feature of SQL Server 2008.
* [oracle] support oracle XMLQUERY sytnax.
* able to control format of expression in case expression.
* better support to format case expression.
* < character in html output not show correctly.
[general] improved: .NET version performance was improved while parsing first statement in vista 64 bit from 10 seconds to 2-3 seconds.
[oracle] fixed: support this syntax: ALTER TABLE _name_of_table MODIFY _name_of_field NUMBER(5,0)
[mysql] fixed: decial datatype was supported in cast function.
[oracle] fixed: Merge update clause, merge insert clause can be optional.
[oracle] improved: Able to recovery from a keyword error from plsql by using OnParserTokenError event.
[oracle] fixed: Merge statement table alias is optional.
[oracle] supported: FOR R1 IN C1() LOOP, no parameters in C1().
[oracle] supported: type keyword can be in function parameters, variable name in for clause
[oracle] supported: WHEN NOT MATCHED THEN is preceded by WHEN MATCHED THEN in merge statement.
[oracle] supported: comment can be used in typename
[oracle] supported: Lob_storage_clause in column_properties of create_table_properties (table_properties in create table)
[oracle] supported: * in NUMBER(*,0) was supported in create table statement.
[oracle] supported: pipe row statement is supported in create function.
[oracle] supported: pipedlined is supported in create function.
[general] improved: all error messages log into top level tcustomsqlstatement.
[oracle] added: partially support log clause of create table.
[oracle] supported: pipedlined in return type of function in create package
[general] fixed: select statement in create table not indent correctly.
[mssql] fixed: TMssqlIfElse.ProcessFuncExpr, infinite loop halt program
[mssql] added: support for "if not update(colid)" in create trigger
[mssql] added: method_specifier in create procedure was supported.
[general] enhanced: Able to beautify query inside openrowset function.
[general] fixed: --begin_no_format align with previous sql statement.
[general] fixed: rtf output can not handle multiline string correctly.
[general] fixed: emptylines between multiline comments and sql statement not handle correctly .
[general] added: Able to show line number of formatted sql.
[general] improved: better support AndOrUnderWhere format option.
[mssql] fixed: support recompile hint in option.
fixed: from keyword in from clause update statement not in newline.
fixed: mssql xml method query(),value(),exist(),modify(),nodes() keep lowercase no matter what case option was choose for function case options.
[general] fixed: into clause in newline.
[general] fixed: better support for --begin_no_format, --end_no_format
[general] fixed: when emptyline=mergeintoone, insertblanklineinbatchsqls is false, emplty lines after
select in creat function is removed, not mergeinto one.
[db2] fixed: drop table statement not recognized.
[oracle] improved: ppv3, better support of constraint layout in create table.
[oracle] improved: support using index clause while index_properties is null.
[oracle] improved: supported table_properties clause of create table, only CACHE/NOCACHE is supported in table_properties.
[mssql] fixed: supported cte query in create view.
[format option] added: TreatDistinctAsVirtualColumn,Indent_Case_Then
[oracle]fixed: CREATE GLOBAL TEMPORARY TABLE
[mssql] fixed: Can't handle IF UPDATE(password) in create trigger.
[mssql] fixed: sign was not a mssql statement, it's just a function. fixed bug can't handle " select sign(10) as value "
[oracle]: fixed: (+) in multiline can't be handled.
[mysql]: improved: support drop column/primary,foreign key/index in alter table statement.
[format options] added: quoted_identifiercs was added to format quoted identifier, [identifier] in sql server, and "identifier" in oracle.
[sqlserver] improved: support multiple compute by clause.
[oracle] added: support for create materialized view, create materialized view log on.
[format options] added: CaseWhenThenInSameLine for case statement.
[sqlserver] added: In table definition, add support for PERSISTED on a computed column.
[oracle] fixed: iterate of syntax like this was error: Pc_per_diem_info(i).rental_id
[oracle] added: supported of PRAGMA AUTONOMOUS_TRANSACTION
[format options] enhanced: Insert_Columnlist_Style,Insert_Valuelist_Style can be set separately.
[oracle] enhanced: nocycle is supported in hierarchical_query_clause.
[oracle] added: is of type conditions was supported.
[oracle] added: interval expression was supported.
[oracle] added: plsql create type was supported.
[oracle] added: forward function/procedure declaration in package body was supported.
[sql server] fixed: Can't reserved before variable declaration in create/alter procedure.
[plsql] added: New class TLzPlSql_TableTypeDef_IndexBy, support index by pls_integer, index by varchar2(size) clause.
[general] Added: Export to RTF.
[general] Added: Customizable Syntax highlighting.
[sql server] fixed: style parameter in convert function support expression.
[general] added: add sortOrder, groupBy property to TLzField as requested by user.
[COM] Added: support rtf output in tgsqlparser, and the implementation in COM version is a little bit different than .NET and VCL version.
[document] Added: add article for syntax highlighting, introduce how to generate output in html and rtf format,and customize font size, color and style.
[general] changed: A new class TLzLangConverter was created to generate all kinds of output after parsing input sql script. All To* functions in tgsqlparser was moved to TLzLangConverter.
check demos for detail.
[general] Added: Able to remove item from TLzJoinItemList and TLzJoinList.
[sql server] fixed: support || and && in lexer .
[sql server] fixed: Able to handle nested begin try, begin catch statement.
[general] enhanced: YPosition of TSourceToken points to the begin position of this token, in previous version, it's the end position of source token.
[General] Improved: Parser at least 30 times faster to parse sql statement, and at least 7 times faster to beautify sql.
[General] Changed: All parse tree nodes was inherited from tobject other than tcomponent.
[sql server] Fixed: Memory leak when parsing statements inside procedure.
[oracle] Fixed: Able to handle AT TIME ZONE in select list.
[oracle] Improved: Bind variable is support in "IN expression", such as: col in :bindvar
[sql server] Fixed: store removed by keyword.
[General] Fixed: - in html was changed from – to -
[General] Added: Compact mode is supported in html output.
[sql server] Fixed: Access violation:, for xml auto, elements, root('tables')
[sql server] Added: Begin dialog, send statement is supported.
[sql server] Fixed: Can't process if go keyword use as table alias.
[sql server] Added: Sqlserver 2008 multirow insert.
[sql server] Changed: Build insert sql changed due to support of multirow insert, check demos.
[oracle] Fixed: Minvalue in sequence statement can also be a negative integer.
[mysql] Added: Support use index(indexname) hint.
Delphi 2009 supported.
SQL Server: END CONVERSATION statement is supported, ROWGUIDCOL is supported. EXCEPT operation is supported.
BULK INSERT is supported.
Oracle: Create sequence is supported. Better support for create index, create view, alter table statement.
MySQL: select STRAIGHT_JOIN is supported. Improved support for group_concat,cast function.
Many minor bugs fixed.
Fixed some unicode related bugs.
Better support for SQL Server and Oracle dialect.
Function of fetching database object was rewrited,
much more accurate to identify various database objects in complex sql statement.
TLz_Attr class was improved, easy to modify server, database, schema, table and column information in this object, and rebuild identifier.
Add a demo to illustrate how to use the most important properties and methods in this component, this demo generate a xml output which shows the query structure of input sql.
Lots of minor bugs fixed.
Added: TLz_Node.RawNode, corresponding raw parse tree node of parsed node if any. Please check here for more detail description.
Fixed: System.NullReferenceException when build sql using TSelectSqlStatement(This is the bug only TDbVendor.DbVOracle is used).
Fixed: Correctly handle alias name like [[name]],[surname]]]
Improved: It's 3-5 times faster to start parser of .NET version.
Changed: gudusoft.gsqlparser.yyrec.dll is no longer needed, only one file: gudusoft.gsqlparser.dll, size of this file was reduced to 7M to support sql dialect of 5 databases: msaccess, mysql, mssql, db2 and oracle.
Fixed: Index options of constraint of ms sql server was parsed correctly.
Improved: .NET version support foreach to iterate collections.
Changed: T_A_Expr was replaced by T_Expr, T_A_Const was replaced by T_Const. TLz_Node.NodeTag has been changed to TLz_Node.NodeDummyTag.
Changed: Class TLz_A_Const was replaced by TLz_Const.
Improved: Support of create index, create view of ms sql server is improved.
Fixed: Original layout of comment was keep correctly during pretty print.
Type TToLang was replaced by TOutputFmt.
AsText property works for all sqls. So rebuild sql after modification works correctly now.
Able to convert sql to html code without change layout of original sql. Font family and size of output html code is configurable.
Able to change keywords case only without change layout of original sql.
Oracle hint is preservered while rebuild sql.
Some minor bugs fixed.
Improved: TLzCustomExpression is a pure binary tree, can be visited in Pre-Order,In-Order and Post-Order. You can visit/modify expression(such as where clause, having clause) as easy as visit/modify a binary tree.
Improved: Better support to handle reserved keywords used in objectname with On_ParserTokenErrorKeywordToIdent event handle.
Improved: Better support for top clause in update,delete and insert statement of SQL Server.
Added: Support for CTE in update,delete and insert statement of SQL Server.
Improved: Can handle oracle substitution vairable with period ended.
Fixed: Bug #115,#116,#122,#131,#136,#139.
Improved: Better support for Oracle Data Warehousing related functions.
Fixed: Conversion of comment to VB error(#135).
Fxied: DAYS keyword not allowed in function parameters or alias in DB2(#134). in sql.
Fixed: update #t set X=1 where 2=#t.Y is not formatted correctly near =#t.Y
Added: New properties DBObjectList,TableList, FieldList, FunctionList, ProcedureList ,TriggerList of TGSqlParser were added for quick access of database objects in sql.
Added: New class TLzDBObject, TLzDBObjectList were added for quick access of database object in sql.
Added: Cross/Outer apply is supported.
Added: Ranking Window functions is supported.
Added: Xml data type methods of SQL Server 2005 is supported.
Added: Empty lines and comment and handle more better in pretty printer function.
Added: OpenXML statement of SQL Server 2005 is supported.
Added: Output Clause of SQL Server 2005 is supported.
Improved: better support of table hint syntax in MSSQL.
Improved: Old join syntax of MSSQL supported, *=, =*.
Improved: New syntax of top clause is supported.
Improved: For xml clause supported in MSSQL.
Added: varchar(max),nvarchar(max) and varbinary(max) are supported.
Added: OpenRowSet and Opendatasource of MSSQL are supported.
Improved: Lots of minor bugs.
Improved: XML ouput is supported for all sql dialects.
Added: New format options: AlignAliasInSelectList.
Improved: Literal such as N'e00\'' is supported in MSSQL.
Improved: syntax such as .E.LastName and .dbo.fap_GetCurrentUserId () in MSSQL is supported.
Improved: SET @tempIdentity =@@IDENTITY is formatted correctly;
Added: DB2 sql dialect is supported now.
Improved: XML output is well organized, select sql statement is supported in current version, other sql type such as delete, insert,update will be added in later version.
Improved: Support of Contain/ContainTable/Freetext/FreetextTable and Common Table Expression for MSSQL.
Improved: Methods ToCSharp,ToCSharpStringBuilder,ToHtml,ToHtml2,ToJava,ToJavaStringBuffer, ToPascal,ToPhp,ToVb,ToVc are introduced in TGSqlParser.
Fixed: Generate C# code error if there is double quote or back slash in the SQL
Improved: Some new SQL syntax supported of Oracle and MSSQL dialect.
Added: New format options LinebreakAfterDeclare.
Improved: Support create function/procedure of MySQL database.
Improved: Support new SQL syntax in Oracle 10g.
Added: Better support to handle expression such flat expression and modify expression.
Added: More demo added to illustrate how to use this parser.
Fixed: Lots of minor bugs fixed.
Added: Html output is supported.
Added: MSSQL timestamp lieteral is supported.
Added: New format option coInitCapEachWord is added which is used to capitalize first letter of each word in the identifier, there is also a dictionary you can modify to meet your own requirement.
Changed: TlzJoinList was changed to TLzJoinList in .NET version.
Fixed: Table alias not found after TCustomSqlStatement.InspectDBObject in InspectedDbObjs .
Fixed: Update the demo modifyvars, so it can remove the field with table alias such as scott.emp from the expression.
Fixed: Syntax error while output to java,csharp,php is fixed.
Added: Support of alter trigger, collate, system function in MSSQL.
Fixed: Oracle substitution variable is not handled correctly.
Fixed: Table alias is not handled correctly when there is a table hint of MSSQL .
Added: Create trigger of MSSQL is supported now.
Added: Rename command of Oracle is supported now.
Added: ON commit delete/preserve rows clause in create table command of Oracle is supported now.
Added: New property KeepSqlWhenPp is added in TGSqlParser, if this property is set to false, sql objects will be freed after pretty print the SQL immediately, in other words, SQL object will not be available in SqlStatements. Performance will be improved when pretty print the large SQL if KeepSqlWhenPp is set to false. The default value is set to true. This property doesn't effect when you call the parse function, SQL objects will always be saved to the SqlStatements property for further processing.
Improved: Pretty print is more faster in .NET version.
Added: Unicode support is available.
Improved: Build SQL function is more stable, demos are added to show how to build SQL.
Improved: Top level SQL with parenthesis (select empno from emp) is supported.
Improved: Support of VS2005, VB.NET demo is added.
Fixed: OnTableToken and OnFieldToken not fired correctly in Update and Delete statements.
Improved: table, view and join hint support of MSSQL, support of returns table in create function.
New formatter option: Use Tab to ident, and tab size is configurable.
Improve of TOnFieldTokenEvent and TOnTableTokenEvent.
Performance improved in all versions.
Support of Alter view sql of MSSQL.
Update of help doc.
Property MsVars renamed to SqlVars in TCustomSqlStatement and all sub classes. Event TOnMsVarEvent changed to TOnSqlVarEvent. and Token type ttMsVar was changed to ttSqlVar.
New Oracle SQL dialects supported: Merge, Alter table, Create/alter trigger,rollup and grouping keywords of group clause. Physical property of Create table .
New MSSQL dialects supported: Alter table,Set,Execute command.
Memory leak when parsing MSSQL dialects is fixed.
Memory leak in COM version is fixed,more stable now. Samples of VB script were added.
New property RemoveLinebreakBeforeParse of TFmtOpt was added, to deal with some sqls generated by other tools that insert linebreak into a word.
New property TrimQuotedCharOfEachLine,QuotedCharOfEachLine of TFmtOpt were added, to remove the specified char at the begin/end of each line of input sql.
Rewrite the core classes of .NET version,the performance is great improved. Users who are using .NET component are encouraged to upgrade to this version. It takes about 1 sec to startup the parser, and 0.5 sec to parse the first sql, after that it works pretty well. Check the demo file: performancetest.cs to find out how it works.
Introduce MsVars property of TCustomSqlStatement to keep the variables in sql statement, which was saved in params in previous version.and OnMsVar Event is introduced to TCustomSqlStatement and TGSqlParser.
Bug fixed: OnTableToken, OnFieldToken is not fired in MSSQL procedure and Oracle PL/SQL
New method GetInvolvedDbObjects introduced in TLzExpression, used to get involved db objects in the expression, currently, supported db objects is TableTokens,FieldTokens which are type of TSourceTokenList.
Rewrite the "how to" section of help document, add "available parse tree nodes" section.
Some minor bugs fixed reported by users .
Rewrite all .NET related code,the performance of .NET version is great improved(at least 3 times faster) and the size of this package is reduced to 6.5M
.NET version only includes two namespaces for quick reference:gudusoft.gsqlparser, gudusoft.gsqlparser.Units
Enhanced of OnParserTokenError event,user can insert new source token during syntax error recover.
Some minor bugs fixed reported by users .
New event OnFieldToken and OnTableToken introduced,OnStatementField and OnStatementTable event are obsolete.
Params property of TCustomSqlStatement pickups MSSQL variable during parsing sql.
Improvement of COM version,VC++ demo added .
Some minor bugs fixed reported by users .
Rewrite TOnParserTokenEvent,TOnParserTokenErrorEvent,and demo related to these events.
Add analytic function support of Oracle SQL dialects.
Hint message reported by parser is more accurate if their are syntax errors.
Some minor bugs fixed reported by users .
Parser is 50% faster after rebuilding some core classes.
XML output of parse tree for further processing.
User can iterate parse tree, and get all nodes info for your own usage.
Inspect all database objects in sql statements. Currently only support table, field,and function in select,insert,delete,update,create table and drop table statement. Will be support more database object and sql statement soon.
Compiles all demos into one.
Fix some bugs when checking SQL syntax.
.Net version and delphi2005 win32 version are available.
Pretty print function is great improved,lots of format options added.
Paramters( :paramname ) support in MSSSQL.
Some bug fixed.
Enhanced in checking syntax of PL/SQL and procedure of MSSQL
Performance is great improved, now the parser is 5 times faster than before.
Chanages: TSourceToken is derived from TObject, not from TLz_node for performance issue.
Comments in sql are reserved in pretty printed sql.
Start to support PLSQL and MSSQL procedure in pretty print function, although it is not good enough, but will be improved soon in coming versions.
Bug fixed: literal like this '-- not a comment' can be handled.
Changes: Function ParseStatements of TCustomSqlStatement is changed to ParseStatement
Enhanced to TLzJoin.
Change TLzJoins to TLzJoinList.
Add two new classes: TLzJoinItem and TLzJoinItemList for better support of join table structure
Add a new demo application in examples\jointable, demostrate how to use the new introduced classes: TLzJoin,TLzJoinList,TLzJoinItem and TLzJoinItemList
General SQL Parser is thread safe now
Introduce two new class TLzJoin and TLzJoins as suggested by user Paul to support join table in from clause of select statement.
Tables property of TCustomSqlStatement now includes all tables in from clause in order , regardless whether it's a join table or not. make it fast and easy to access all involved tables
General SQL Parser for FreePascal ver1.9.6 is in beta test.
Nulls First,Nulls Last option of MSSQL supported.
.NET version of GSQLParser is available
Support for MSAccess SQL dialect.
Minor bugs reported by users are fixed.
Support of MySQL sql dialect is improved,alter table is supported now.
Better support of function in sql statement.
TLz_node is descend from TComponent, and TSourcetoken is descend from Tlz_node.
Fix memory leak reported by users.
Better support of MSSQL sql dialect.
Pretty print of select,insert,update,delete and create table statement are supported.
Fix some minor bugs reported by users.
Add some examples.
Publish some internal use classes
Support top clause in MSSQL parser
Rebuild the infrasturcture of parser from the group up.make new parser more flexiable.
Introduces lots of events to make user have full control of the parser
All parts of sql statement have a correspoding class. Granularity is fine.
Building sql text using sql statement objects without parsing.
Improvement: able to create different parser type such as geneirc or oracle to support different sql dialect better.
Improvement: bind and substitution variable support for oracle sql dialect.
Improvement: expression like 'where empno in 9 ' can be dealed now.
Improvement: Top and limit clause supported.
Improvement: into clause supported
Improvement: add selectclause,fromcluase property in TSelectSqlStatement.
Improvement: add GetFieldIndexByName,GetFieldIndexByAlias method in TLzFieldList.
Improvement: add GetTableIndexByName,GetTableIndexByAlias method in TLzTableList.
Bug fiexed: Internal parser error 040722_01;
Bug fixed: Can't read a empty input SQL file.
Bug fix: AV errors when input some invalid SQL statements.
Improvement: Introduce some new classes, make GSqlParser more flexiable to deal with SQL statement.
Gudu software http://www.sqlparser.com
|
Send comments about this topic.
|