private ConnectorPageSink createPageSink() { if (target instanceof CreateHandle) { return pageSinkManager.createPageSink(session, ((CreateHandle) target).getHandle()); } if (target instanceof InsertHandle) { return pageSinkManager.createPageSink(session, ((InsertHandle) target).getHandle()); } throw new UnsupportedOperationException("Unhandled target type: " + target.getClass().getName()); }
private static TableFinisher createTableFinisher(Session session, TableFinishNode node, Metadata metadata) { WriterTarget target = node.getTarget(); return (fragments, statistics) -> { if (target instanceof CreateHandle) { return metadata.finishCreateTable(session, ((CreateHandle) target).getHandle(), fragments, statistics); } else if (target instanceof InsertHandle) { return metadata.finishInsert(session, ((InsertHandle) target).getHandle(), fragments, statistics); } else if (target instanceof DeleteHandle) { metadata.finishDelete(session, ((DeleteHandle) target).getHandle(), fragments); return Optional.empty(); } else { throw new AssertionError("Unhandled target type: " + target.getClass().getName()); } }; }
CreateHandle createHandle = (CreateHandle) writerTarget; context.setOutputTable(new CatalogSchemaTableName( createHandle.getHandle().getConnectorId().getCatalogName(), createHandle.getSchemaTableName().getSchemaName(), createHandle.getSchemaTableName().getTableName()));
@Override public void finishTable(Collection<Slice> fragments) { if (target instanceof CreateHandle) { metadata.finishCreateTable(session, ((CreateHandle) target).getHandle(), fragments); } else if (target instanceof InsertHandle) { metadata.finishInsert(session, ((InsertHandle) target).getHandle(), fragments); } else if (target instanceof DeleteHandle) { metadata.finishDelete(session, ((DeleteHandle) target).getHandle(), fragments); } else { throw new AssertionError("Unhandled target type: " + target.getClass().getName()); } } };
private ConnectorPageSink createPageSink() { if (target instanceof CreateHandle) { return pageSinkManager.createPageSink(session, ((CreateHandle) target).getHandle()); } if (target instanceof InsertHandle) { return pageSinkManager.createPageSink(session, ((InsertHandle) target).getHandle()); } throw new UnsupportedOperationException("Unhandled target type: " + target.getClass().getName()); }
@Override public Void visitTableWriter(TableWriterNode node, Void context) { TableWriterNode.WriterTarget writerTarget = node.getTarget(); if (writerTarget instanceof TableWriterNode.CreateHandle) { connectorId = ((TableWriterNode.CreateHandle) writerTarget).getHandle().getConnectorId(); checkState(schemaTableName == null || schemaTableName.equals(((TableWriterNode.CreateHandle) writerTarget).getSchemaTableName()), "cannot have more than a single create, insert or delete in a query"); schemaTableName = ((TableWriterNode.CreateHandle) writerTarget).getSchemaTableName(); } if (writerTarget instanceof TableWriterNode.InsertHandle) { connectorId = ((TableWriterNode.InsertHandle) writerTarget).getHandle().getConnectorId(); checkState(schemaTableName == null || schemaTableName.equals(((TableWriterNode.InsertHandle) writerTarget).getSchemaTableName()), "cannot have more than a single create, insert or delete in a query"); schemaTableName = ((TableWriterNode.InsertHandle) writerTarget).getSchemaTableName(); } if (writerTarget instanceof TableWriterNode.DeleteHandle) { connectorId = ((TableWriterNode.DeleteHandle) writerTarget).getHandle().getConnectorId(); checkState(schemaTableName == null || schemaTableName.equals(((TableWriterNode.DeleteHandle) writerTarget).getSchemaTableName()), "cannot have more than a single create, insert or delete in a query"); schemaTableName = ((TableWriterNode.DeleteHandle) writerTarget).getSchemaTableName(); } return null; }