package com.guozhi.bloodanalysis.parser.common; import java.util.List; import com.guozhi.bloodanalysis.parser.vo.KColumn; import com.guozhi.bloodanalysis.parser.vo.VTable; import gudusoft.gsqlparser.nodes.TAlterTableOptionList; import gudusoft.gsqlparser.nodes.TObjectName; import gudusoft.gsqlparser.stmt.TAlterTableStatement; import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Component; /** * Created by Walk.Lai on 2015/8/29. */ public class AlterParser { private TAlterTableStatement mStmt;//table, view private List mColumns; private VTable mTable; private ParserContext mParserContext; public AlterParser(TAlterTableStatement alterSql,ParserContext context){ mStmt =alterSql; this.mParserContext=context; } public void parse() { //alter table exchange partition with table // --将新数据以交换分区方式插入目标表 // ALTER TABLE IML_DB.EV_EVENT_PROD_RELA EXCHANGE SUBPARTITION P_1008_1111 WITH TABLE IML_DB.VT_NEW_1008; /* 例如 ALTER TABLE $PDM_SCH.PD_BCC_3F_TRAN_INFO RENAME TO PD_BCC_3F_TRAN_INFO_EXCHANGE2; ALTER TABLE $PDM_SCH.PD_BCC_3F_TRAN_INFO_EXCHANGE RENAME TO PD_BCC_3F_TRAN_INFO; tempTable -- $PDM_SCH.PD_BCC_3F_TRAN_INFO_EXCHANGE targetTable -- PD_BCC_3F_TRAN_INFO */ String tempTableName = null; String targetTableName = null; TObjectName obj = mStmt.getTableName(); if (obj!=null) { tempTableName = obj.toString(); } TAlterTableOptionList oplist = mStmt.getAlterTableOptionList(); if (oplist!=null) { for (int i = 0; i < oplist.size(); i++) { String option = oplist.getAlterTableOption(i).toString(); if (option.contains("RENAME")&&option.contains(" TO ")) { targetTableName = option.substring(option.indexOf(" TO ")+" TO ".length()).trim(); targetTableName = targetTableName.replace("SYMBOLALTERPOINT", "."); // targetTableName = this.addAlterSchema(tempTableName,targetTableName); break; } } } } public List getParseResult() { return null; } }