NOT FULL AST
Inheritance: IAstNode
 public virtual DdlCreateTableStatement AddColumnDefinition(Identifier colname, ColumnDefinition def)
 {
     ColDefs.Add(new Pair<Identifier, ColumnDefinition>(colname, def));
     return this;
 }
 public virtual void Visit(ColumnDefinition columnDefinition)
 {
 }
 public ModifyColumn(Identifier colName,
                     ColumnDefinition colDef,
                     Identifier afterColumn)
 {
     // | MODIFY [COLUMN] col_name column_definition [FIRST | AFTER col_name]
     ColName = colName;
     ColDef = colDef;
     IsFirst = afterColumn == null;
     AfterColumn = afterColumn;
 }
 /// <summary>without column position specification</summary>
 public ModifyColumn(Identifier colName,
                     ColumnDefinition colDef)
 {
     ColName = colName;
     ColDef = colDef;
     IsFirst = false;
     AfterColumn = null;
 }
 /// <summary>without column position specification</summary>
 public ChangeColumn(Identifier oldName,
                     Identifier newName,
                     ColumnDefinition colDef)
 {
     OldName = oldName;
     NewName = newName;
     ColDef = colDef;
     IsFirst = false;
     AfterColumn = null;
 }
 public ChangeColumn(Identifier oldName,
                     Identifier newName,
                     ColumnDefinition colDef,
                     Identifier afterColumn)
 {
     // | CHANGE [COLUMN] old_col_name new_col_name column_definition
     // [FIRST|AFTER col_name]
     OldName = oldName;
     NewName = newName;
     ColDef = colDef;
     IsFirst = afterColumn == null;
     AfterColumn = afterColumn;
 }
 public virtual AddColumns AddColumn(Identifier name, ColumnDefinition colDef)
 {
     columns.Add(new Pair<Identifier, ColumnDefinition>(name, colDef));
     return this;
 }
 /// <param name="columnName" />
 /// <param name="columnDefine" />
 /// <param name="afterColumn">null means fisrt</param>
 public AddColumn(Identifier columnName,
                  ColumnDefinition columnDefine)
 {
     ColumnName = columnName;
     ColumnDefine = columnDefine;
     AfterColumn = null;
     IsFirst = false;
 }
 /// <param name="columnName" />
 /// <param name="columnDefine" />
 /// <param name="afterColumn">null means fisrt</param>
 public AddColumn(Identifier columnName,
                  ColumnDefinition columnDefine,
                  Identifier afterColumn)
 {
     // | ADD [COLUMN] col_name column_definition [FIRST | AFTER col_name ]
     ColumnName = columnName;
     ColumnDefine = columnDefine;
     AfterColumn = afterColumn;
     IsFirst = afterColumn == null;
 }