001package gudusoft.gsqlparser.stmt; 002 003 004import gudusoft.gsqlparser.EDbVendor; 005import gudusoft.gsqlparser.ESqlStatementType; 006import gudusoft.gsqlparser.ETableEffectType; 007import gudusoft.gsqlparser.TCustomSqlStatement; 008import gudusoft.gsqlparser.nodes.*; 009 010/** 011 * Oracle create materialized view log 012 * 013 * Get table name {@link #getTableName()}, get column list {@link #getColumnList()} 014 */ 015public class TCreateMaterializedViewLogSqlStatement extends TCustomSqlStatement { 016 private TObjectName tableName = null; 017 018 public TObjectName getTableName() { 019 return tableName; 020 } 021 private TObjectNameList columnList; 022 023 public TObjectNameList getColumnList() { 024 return columnList; 025 } 026 027 public TCreateMaterializedViewLogSqlStatement(EDbVendor dbvendor) { 028 super(dbvendor); 029 sqlstatementtype = ESqlStatementType.sstoraclecreatematerializedviewlog; 030 } 031 032 033 public int doParseStatement(TCustomSqlStatement psql) { 034 if (rootNode == null) return -1; 035 TCreateMaterializedViewLogSqlNode createViewLogSqlNode = (TCreateMaterializedViewLogSqlNode)rootNode; 036 super.doParseStatement(psql); 037 038 tableName = createViewLogSqlNode.getTableName(); 039 TTable lcTable = new TTable(tableName); 040 lcTable.setPropertyFromObjectName(tableName, ETableEffectType.tetCreateMaterializedViewLog); 041 this.tables.addTable(lcTable); 042 043 columnList = createViewLogSqlNode.getColumnList(); 044 if (columnList != null){ 045 for(int i=0;i<columnList.size();i++){ 046 lcTable.getLinkedColumns().addObjectName(columnList.getObjectName(i)); 047 columnList.getObjectName(i).setSourceTable(lcTable); 048 } 049 } 050 051 return 0; 052 } 053 054 public void accept(TParseTreeVisitor v){ 055 v.preVisit(this); 056 v.postVisit(this); 057 } 058 059 public void acceptChildren(TParseTreeVisitor v){ 060 v.preVisit(this); 061 v.postVisit(this); 062 } 063 064}