@Override public PlanString getPlanString() { PlanString planString = new PlanString(this); planString.appendTitle(" INTO "); if (hasTargetTable()) { planString.appendTitle(getTableName()); if (hasTargetSchema()) { planString.addExplan(getTargetSchema().toString()); } } else { planString.addExplan("LOCATION " + uri); } return planString; } }
@Override public PlanString getPlanString() { PlanString planString = new PlanString(this); planString.appendTitle(" INTO "); if (hasTargetTable()) { planString.appendTitle(getTableName()); if (hasTargetSchema()) { planString.addExplan(getTargetSchema().toString()); } } else { planString.addExplan("LOCATION " + uri); } return planString; } }
@Override public LogicalNode visitInsert(SerializeContext context, LogicalPlan plan, LogicalPlan.QueryBlock block, InsertNode node, Stack<LogicalNode> stack) throws TajoException { super.visitInsert(context, plan, block, node, stack); int [] childIds = registerGetChildIds(context, node); PlanProto.PersistentStoreNode.Builder persistentStoreBuilder = buildPersistentStoreBuilder(node, childIds); PlanProto.StoreTableNodeSpec.Builder storeTableBuilder = buildStoreTableNodeSpec(node); PlanProto.InsertNodeSpec.Builder insertNodeSpec = PlanProto.InsertNodeSpec.newBuilder(); insertNodeSpec.setOverwrite(node.isOverwrite()); if (node.hasProjectedSchema()) { insertNodeSpec.setProjectedSchema(node.getProjectedSchema().getProto()); } if (node.hasTargetSchema()) { insertNodeSpec.setTargetSchema(node.getTargetSchema().getProto()); } PlanProto.LogicalNode.Builder nodeBuilder = createNodeBuilder(context, node); nodeBuilder.setPersistentStore(persistentStoreBuilder); nodeBuilder.setStoreTable(storeTableBuilder); nodeBuilder.setInsert(insertNodeSpec); context.treeBuilder.addNodes(nodeBuilder); return node; }
@Override public LogicalNode visitInsert(SerializeContext context, LogicalPlan plan, LogicalPlan.QueryBlock block, InsertNode node, Stack<LogicalNode> stack) throws TajoException { super.visitInsert(context, plan, block, node, stack); int [] childIds = registerGetChildIds(context, node); PlanProto.PersistentStoreNode.Builder persistentStoreBuilder = buildPersistentStoreBuilder(node, childIds); PlanProto.StoreTableNodeSpec.Builder storeTableBuilder = buildStoreTableNodeSpec(node); PlanProto.InsertNodeSpec.Builder insertNodeSpec = PlanProto.InsertNodeSpec.newBuilder(); insertNodeSpec.setOverwrite(node.isOverwrite()); if (node.hasProjectedSchema()) { insertNodeSpec.setProjectedSchema(node.getProjectedSchema().getProto()); } if (node.hasTargetSchema()) { insertNodeSpec.setTargetSchema(node.getTargetSchema().getProto()); } PlanProto.LogicalNode.Builder nodeBuilder = createNodeBuilder(context, node); nodeBuilder.setPersistentStore(persistentStoreBuilder); nodeBuilder.setStoreTable(storeTableBuilder); nodeBuilder.setInsert(insertNodeSpec); context.treeBuilder.addNodes(nodeBuilder); return node; }
@Test public final void testInsertInto2() throws TajoException { QueryContext qc = createQueryContext(); Expr expr = sqlAnalyzer.parse(insertStatements[2]); LogicalPlan plan = planner.createPlan(qc, expr); assertEquals(1, plan.getQueryBlocks().size()); InsertNode insertNode = getInsertNode(plan); assertFalse(insertNode.isOverwrite()); assertEquals(IdentifierUtil.buildFQName(DEFAULT_DATABASE_NAME, "employee"), insertNode.getTableName()); assertTrue(insertNode.hasTargetSchema()); assertEquals(insertNode.getTargetSchema().getColumn(0).getSimpleName(), "name"); assertEquals(insertNode.getTargetSchema().getColumn(1).getSimpleName(), "deptname"); }
@Test public final void testInsertInto4() throws TajoException { QueryContext qc = createQueryContext(); Expr expr = sqlAnalyzer.parse(insertStatements[4]); LogicalPlan plan = planner.createPlan(qc, expr); assertEquals(1, plan.getQueryBlocks().size()); InsertNode insertNode = getInsertNode(plan); assertTrue(insertNode.isOverwrite()); assertTrue(insertNode.hasTargetTable()); assertEquals(IdentifierUtil.buildFQName(DEFAULT_DATABASE_NAME, "employee"), insertNode.getTableName()); assertTrue(insertNode.hasTargetSchema()); assertEquals(insertNode.getTargetSchema().getColumn(0).getSimpleName(), "name"); assertEquals(insertNode.getTargetSchema().getColumn(1).getSimpleName(), "deptname"); }