[
https://issues.apache.org/jira/browse/BEAM-4044?focusedWorklogId=93263&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-93263
]
ASF GitHub Bot logged work on BEAM-4044:
----------------------------------------
Author: ASF GitHub Bot
Created on: 20/Apr/18 16:05
Start Date: 20/Apr/18 16:05
Worklog Time Spent: 10m
Work Description: apilloud commented on a change in pull request #5154:
[BEAM-4044] [SQL] Make BeamCalciteTable self planning
URL: https://github.com/apache/beam/pull/5154#discussion_r183098485
##########
File path:
sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/impl/rel/BeamIOSinkRel.java
##########
@@ -20,61 +20,81 @@
import com.google.common.base.Joiner;
import java.util.List;
import org.apache.beam.sdk.extensions.sql.BeamSqlTable;
-import org.apache.beam.sdk.extensions.sql.impl.BeamSqlEnv;
+import org.apache.beam.sdk.extensions.sql.impl.rule.BeamIOSinkRule;
import org.apache.beam.sdk.transforms.PTransform;
import org.apache.beam.sdk.values.PCollection;
import org.apache.beam.sdk.values.PCollectionTuple;
import org.apache.beam.sdk.values.Row;
import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptPlanner;
import org.apache.calcite.plan.RelOptTable;
import org.apache.calcite.plan.RelTraitSet;
import org.apache.calcite.prepare.Prepare;
import org.apache.calcite.rel.RelNode;
import org.apache.calcite.rel.core.TableModify;
import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.sql2rel.RelStructuredTypeFlattener;
/** BeamRelNode to replace a {@code TableModify} node. */
-public class BeamIOSinkRel extends TableModify implements BeamRelNode {
+public class BeamIOSinkRel extends TableModify
+ implements BeamRelNode, RelStructuredTypeFlattener.SelfFlatteningRel {
- private final BeamSqlEnv sqlEnv;
+ private final BeamSqlTable sqlTable;
+ private boolean isFlattening = false;
public BeamIOSinkRel(
- BeamSqlEnv sqlEnv,
RelOptCluster cluster,
- RelTraitSet traits,
RelOptTable table,
Prepare.CatalogReader catalogReader,
RelNode child,
Operation operation,
List<String> updateColumnList,
List<RexNode> sourceExpressionList,
- boolean flattened) {
+ boolean flattened,
+ BeamSqlTable sqlTable) {
super(
cluster,
- traits,
+ cluster.traitSetOf(BeamLogicalConvention.INSTANCE),
table,
catalogReader,
child,
operation,
updateColumnList,
sourceExpressionList,
flattened);
- this.sqlEnv = sqlEnv;
+ this.sqlTable = sqlTable;
}
@Override
public RelNode copy(RelTraitSet traitSet, List<RelNode> inputs) {
- return new BeamIOSinkRel(
- sqlEnv,
+ boolean flattened = isFlattened() || isFlattening;
+ BeamIOSinkRel newRel = new BeamIOSinkRel(
getCluster(),
- traitSet,
getTable(),
getCatalogReader(),
sole(inputs),
getOperation(),
getUpdateColumnList(),
getSourceExpressionList(),
- isFlattened());
+ flattened,
+ sqlTable);
+ newRel.traitSet = traitSet;
+ return newRel;
+ }
+
+ @Override
+ public void flattenRel(RelStructuredTypeFlattener flattener) {
+ // rewriteGeneric calls this.copy. Setting isFlattining passes
+ // this context into copy for modificaiton of the flattened flag.
Review comment:
Fixed! Thanks.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
Issue Time Tracking
-------------------
Worklog Id: (was: 93263)
Time Spent: 6h 20m (was: 6h 10m)
> Take advantage of Calcite DDL
> -----------------------------
>
> Key: BEAM-4044
> URL: https://issues.apache.org/jira/browse/BEAM-4044
> Project: Beam
> Issue Type: New Feature
> Components: dsl-sql
> Reporter: Andrew Pilloud
> Assignee: Andrew Pilloud
> Priority: Major
> Time Spent: 6h 20m
> Remaining Estimate: 0h
>
> In Calcite 1.15 support for abstract DDL moved into calcite core. We should
> take advantage of that.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)