.NET version change list

+ dotnet version 3.4.1.0(2022-07-22)
  - [SQL Server] support deny statement.
  
+ dotnet version 3.4.0.9(2022-03-23)
  - [Oracle] support listagg function.

+ dotnet version 3.4.0.9(2022-03-21)
  - [snowflake/toScript] fix a bug can't output nulls first/last correctly.
  - [sql server] fix a bug can't parse set clause in alter table statement.
  - [sql server] fix a bug can't parse drop table statement when if exists clause is used.


+ dotnet version 3.4.0.8(2022-02-02)
  - [snowflake, toScript] fix a bug can't rewrite boolean and TIMESTAMP_NTZ datatype used in cast function correctly.

+ dotnet version 3.4.0.7(2021-11-02)
  - [snowflake] fix a bug can't recognize concatenation operator || 
  
+ dotnet version 3.4.0.6(2021-07-05)
  - [general] Try to fix bug that parse sql query text in parallel
  - [MySQL] fix a bug can't handle syntax like this: =.5
  
+ dotnet version 3.4.0.5(2021-06-10)
  - [toScript] fix a bug missing parenthesis around CTE query.
  
+ dotnet version 3.4.0.3(2021-06-01)
  - [Hana, BigQuery] Hana, BigQuery is not supported yet.
  
+ dotnet version 3.4.0.2(2021-05-26)
  - [snowflake] support qualify clause.
  
+ dotnet version 3.4.0.1(2021-05-07)
  - [general] new repo for this version.

+ dotnet version 3.3.3.1(2021-04-08)
  - [PostgreSQL] fix a null exception while parsing create procedure.

+ dotnet version 3.3.3.1(2021-04-06)
  - [Oracle] support expression operator in using clause of execute statement.

+ dotnet version 3.3.3.0(2021-03-04)
  - [scriptWriter] fix a bug can't rewrite unsigned, time, binary datatype.
  - [snowflake] support create stream statement.
  - [snowflake] support varchar collate clause in data type.
  
+ dotnet version 3.3.2.6(2020-12-18)
  - [MySQL] fix toScript() bug for cast function with decimal data type.

+ dotnet version 3.3.2.6(2020-11-26)
  - [general] sign assembly with SHA-2 instead of SHA-1
  
+ dotnet version 3.3.2.5(2020-11-09)
  - [Snowflake] fully support.
  - [SQL Server] support OPENJSON.
  - [PostgreSQL] support variable.
  
+ dotnet version 3.3.2.4(2020-08-25)
  - [API] new class: TIdentityClause, TColumnDefinition.IdentityClause
  - [Oracle] support identity column.
  
+ dotnet version 3.3.2.3(2020-08-21)
  - [snowflake/API] TCreateFileFormatStmt.getFormatOptions() returns the text of the file format options.
  - [Snowflake] support create materalized view.
  - [Snowflake/API] TCreateTableOption.getCopyOptions() reprsents for STAGE_COPY_OPTIONS.
  - [Snowflake/API] add TCreateTableOption to represents for the create table option. 
  
+ dotnet version 3.3.2.2(2020-07-25)
  - [snowflake] support WITH LOCAL TIME ZONE
  - [snowflake] support datetime with length specified.
  - [snowflake] fully support AUTOINCREMENT

+ dotnet version 3.3.2.1(2020-07-14)
  - [scriptWriter/SQL Server] fix a bug can't output join hint.
  - [API] add new enum: EJoinHint
  
+ dotnet version 3.3.2.0(2020-07-10)
  - [scriptWriter] support nulls first/last.
  - [scriptWriter] fix a bug can't rewrite group_concat/date_sub correctly.
  - [Snowflake] fully support snowflake.
  - [SQL Server] fix a bug can't parse FETCH clause in select statement.
 
+ dotnet version 3.3.1.3(2020-05-08)
  - [Oracle] support GENERATED AS IDENTITY in column definition.
		
+ dotnet version 3.3.1.3(2020-05-07)  
  - [Oracle] fix a null exception when visit object access expression inside stored procedure.

+ dotnet version 3.3.1.3(2020-05-06)
  - [Oracle] fix a bug can't parse varying after character type.

+ dotnet version 3.3.1.3(2020-04-30)
  - [sqlformat] fix a bug  XQuery .value() can be set to lowercase correctly by setting option.caseFuncname = gudusoft.gsqlparser.pp.para.styleenums.TCaseOption.CoLowercase;

+ dotnet version 3.3.1.3(2020-04-24)
  - [API] TScriptGeneratorVisitor.visitNodeByToken() read all tokens of a node from TParseTreeNode.SourceTokenList
  - [API] add new property: TParseTreeNode, public EDbVendor dbvendor 
  - [API] add new constructor: TParseTreeNode() and TParseTreeNode(EDbVendor dbvendor). 
  - [API] TParseTreeNode.String, when set value, it will be tokenlized into TParseTreeNode.SourceTokenList.
  - [API] add new property: TParseTreeNode.SourceTokenList, includes all tokens of this node.
  - [Oracle/scriptWriter] support GLOBAL/Local/TEMPORARY/Temp keyword in create table statement.
  - [SQL Server/scriptWriter] fix duplicate begin/end in create procedure statement.
  - [SQL Server/scriptWriter] add semicolon at the last statement in a block.
  - [SQL Server/scriptWriter] Able to rewrite bit datatype correctly.
  - [SQL Server] function name not parsed correctly.
  - [scriptWriter/Oracle] fix a bug that missing MULTISET keyword.
  - [scriptWriter/Oracle] fix a bug can't rewrite translate function.
  - [scriptWriter/SQLServer] fix a bug can't rewrite values clause with multiple values.
  

+ dotnet version 3.3.1.3(2020-04-10)
  - [general] typo in public class GFmtOpt, change opearateSourceToken  to  operateSourceToken 


+ dotnet version 3.3.1.2(2020-03-03)
  - [MySQL] fix a bug can't handle ROWS keyword in over clause.
  - [API] add new property TSelectSqlStatement.Hint to replace  TSelectSqlStatement.OracleHint
  - [MySQL] support hint in select statement.

+ dotnet version 3.3.1.2(2020-02-15)
  - [general/performance] performance improvement when there are lots of CTE used in statement.

+ dotnet version 3.3.1.2(2020-02-12)
  - [SQL Server/scriptWriter] support money datatype.
  - [PostgreSQL] fix a bug can't parse select statement with CTE in insert statement.
  

+ dotnet version 3.3.1.2(2020-02-06)
  - [MySQL/ScriptWriter] support replace into set clause.

+ dotnet version 3.3.1.1(2020-02-05)
  - [MySQL/ScriptWriter] support DELAYED/HIGH_PRIORITY/LOW_PRIORITY in insert statement.
  - [MySQL] support CTE in update statement.	

+ dotnet version 3.3.1.1(2020-02-04)
  - [DB2/scriptWriter] support truncate table.
  - [DB2] fully support drop table statement.
  
+ dotnet version 3.3.1.0(2019-12-04)
  - [Oracle] able to detect sql statement after create index, truncate and analyze table even those sql is not ended with a semicolon.
  
+ dotnet version 3.3.1.0(2019-11-27)
  - [formatter] improve sql formatter while there is a long oracle hint.
  
+ dotnet version 3.3.1.0(2019-11-12)
  - [Oracle] fix a bug OUTER APPLY take high priority than LEFT OUTER JOIN
  - [scriptWriter/Oracle] support bitmap keyword in create table statement.
  - [scriptWriter/SQL Server] support table hint in select statement.
  - [SQL Server] fix a bug doesn't recognize range keyword in window clause.
  - [scriptWriter/MySQL] support index hint in select statement.

+ dotnet version 3.3.1.0(2019-11-09)
  - [scriptWriter/MySQL] support distinctrow keyword in select statement.
  - [scriptWriter/MySQL] support order by and limit clause in delete statement.

+ dotnet version 3.3.0.5(2019-11-06)
  - [MySQL] support window function.

+ dotnet version 3.3.0.5(2019-10-31)
  - [Oracle] able to separate create table and other statements even if no semicolon is used after create table.

+ dotnet version 3.3.0.5(2019-10-30)
  - [MySQL] bug fix in sql lock of select statement.
		
+ dotnet version 3.3.0.5(2019-10-29)
  - [MySQL] support CTE introduced in MySQL8.0

+ dotnet version 3.3.0.5(2019-10-28)
  - [MySQL] support join specification in cross join.
  - [MySQL] support update modifiers LOW_PRIORITY IGNORE
  - [MySQL] support select modifiers HIGH_PRIORITY] [STRAIGHT_JOIN][SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT][SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
  - [MySQL] support delete modifiers LOW_PRIORITY QUICK IGNORE
  - [MySQL] support partition clause of from table in select/delete/insert/update.
  

+ dotnet version 3.3.0.5(2019-10-25)
  - [getTableColumn] table in into clause will be picked up.
  - [DB2] support limit clause.
  
+ dotnet version 3.3.0.5(2019-10-14)
  - [general] table.EffectType set to tetAlter in alter table statement.
  - [SQL Server/GetTableColumn] year/month/day/hour/minute/second keyword used as a column name can be picked up correctly.
  - [SQL Server] support query hint syntax like: OPTIMIZE FOR ( @variable_name { UNKNOWN | = literal_constant } [ , ...n ] ) 

+ dotnet version 3.3.0.5(2019-10-10)
  - [lexer] fix a bug can't handle ?-- character of DB2/SQLServer/MySQL/PostgreSQL

+ dotnet version 3.3.0.4(2019-07-26)
  - [PostgreSQL] fix no root node error when parse create table of typename statement.
  - [PostgreSQL] fix a nullexception when parse collate clause.
  - [PostgreSQL] support GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY [ ( sequence_options ) ]
  - [PostgreSQL\SQL Server] support create schema statement.
  

+ dotnet version 3.3.0.4(2019-07-19)
 - [Teradata] support qualify clause in select list.

+ dotnet version 3.3.0.3(2019-07-04)
  - [redshift] fix a bug can't detect table.column name correct in select list.

+ dotnet version 3.3.0.2(2019-06-05)
  - [MySQL,scriptWriter] FROM keyword used in delete statement is picked up.

+ dotnet version 3.3.0.2(2019-05-31)
  - [scriptWriter] support declare cursor and SQL Server column alias.

+ dotnet version 3.3.0.2(2019-05-29)
  - [SQL Server] row/rows keyword can be used as cursor name
  - [SQL Server] support PERIOD FOR SYSTEM_TIME clause in create table.
  - [SQL Server] support GENERATED ALWAYS in column definition.
  - [MySQL] support not enforced clause in check constraint.
  - [SQL Server] support NOT FOR REPLICATION in check constraint

  
+ dotnet version 3.3.0.1(2019-04-15)
  - [netcore] improve the code to read database function and keyword resource file in a uniform way for both netcore and .net framework version.
				
+ dotnet version 3.2.8.7(2019-04-15)
  - [netcore] improve the code to read resource file in a uniform way for both netcore and .net framework version.

+ dotnet version 3.2.8.7(2019-04-08)
  - [SQL Server] fix null exception while iterate convert function.
  
+ dotnet version 3.2.8.6(2019-03-21)
  - [MySQL] fix a bug can't fetch Collation Name when datatype is enum.

+ dotnet version 3.2.8.6(2019-02-21)
  - [MDX] support variable in function call.
  - [MDX] support VBA!round function.
  - [API] TMdxAxisNode.getName_OR_Number() replaced by TMdxAxisNode.getAxis()
  
+ dotnet version 3.2.8.5(2019-02-13)
  - [SQL Sever] support create cluster columnstore index statement.
	
+ dotnet version 3.2.8.5(2019-01-30)
  - [API] add new property: TFunctionCall.StringExpr, TFunctionCall.SeparatorExpr for DB2 listagg function.
  - [DB2] support listagg function.
  
+ dotnet version 3.2.8.4(2019-01-29)
  - [API] add new property: TAlterTableOption.ConstraintName
  - [MySQL] support key column constraint.
  - [MySQL] be able to read schema default collate property when set with equal operator.
  - [API] add new value of enum: EColumnStorage.csNotSpecified
  - [MySQL] support table prefix in alter table add primary key clause.
  
+ dotnet version 3.2.8.4(2019-01-28)  
  - [Oracle] support case expression in using clause of execute immediate statement.
  - [Oracle] support multiset union all in plsql expression.
  - [Oracle] support IS A SET operator in plsql code.
  - [general] fix a "Object reference not set to an instance of an object" bug when parsing set Content.write( substring(@Content, 1, @Length), @DataIndex, @Length ) clause in update statement.
  - [API] add new static methods: TGSqlParser.parseExpression,parseFunctionCall,parseObjectName,parseSubquery

+ dotnet version 3.2.8.4(2019-01-25)
  - [general] fix a NullReferenceException bug when get table name from FREETEXTTABLE/CONTAINSTABLE clause.
  
+ dotnet version 3.2.8.3(2019-01-14)
  - [DB2] Able to handle $$ODS_LOB in this expr: p.SUBDIV_QUALIFIER=$$ODS_LOB

+ dotnet version 3.2.8.3(2018-12-26)
  - [API] TUpdateSqlStatement.getReferenceJoins() replaced by TUpdateSqlStatement.joins
  - [API] TDeleteSqlStatement.ReferenceJoins set to from clause in delete statement correctly.

+ dotnet version 3.2.8.3(2018-12-25)
  - [API, SQL Server] add new property: TConstraint.DefaultForColumnName represents default column name in default constriant.
  - [MySQL] able to get default value of alter column clause in alter table statement.

+ dotnet version 3.2.8.2(2018-12-19)
  - [Oracle] labelName and endLabelName set correctly.

+ dotnet version 3.2.8.1(2018-12-13)
  - [SQL Server] support Addition Assignment in set clause of udpate statement.
  - [PostgreSQL] support grouping sets clause in group by clause.
  
+ dotnet version 3.2.8.0(2018-12-10)
  - [general] move source code demo and test to a new project.

+ dotnet version 3.2.7.9(2018-12-06)
  - [scriptWriter] support MySql: Column Datatype contains Collation And UNSIGNED ZEROFILL

+ dotnet version 3.2.7.9(2018-12-05)
  - [SQL formatter] keep comment at the begin of SQL.
  
+ dotnet version 3.2.7.9(2018-12-04)
  - [SQL Server] fix a null exception when value keyword used as a table alias 

+ dotnet version 3.2.7.8(2018-12-04)
  - [MySQL/API] tableConstraint.constraintComment replaced by tableConstraint.IndexOptionList which indexOptionType is EIndexOptionType.iotComment.
  - [MySQL] support index option in table constraint
  - [API] add new property: List IndexOptionList of class: TConstraint
  - [API] new enum value: EConstraintType.fulltextKey, EConstraintType.spatialKey

+ dotnet version 3.2.7.8(2018-12-03)
  - [MySQL] support REDUNDANT or COMPACT in Table.ROW_FORMAT option.
  
+ dotnet version 3.2.7.7(2018-11-29)
  - [SQL Server] support offset fetch in order by clause.
  
+ dotnet version 3.2.7.6(2018-11-22)
  - [API] add new enum: EGeneratedColumnStoreType
  - [API] add new property:  TColumnDefinition.generatedColumnStoreType
  - [MySQL] support virtual and stored option of computed column.

+ dotnet version 3.2.7.6(2018-11-16)
  - [scriptWriter] support OPTION clause in select statement.
  - [demo\dataFlowAnalyzer] fix the Can't handle view column error.
  - [Oracle] fix nullexception when parse statements inside create trigger timing point section.
  - [Oracle] able to regonize compound trigger body during getting raw statement.

  
+ dotnet version 3.2.7.5(2018-11-01)
  - [API] function TLexerDatabase.canBeColumnName(), iskeyword(), getkeywordvalue() change to static function.

+ dotnet version 3.2.7.3(2018-10-25)
  - [MySQL] support compression/connection/key_block_size/row format compressed/STATS_AUTO_RECALC/STATS_PERSISTENT/STATS_SAMPLE_PAGES  of create table option.
  - [API] TMySQLCreateTableOption.OptionName is replaced by tableOption.
  - [API] add new public enum ETableOption, used in MySQL create table statement.
  - [SQL Server] support create fulltext index statement.
  - [SQL Server] support create spatial index statement.
  
+ dotnet version 3.2.7.2(2018-10-21)
  - [SQL Server] support NO_PERFORMANCE_SPOOL, MIN_GRANT_PERCENT, HINT_MAX_GRANT_PERCENT
  - [API] add new enum elements: EQueryHint.E_QUERY_HINT_NO_PERFORMANCE_SPOOL, E_QUERY_HINT_MIN_GRANT_PERCENT, E_QUERY_HINT_MAX_GRANT_PERCENT
  - [SQL Server/scriptWriter] support call target expression of function call.
  - [Oracle] able to recognize create or repleace context statement.
  - [DB2] able to link column in call statement to table of create trigger statement.
  
+ dotnet version 3.2.7.1(2018-10-09)
  - [SQL Server] Doesn't treat [DATE] as a regular column name.
  
+ dotnet version 3.2.7.1(2018-10-08)
  - [API] TTypeName.isCharUnit(), TTypeName.ByteUnit is no longer used, replaced by TTypeName.charUnitToken
  - [Oracle] able to get label name after loop/while statement.
  - [Oracle] support on null clause in default clause.
  - [API] add new property: TColumnDefinition.onNull
  
+ dotnet version 3.2.7.0(2018-10-08)
  - [sql formatter] Able to format subquery or CASE statement inside of CAST function.
  
+ dotnet version 3.2.6.9(2018-10-03)
  - [API] add new property: TColumnDefinition.persistedColumn.
  - [SQL Server] able to get persisted information from column definition.
  - [API] add new property: TColumnDefinition.filestream.
  - [SQL Server] support FILESTREAM keyword in create table.
  - [API] add new property: TColumnDefinition.sparseColumn.
  - [SQL Server] Able to get SPARSE column information from TColumnDefinition.
  
+ dotnet version 3.2.6.8(2018-09-28)
  - [MySQL] Able to get comment/KEY_BLOCK_SIZE/parser name  index option in MySQL create index statement.
  - [API] TMySQLIndexOption.indexOptionType
  - [API] add new enum: EIndexOptionType
  - [API] add new property : TCreateIndexSqlStatement.IndexOptionList to access index option of MySQL create index statement.
  - [SQL Server] able to fetch include column list from create index statement.
		

+ dotnet version 3.2.6.8(2018-09-27)
  - [API] add new property TColumnDefinition.columnComment, TConstraint.constraintComment
  - [API] add new property TColumnDefinition.calculatedExpr
  - [MySQL] support calculated column such as data_type [GENERATED ALWAYS] AS (expression)
  - [API] add new property TColumnDefinition.columnStorage
  - [API] add new enum: public enum EColumnStorage
  - [MySQL] support column storage type

+ dotnet version 3.2.6.8(2018-09-21)
  - [API] add new property TColumnDefinition.columnFormat
  - [API] add new enum: public enum EColumnFormat
  - [MySQL] support column format attribute.
  - [scriptWriter] typo: ncarchar2 should be correct to nvarchar2
  - [scriptWriter] fix a bug oracle hint not after SELECT keyword.
		

+ dotnet version 3.2.6.7(2018-09-20)
  - [MySQL, API] Able to get zerofill and signed/unsigned info from datatype in TTypeName class. TTypeName.zeroFillToken, TTypeName.signedToken

  
+ dotnet version 3.2.6.7(2018-09-19)
  - [API] Able to get character set and collation name from create database statement. add new property: TCreateDatabaseSqlStatement.characterSet and collationName.
  - [MySQL] fully support create database statement.
  
+ dotnet version 3.2.6.6(2018-09-12)
  - [Oracle] support with ties clause and percent clause in row limiting clause.
  - [Oracle/scriptWriter] support offset clause in scriptWriter
  - [Oracle/scriptWriter] support fetch clause in scriptWriter

+ dotnet version 3.2.6.3(2018-09-11)
  - [Oracle] fix a bug can't rewrite Lateral keyword in from clause.
  
+ dotnet version 3.2.6.2(2018-09-04)
  - [API] TBaseType.versionid from public string versionid = Assembly.GetEntryAssembly().GetName().Version.ToString() to  public const string versionId

+ dotnet version 3.2.6.1(2018-09-04)
  - [dotnet core] release a version for net core 2.0

+ dotnet version 3.2.5.8(2018-08-23)
  - [API] Add TRollbackStmt to represent rollback statement. Able to recognize rollback in EXCEPTION clause.
  
+ dotnet version 3.2.5.7(2018-08-16)
  - [Oracle] fix a bug can't parse TABLE clause included in parenthesis.

+ dotnet version 3.2.5.7(2018-08-13)
  - [getTableColumn] fix a bug can't recognize the column derived from CTE.
  
+ dotnet version 3.2.5.6(2018-08-01)
 - [Oracle] fix a bug can't parse plsql block not ended by a semicolon.
 - [general] avoid System.ArgumentNullException when call isvalidsqlpluscmd().
 
+ dotnet version 3.2.5.6(2018-07-27)
 - [scriptWriter] fix a bug when new TObjectName with object and part source token.
 - [API] add new method: TSourceToken.toScript()

+ dotnet version 3.2.5.6(2018-07-11)
 - [SQL Server] support include clause before where condition in create index statement
 - [SQL Server] support WITH (DATA_COMPRESSION = PAGE) in create table statement.
 - [yacc,lex] Able to process rule from 2500 to 3000
 - [SQL Server] fix a bug can't parse CTE in declare for cursor statement.
 
+ dotnet version 3.2.5.5(2018-07-07)
 - [scriptWriter] fix a alias clause of pivot table not placed correct.
 - [scriptWriter] fix a bug can't rewrite bigint datatype correctly.
					
+ dotnet version 3.2.5.5(2018-07-05)
 - [scriptWriter] fix a bug can't rewrite datetime datatype correctly.
 
+ dotnet version 3.2.5.5(2018-06-04)
 - [SQL Server] support if exists clause in drop procedure/table/index statement.
 
+ dotnet version 3.2.5.4(2018-05-29)
 - [general] fix a null exception error raised when call TTable.getTableName() when tableType is subquery.

+ dotnet version 3.2.5.4(2018-05-25)
 - [sql format] fix a problem is that the first SELECT is printed after the closing ) of the INSERT INTO statement.
 
+ dotnet version 3.2.5.1(2018-05-16)
  - [general] upload Gudusoft.GeneralSQLParser package to nuget.org.
  - [general] library .NET core 2.0 compatible.
  
+ dotnet version 3.2.5.1(2018-05-13)
 - [demo\formatsql] move html output code to demo\formatsql, make this library .NET core 2.0 ready.
 
+ dotnet version 3.2.5.0(2018-05-10)
 - [demo\toXML] fix a bug that subquery in then clause of case statement not generated correctly.
 
+ dotnet version 3.2.5.0(2018-04-27)
 - [general] refine the code to remove unnecessary exception from the code.
 
+ dotnet version 3.2.4.6(2018-03-30)
 - [demo/sqlformat] support rtf output.
 - [general] Able to pickup oracle hint in delete/insert/update/merge statement.
 - [scriptWriter] fix a bug miss where keyword in delete clause of merge statement.
 
+ dotnet version 3.2.4.5(2018-03-14)
 - [scriptWriter] support for xml clause in scriptWriter
 - [SQL Server] support create or alter procedure.
 - [DB2] keyword IS can be used as table alias.
 - [Oracle] [Oracle/plsql] support new keyword in create trigger statement.

 
+ dotnet version 3.2.4.4(2018-03-13)
	- [demo/toXML] support for update clause in select statement.
	- [demo/toXML] support into clause in select statement.
	- [demo/toXML] support case statement in oracle plsql.
	- [demo/toXML] list the DISTINCT clause in select statement.
	- [demo/toXML] list return datatype in function declaration of a package. 
	- [demo/toXML] Able to recognize commit statement inside plsql block.
	- [demo/toXML] Able to list CTE in subquery of insert statement.
	- [demo/toXML] Able to list into clause in execute immedate statement.

 
+ dotnet version 3.2.4.3(2018-03-02)
 - [API] add TExpression.OwnerStmt which points to the SQL statement which includes this expression.
 - [scriptWriter] fix a bug can't rewrite Oracle into clause if more than one variable in the list.
		

+ dotnet version 3.2.4.2(2018-02-19)
 - [demos/xmlvisitor] Able to fetch columns in primary key of MySQL create table statement.
 
+ dotnet version 3.2.4.1(2018-02-06)
 - [SQL Server] support use hint clause.

+ dotnet version 3.2.4.1(2018-01-30)
 - [DB2] fix a bug can't parse create trigger statement when there is no keyword RW_ATOMIC after BEGIN keyword in compound trigger body.
 - [DB2] fix a bug can't parse BEFORE keyword in trigger option in create trigger statement.
 
+ dotnet version 3.2.4.0(2018-01-25)
 - [scriptWriter] support Oracle hint in select/delete/insert/udpate/merge
 - [API] Move OracleHint from TSelectSqlStatement to TCustomSqlStatement
 
+ dotnet version 3.2.3.9(2017-12-12)
 - [general] convert function support parameter and style property, use the same property as Java version.
   modify convert function code in TScriptGeneratorVisitor.cs as well.

+ dotnet version 3.2.3.8(2017-12-08)
  - [DB2] fix a bug can't parse create procedure when there is no parameter.
  - [DB2] support always as clause in alter table statement.
  - [DB2] support alter table  ADD VERSIONING USE HISTORY TABLE
  - [DB2] support alter table drop versioning.
  - [DB2] support drop columm cascade.
  - [DB2] support drop not null clause in alter column.
  - [DB2] able to recognize create variable statement.
 
+ dotnet version 3.2.3.8(2017-12-07)
 - [scriptWriter] fix a bug sql server convert function not rewrite correctly.
 - [DB2] supprt xmlserialize function.
 
+ dotnet version 3.2.3.7(2017-11-29)
 - [Oracle] fix a bug can't detect column in over clause of analytic function.		
 - [SQL Server] keyword: xml, server,Catalog, Cube treated as column name correctly.
 
+ dotnet version 3.2.3.6(2017-11-01)
 - [Oracle] fix a bug doesn't detect column name in create trigger like: :new.customer_id 
			
+ dotnet version 3.2.3.5(2017-10-31)
 - [Teradata] fix a bug can't detect table column in create macro statement.
 
+ dotnet version 3.2.3.4(2017-10-30)
- [Teradata] fix a bug treats variable in create macro statement as column.

+ dotnet version 3.2.3.3(2017-10-30)
 - [Oralce] support include/exclude nulls clause in unpivot clause.
 - [teradata] fix a bug can't parse is keyword in comment statement.
 - [general] able to recognize sequence object in syntax like:SEQ_COPS_CORIMA_EXECUTE_QUEUE.nextval and put it into TCustomSqlStatement.DatabaseObjects

+ dotnet version 3.2.3.2(2017-10-26)
  - [general] add TObjectName.coordinate() method return coordinate of the object in SQL script.	
  - [general]  ESqlClause.resultColumn replaced by selectList, insertColumn, mergeInsert

+ dotnet version 3.2.3.1(2017-10-16)
 - [Teradata] fix a bug treat built-in function CURRENT_DATE,CURRENT_TIME as column name.
 
+ dotnet version 3.2.3.0(2017-10-12)
 - [Oracle] Fix a bug can't parse CONSTRAINT keyword used as a columm name.
		
+ dotnet version 3.2.3.0(2017-10-12)
 - [general] Add TCustomSqlStatement.DatabaseObjects property which stores function/trigger/sequence and other database objects name which in the SQL query.

+ dotnet version 3.2.3.0(2017-10-11)
 - [SQL SERVER] support window aggregation group clause in analytic function.
 
+ dotnet version 3.2.3.0(2017-10-10)
 - [DB2] support alter column set not null
 - [DB2] support alter column set data type decimal
 - [Teradata] support comment on/create macro/drop macro/rename table statement.
 
+ dotnet version 3.2.2.5(2017-09-30)
 - [DB2] support XMLTable function.

 
+ dotnet version 3.2.2.5(2017-09-12)
 - [demo] add dataflowanalyzer demo.
 
+ dotnet version 3.2.2.4(2017-09-08)
 - [general] fix a bug sub-select of select union statement points to the wrong parent.

+ dotnet version 3.2.2.3(2017-09-07)
 - [SQL Server] Fix a bug treat table with nolock hint as a function.
 
+ dotnet version 3.2.2.2(2017-08-11)
 - [general] TTable.getTableName() will return "rowlist" if table type is table value constructor.	
 - [general] TTable.getTableName() will return "openrowset" if table type is openrowset.
 
+ dotnet version 3.2.2.1(2017-08-08)
 - [scriptWriter] fix test cases and removeCondition/joinConvert demo.

+ dotnet version 3.2.2.0(2017-08-04)
 - [scriptWriter] add new method: TParseTreeNode.ToScript() which return String representation this parse tree node
 - [scriptWriter] demos\scriptWriter was merged into core parser under: gudusoft.gsqlparser.scriptWriter
 
+ dotnet version 3.2.1.5(2017-07-28)
 - [general] fix a bug can't detect CTE table in from clause if it original format is quoted ([Agency_cte]) while cte name in from clause is not quote('Agency_cte').
 - [SQL Server] support rebuild clause in alter table statement.
 - [SQL Server] fix a bug can't parse value keyword used as column name such as select b.value from b
			
+ dotnet version 3.2.1.4(2017-07-21)
 - [general] fix a bug TWindowDef.includingOverClause not set to true when over clause is used.
 
+ dotnet version 3.2.1.3(2017-07-20)
  - [general] replace class TAnalyticFunction by TWindowDef in DB2, Informix, SQL Server,Sybase

+ dotnet version 3.2.1.3(2017-07-19)
 - [general] replace TAnalyticFunction with TWindowDef
 - [general] use TFunctionCall.WindowDef instead of TFunctionCall.AnalyticFunction to fetch over clause information.
 
+ dotnet version 3.2.1.2(2017-07-02)
 - [demo] bug fix of joinConvert demo, removeCondition demo, scriptWriter demo.
 
+ dotnet version 3.2.1.1(2017-06-28)
 - [general] fix a bug: parent expr of and/or condition not set correctly.

+ dotnet version 3.2.1.0(2017-06-26)
 - [General] set parent of arguments (expr) in function call to function call.
 - [General] null checking in method: public virtual TSourceToken ComparisonOperator

 
+ dotnet version 3.2.0.9(2017-06-20)
  - [general] fix a bug that treat table hint as column name.
  
+ dotnet version 3.2.0.8(2017-06-14)
  - [DB2]  able to recognize update command options.
  - [general] fix a bug that TGSqlParser class getting a handle on a file and never releasing the lock.
  - [DB2] fix a bug can't parse labeled-duration use seconds keyword.
  - [DB2] fix a bug can't parse query when DATA used as table alias.

+ dotnet version 3.2.0.7(2017-06-12)
 - [General] fix a bug can't detect TABLE keyword in syntax like this: TABLE(subquery)
 - [General] add accept/acceptChildren method of TRestrictionClause.
 
+ dotnet version 3.2.0.6(2017-05-22)
 - [SQL Server] support percentile_cont, percentile_disc, parse, try_parse function.
 - [SQL Server] fix a bug can't handle opertors correctly if it is followed by # character.
  
+ dotnet version 3.2.0.6(2017-05-22)
 - [DB2] support create or replace clause in create procedure/function.

+ dotnet version 3.2.0.6(2017-05-05)
 - [DB2] fix a bug can't parse create function if use create or replace clause instead of create.
 
+ dotnet version 3.2.0.5(2017-04-17)
 - [general] fix stack overflow exception when process AND/OR predicate nested more than 1000 times.                               

+ dotnet version 3.2.0.3(2017-04-13)
 - [DB2] fix a bug can't link column to insert table in create trigger statement.
 - [general] support IEnumerable interface for TParseTreeNodeList and 
   all descendant classes such as : TTableList, TConstraintList, TExpressionList,TFromTableList,TJoinItemList
    TJoinList,TMultiTargetList,TObjectNameList,TTableElementList
 - [general] support IEnumerable interface for TSourceTokenList
 - [general] support IEnumerable interface for TStatementList.


+ dotnet version 3.2.0.2(2017-01-20)
 - [general] fix a null exception error while get table column.

+ dotnet version 3.2.0.2(2017-01-18)
 - [General] fix a bug link qualified column to table in the same level incorrectly without search up level.
 
+ dotnet version 3.2.0.1(2017-01-12)
 - [general] release API document on: http://wangz.net/doc/Help
 - [general] add indexer for TSourceTokenList, TStatementList,TConstraintList,TExpressionList,TFromTableList,
 							TJoinItemList,TJoinList,TMultiTargetList,TObjectNameList,TTableElementList,TTableList

+ dotnet version 3.2.0.0(2017-01-10)
 - [general] This is the first public release version with the same functionality as General SQL Parser Java version 1.8.
 - [general] APIs used to modify parse tree was temporary disabled in current version.
 - [document] including the first APIs documentation in chm.

+ dotnet version 3.1.0.2(2017-01-05)
 - [general] support TParseTreeNode.String property.

+ dotnet version 3.1.0.0(2016-12-28)
 - [demos] include demos.
 
+ dotnet version 3.1.0.0(2016-12-26)
 - [general] fix a bug raise null exception when init lexer of hive/db2/greenplum,
 resolve this problem by remove resource file in project property and add table files again.
 Not know why this happens

+ dotnet version 3.0.1.0(2016-11-14)
 - [DB2] Migrate lex and yacc file.

+ dotnet version 3.0.0.2(2016-08-31)
 - [general] add new fields:  TSourceToken.nodesStartFromThisToken, TSourceToken.nodesEndWithThisToken

+ dotnet version 3.0.0.1(2016-08-26)
 - [general] first release