@Override public RelNode apply(RelNode originalRel, JdbcRelBuilderFactory relBuilderFactory) { if (!(originalRel instanceof LogicalTableModify)) { return null; } LogicalTableModify tableModify = (LogicalTableModify) originalRel; if (tableModify.getOperation() != operation) { return null; } Table baseTable = JdbcTableUtils.getJdbcTable(tableModify); if (!(baseTable instanceof JournalledJdbcTable)) { // Not a journal table; nothing to do return null; } JournalledJdbcTable journalTable = (JournalledJdbcTable) baseTable; return doApply(tableModify, journalTable, relBuilderFactory); }
@Override public LogicalTableModify copy(RelTraitSet traitSet, List<RelNode> inputs) { assert traitSet.containsIfApplicable(Convention.NONE); return new LogicalTableModify(getCluster(), traitSet, table, catalogReader, sole(inputs), getOperation(), getUpdateColumnList(), getSourceExpressionList(), isFlattened()); } }
@Override public LogicalTableModify copy(RelTraitSet traitSet, List<RelNode> inputs) { assert traitSet.containsIfApplicable(Convention.NONE); return new LogicalTableModify(getCluster(), traitSet, table, catalogReader, sole(inputs), getOperation(), getUpdateColumnList(), getSourceExpressionList(), isFlattened()); } }
public void rewriteRel(LogicalTableModify rel) { LogicalTableModify newRel = LogicalTableModify.create( rel.getTable(), rel.getCatalogReader(), getNewForOldRel(rel.getInput()), rel.getOperation(), rel.getUpdateColumnList(), rel.getSourceExpressionList(), true); setNewForOldRel(rel, newRel); }
public void rewriteRel(LogicalTableModify rel) { LogicalTableModify newRel = LogicalTableModify.create( rel.getTable(), rel.getCatalogReader(), getNewForOldRel(rel.getInput()), rel.getOperation(), rel.getUpdateColumnList(), rel.getSourceExpressionList(), true); setNewForOldRel(rel, newRel); }
@Override public RelNode convert(RelNode rel) { final LogicalTableModify modify = (LogicalTableModify) rel; final ModifiableTable modifiableTable = modify.getTable().unwrap(ModifiableTable.class); if (modifiableTable == null) { return null; } final RelTraitSet traitSet = modify.getTraitSet().replace(EnumerableConvention.INSTANCE); return new EnumerableTableModify( modify.getCluster(), traitSet, modify.getTable(), modify.getCatalogReader(), convert(modify.getInput(), traitSet), modify.getOperation(), modify.getUpdateColumnList(), modify.getSourceExpressionList(), modify.isFlattened()); } }
@Override public RelNode convert(RelNode rel) { final LogicalTableModify modify = (LogicalTableModify) rel; final ModifiableTable modifiableTable = modify.getTable().unwrap(ModifiableTable.class); if (modifiableTable == null) { return null; } final RelTraitSet traitSet = modify.getTraitSet().replace(EnumerableConvention.INSTANCE); return new EnumerableTableModify( modify.getCluster(), traitSet, modify.getTable(), modify.getCatalogReader(), convert(modify.getInput(), traitSet), modify.getOperation(), modify.getUpdateColumnList(), modify.getSourceExpressionList(), modify.isFlattened()); } }