001package gudusoft.gsqlparser.stmt.snowflake; 002 003 004import gudusoft.gsqlparser.*; 005import gudusoft.gsqlparser.nodes.TDummy; 006import gudusoft.gsqlparser.nodes.TFileFormatSqlNode; 007import gudusoft.gsqlparser.nodes.TObjectName; 008import gudusoft.gsqlparser.nodes.TParseTreeVisitor; 009 010public class TCreateFileFormatStmt extends TCustomSqlStatement { 011 012 public String getTypeName(){ 013 String ret = ""; 014 if (formatOptions == null){ 015 ret = ""; 016 }else{ 017 if (formatOptions.getStartToken() == null){ 018 ret = ""; 019 }else{ 020 TSourceToken st = formatOptions.getStartToken(); 021 TSourceToken typenameToken = st.nextSolidToken();// st.searchToken(TBaseType.ident,2); 022 if (typenameToken != null){ 023 typenameToken = typenameToken.nextSolidToken(); 024 } 025 if (typenameToken != null){ 026 ret = typenameToken.toString(); 027 } 028 } 029 } 030 return ret; 031 } 032 private String dataCompression; 033 034 public String getDataCompression() { 035 return dataCompression; 036 } 037 038 private TDummy formatOptions; 039 040 public TDummy getFormatOptions() { 041 return formatOptions; 042 } 043 044 private TObjectName fileFormatName; 045 046 public void setFileFormatName(TObjectName fileFormatName) { 047 this.fileFormatName = fileFormatName; 048 } 049 050 public TObjectName getFileFormatName() { 051 052 return fileFormatName; 053 } 054 055 public TCreateFileFormatStmt(EDbVendor dbvendor) { 056 super(dbvendor); 057 sqlstatementtype = ESqlStatementType.sstCreateFileFormat; 058 } 059 060 private EFileFormat fileFormat = EFileFormat.unknown; 061 062 public EFileFormat getFileFormat() { 063 return fileFormat; 064 } 065 066 public int doParseStatement(TCustomSqlStatement psql) { 067 if (rootNode == null) return -1; 068 super.doParseStatement(psql); 069 switch (dbvendor){ 070 case dbvmssql: 071 case dbvazuresql: 072 TFileFormatSqlNode formatSqlNode = (TFileFormatSqlNode)rootNode; 073 fileFormatName = formatSqlNode.getFileFormatName(); 074 fileFormat = formatSqlNode.getFileFormat(); 075 dataCompression = formatSqlNode.getDataCompression(); 076 break; 077 default: 078 TDummy node = (TDummy)rootNode; 079 fileFormatName = (TObjectName)(node.node1); 080 formatOptions = (TDummy)(node.node2); 081 } 082 083 return 0; 084 } 085 086 public void accept(TParseTreeVisitor v){ 087 v.preVisit(this); 088 v.postVisit(this); 089 } 090 091 public void acceptChildren(TParseTreeVisitor v){ 092 v.preVisit(this); 093 fileFormatName.acceptChildren(v); 094 v.postVisit(this); 095 } 096 097}