001package gudusoft.gsqlparser.stmt.hive; 002/* 003 * Date: 13-7-30 004 */ 005 006import gudusoft.gsqlparser.EDbVendor; 007import gudusoft.gsqlparser.ESqlStatementType; 008import gudusoft.gsqlparser.TCustomSqlStatement; 009import gudusoft.gsqlparser.nodes.TFromTable; 010import gudusoft.gsqlparser.nodes.TObjectName; 011import gudusoft.gsqlparser.nodes.TParseTreeVisitor; 012import gudusoft.gsqlparser.nodes.TTable; 013import gudusoft.gsqlparser.nodes.hive.THiveImportSqlNode; 014 015public class THiveImportTable extends TCustomSqlStatement { 016 017 private boolean external = false; 018 private TTable table; 019 private TObjectName path; 020 private TObjectName tableLocation; 021 022 public THiveImportTable(EDbVendor dbvendor) { 023 super(dbvendor); 024 sqlstatementtype = ESqlStatementType.ssthiveImportTable; 025 } 026 027 public boolean isExternal() { 028 return external; 029 } 030 031 public TObjectName getPath() { 032 return path; 033 } 034 035 public TTable getTable() { 036 return table; 037 } 038 039 public TObjectName getTableLocation() { 040 return tableLocation; 041 } 042 043 public int doParseStatement(TCustomSqlStatement psql) { 044 if (rootNode == null) return -1; 045 super.doParseStatement(psql); 046 THiveImportSqlNode node = (THiveImportSqlNode)rootNode; 047 external = node.isExternal(); 048 path = node.getPath(); 049 tableLocation = node.getTableLocation(); 050 if (node.getFromTable() != null){ 051 table = this.analyzeFromTable(node.getFromTable(),true); 052 } 053 054 return 0; 055 } 056 057 public void accept(TParseTreeVisitor v){ 058 v.preVisit(this); 059 v.postVisit(this); 060 } 061 062 public void acceptChildren(TParseTreeVisitor v){ 063 v.preVisit(this); 064 v.postVisit(this); 065 } 066 067 public void setExternal(boolean external) { 068 this.external = external; 069 } 070 071 public void setTable(TTable table) { 072 this.table = table; 073 } 074 075 public void setPath(TObjectName path) { 076 this.path = path; 077 } 078 079 public void setTableLocation(TObjectName tableLocation) { 080 this.tableLocation = tableLocation; 081 } 082}