diff --git a/pom.xml b/pom.xml
index 890b0ec..4dd02f6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -37,7 +37,7 @@
UTF-8
4.12
3.1.0-incubating
- 1.5.0
+ 1.6.0
diff --git a/src/main/java/org/twilmes/sql/gremlin/processor/FieldMapVisitor.java b/src/main/java/org/twilmes/sql/gremlin/processor/FieldMapVisitor.java
index 9d8425b..0b13044 100644
--- a/src/main/java/org/twilmes/sql/gremlin/processor/FieldMapVisitor.java
+++ b/src/main/java/org/twilmes/sql/gremlin/processor/FieldMapVisitor.java
@@ -19,6 +19,7 @@
package org.twilmes.sql.gremlin.processor;
+import org.apache.calcite.adapter.enumerable.EnumerableCalc;
import org.twilmes.sql.gremlin.rel.GremlinToEnumerableConverter;
import org.apache.calcite.adapter.enumerable.EnumerableJoin;
import org.apache.calcite.rel.RelNode;
@@ -95,6 +96,20 @@ private GremlinToEnumerableConverter getConverter(int fieldIndex, String field,
List fieldNames = join.getRowType().getFieldNames();
final String chosenField = fieldNames.get(fieldIndex);
return fieldMap.get(join).get(chosenField);
+ } else if (node instanceof EnumerableCalc) {
+ final EnumerableCalc calc = (EnumerableCalc) node;
+ for (RelNode relNode : calc.getInputs()) {
+ if (relNode instanceof EnumerableJoin) {
+ return getConverter(fieldIndex, field, relNode);
+ } else {
+ try {
+ GremlinToEnumerableConverter converter = (GremlinToEnumerableConverter) relNode;
+ return converter;
+ } catch (ClassCastException e) {
+
+ }
+ }
+ }
}
return null;
}
diff --git a/src/main/java/org/twilmes/sql/gremlin/processor/GremlinCompiler.java b/src/main/java/org/twilmes/sql/gremlin/processor/GremlinCompiler.java
index 4bc1f4b..11ac45b 100644
--- a/src/main/java/org/twilmes/sql/gremlin/processor/GremlinCompiler.java
+++ b/src/main/java/org/twilmes/sql/gremlin/processor/GremlinCompiler.java
@@ -121,7 +121,7 @@ public List