/** * Check if CTAS is already done * @param rootNode * @return */ private boolean checkIfCtasAlreadyDone(LogicalNode rootNode) { if (rootNode.getChild(0).getType() == NodeType.CREATE_TABLE) { CreateTableNode createTable = (CreateTableNode) rootNode.getChild(0); if (createTable.isIfNotExists() && catalog.existsTable(createTable.getTableName())) { return true; } } return false; }
/** * Check if CTAS is already done * @param rootNode * @return */ private boolean checkIfCtasAlreadyDone(LogicalNode rootNode) { if (rootNode.getChild(0).getType() == NodeType.CREATE_TABLE) { CreateTableNode createTable = (CreateTableNode) rootNode.getChild(0); if (createTable.isIfNotExists() && catalog.existsTable(createTable.getTableName())) { return true; } } return false; }
public void prepareTable(LogicalNode node) throws TajoException, IOException { if (node.getType() == NodeType.CREATE_TABLE) { CreateTableNode cNode = (CreateTableNode)node; if (!cNode.isExternal()) { TableMeta tableMeta = new TableMeta(cNode.getStorageType(), cNode.getOptions()); createTable( ((CreateTableNode) node).getUri(), tableMeta, cNode.getTableSchema(), cNode.isExternal(), cNode.isIfNotExists()); } } }
public void prepareTable(LogicalNode node) throws TajoException, IOException { if (node.getType() == NodeType.CREATE_TABLE) { CreateTableNode cNode = (CreateTableNode)node; if (!cNode.isExternal()) { TableMeta tableMeta = new TableMeta(cNode.getStorageType(), cNode.getOptions()); createTable( ((CreateTableNode) node).getUri(), tableMeta, cNode.getTableSchema(), cNode.isExternal(), cNode.isIfNotExists()); } } }
@Override public LogicalNode visitCreateTable(SerializeContext context, LogicalPlan plan, LogicalPlan.QueryBlock block, CreateTableNode node, Stack<LogicalNode> stack) throws TajoException { super.visitCreateTable(context, plan, block, node, stack); int [] childIds = registerGetChildIds(context, node); PlanProto.PersistentStoreNode.Builder persistentStoreBuilder = buildPersistentStoreBuilder(node, childIds); PlanProto.StoreTableNodeSpec.Builder storeTableBuilder = buildStoreTableNodeSpec(node); PlanProto.CreateTableNodeSpec.Builder createTableBuilder = PlanProto.CreateTableNodeSpec.newBuilder(); if (node.hasTableSpaceName()) { createTableBuilder.setTablespaceName(node.getTableSpaceName()); } createTableBuilder.setExternal(node.isExternal()); createTableBuilder.setIfNotExists(node.isIfNotExists()); PlanProto.LogicalNode.Builder nodeBuilder = createNodeBuilder(context, node); nodeBuilder.setPersistentStore(persistentStoreBuilder); nodeBuilder.setStoreTable(storeTableBuilder); nodeBuilder.setCreateTable(createTableBuilder); context.treeBuilder.addNodes(nodeBuilder); return node; }
@Override public LogicalNode visitCreateTable(SerializeContext context, LogicalPlan plan, LogicalPlan.QueryBlock block, CreateTableNode node, Stack<LogicalNode> stack) throws TajoException { super.visitCreateTable(context, plan, block, node, stack); int [] childIds = registerGetChildIds(context, node); PlanProto.PersistentStoreNode.Builder persistentStoreBuilder = buildPersistentStoreBuilder(node, childIds); PlanProto.StoreTableNodeSpec.Builder storeTableBuilder = buildStoreTableNodeSpec(node); PlanProto.CreateTableNodeSpec.Builder createTableBuilder = PlanProto.CreateTableNodeSpec.newBuilder(); if (node.hasTableSpaceName()) { createTableBuilder.setTablespaceName(node.getTableSpaceName()); } createTableBuilder.setExternal(node.isExternal()); createTableBuilder.setIfNotExists(node.isIfNotExists()); PlanProto.LogicalNode.Builder nodeBuilder = createNodeBuilder(context, node); nodeBuilder.setPersistentStore(persistentStoreBuilder); nodeBuilder.setStoreTable(storeTableBuilder); nodeBuilder.setCreateTable(createTableBuilder); context.treeBuilder.addNodes(nodeBuilder); return node; }
createTableExecutor.create(queryContext, createTable, createTable.isIfNotExists()); return true; case DROP_TABLE:
createTableExecutor.create(queryContext, createTable, createTable.isIfNotExists()); return true; case DROP_TABLE: