Upgrade to optiq-0.4.2. Add sqllline and an optiq model for the donuts schema.
Signed-off-by: Jacques Nadeau <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/incubator-drill/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-drill/commit/3a11d291 Tree: http://git-wip-us.apache.org/repos/asf/incubator-drill/tree/3a11d291 Diff: http://git-wip-us.apache.org/repos/asf/incubator-drill/diff/3a11d291 Branch: refs/heads/execwork Commit: 3a11d2917d93e053939ff0f8c67f726471783dea Parents: b35ada3 Author: Julian Hyde <[email protected]> Authored: Tue Jun 4 11:15:25 2013 -0700 Committer: Jacques Nadeau <[email protected]> Committed: Thu Jun 6 11:06:43 2013 -0700 ---------------------------------------------------------------------- .../common/src/test/resources/donuts-model.json | 19 +++++++++++++ sandbox/prototype/sqlparser/pom.xml | 10 +++++- .../java/org/apache/drill/jdbc/DrillTable.java | 21 ++++++++------- .../java/org/apache/drill/jdbc/test/JdbcTest.java | 5 +++- 4 files changed, 42 insertions(+), 13 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/3a11d291/sandbox/prototype/common/src/test/resources/donuts-model.json ---------------------------------------------------------------------- diff --git a/sandbox/prototype/common/src/test/resources/donuts-model.json b/sandbox/prototype/common/src/test/resources/donuts-model.json new file mode 100644 index 0000000..f91f7e0 --- /dev/null +++ b/sandbox/prototype/common/src/test/resources/donuts-model.json @@ -0,0 +1,19 @@ +{ + version: '1.0', + defaultSchema: 'DONUTS', + schemas: [ + { + name: 'DONUTS', + tables: [ + { + name: 'DONUTS', + type: 'custom', + factory: 'org.apache.drill.jdbc.DrillTable$Factory', + operand: { + path: "/donuts.json" + } + } + ] + } + ] +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/3a11d291/sandbox/prototype/sqlparser/pom.xml ---------------------------------------------------------------------- diff --git a/sandbox/prototype/sqlparser/pom.xml b/sandbox/prototype/sqlparser/pom.xml index b220fc4..3bf47f3 100644 --- a/sandbox/prototype/sqlparser/pom.xml +++ b/sandbox/prototype/sqlparser/pom.xml @@ -29,12 +29,12 @@ <dependency> <groupId>net.hydromatic</groupId> <artifactId>optiq</artifactId> - <version>0.3-SNAPSHOT</version> + <version>0.4.2</version> </dependency> <dependency> <groupId>net.hydromatic</groupId> <artifactId>linq4j</artifactId> - <version>0.1</version> + <version>0.1.3</version> </dependency> <dependency> <groupId>org.apache.drill.exec</groupId> @@ -54,6 +54,12 @@ <artifactId>janino</artifactId> <version>2.6.1</version> </dependency> + <dependency> + <groupId>sqlline</groupId> + <artifactId>sqlline</artifactId> + <version>1.1.0</version> + <scope>test</scope> + </dependency> <!-- Specify xalan and xerces versions to avoid setXIncludeAware error. --> <dependency> <groupId>xerces</groupId> http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/3a11d291/sandbox/prototype/sqlparser/src/main/java/org/apache/drill/jdbc/DrillTable.java ---------------------------------------------------------------------- diff --git a/sandbox/prototype/sqlparser/src/main/java/org/apache/drill/jdbc/DrillTable.java b/sandbox/prototype/sqlparser/src/main/java/org/apache/drill/jdbc/DrillTable.java index f2cc8fd..022e05d 100644 --- a/sandbox/prototype/sqlparser/src/main/java/org/apache/drill/jdbc/DrillTable.java +++ b/sandbox/prototype/sqlparser/src/main/java/org/apache/drill/jdbc/DrillTable.java @@ -19,6 +19,7 @@ package org.apache.drill.jdbc; import java.lang.reflect.Type; import java.util.Collections; +import java.util.Map; import net.hydromatic.linq4j.BaseQueryable; import net.hydromatic.linq4j.Enumerator; @@ -28,7 +29,6 @@ import net.hydromatic.linq4j.expressions.Expressions; import net.hydromatic.linq4j.expressions.MethodCallExpression; import net.hydromatic.optiq.*; -import net.hydromatic.optiq.impl.java.JavaTypeFactory; import org.apache.drill.common.logical.StorageEngineConfig; import org.apache.drill.exec.ref.rops.DataWriter; @@ -115,22 +115,23 @@ public class DrillTable extends BaseQueryable<Object> table); } + private static <T> T last(T t0, T t1) { + return t0 != null ? t0 : t1; + } + /** Factory for custom tables in Optiq schema. */ @SuppressWarnings("UnusedDeclaration") public static class Factory implements TableFactory<DrillTable> { - public DrillTable create( - JavaTypeFactory typeFactory, - Schema schema, - String name, - Object operand, - RelDataType rowType) { + @Override + public DrillTable create(Schema schema, String name, + Map<String, Object> operand, RelDataType rowType) { final ClasspathRSE.ClasspathRSEConfig rseConfig = new ClasspathRSE.ClasspathRSEConfig("donuts-json"); final ClasspathInputConfig inputConfig = new ClasspathInputConfig(); - inputConfig.path = "/donuts.json"; + inputConfig.path = last((String) operand.get("path"), "/donuts.json"); inputConfig.type = DataWriter.ConverterType.JSON; - return createTable(typeFactory, (MutableSchema) schema, name, rseConfig, - inputConfig); + return createTable(schema.getTypeFactory(), (MutableSchema) schema, name, + rseConfig, inputConfig); } } } http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/3a11d291/sandbox/prototype/sqlparser/src/test/java/org/apache/drill/jdbc/test/JdbcTest.java ---------------------------------------------------------------------- diff --git a/sandbox/prototype/sqlparser/src/test/java/org/apache/drill/jdbc/test/JdbcTest.java b/sandbox/prototype/sqlparser/src/test/java/org/apache/drill/jdbc/test/JdbcTest.java index 878f375..71ed10d 100644 --- a/sandbox/prototype/sqlparser/src/test/java/org/apache/drill/jdbc/test/JdbcTest.java +++ b/sandbox/prototype/sqlparser/src/test/java/org/apache/drill/jdbc/test/JdbcTest.java @@ -37,7 +37,10 @@ public class JdbcTest extends TestCase { + " {\n" + " name: 'DONUTS',\n" + " type: 'custom',\n" - + " factory: '" + DrillTable.Factory.class.getName() + "'\n" + + " factory: '" + DrillTable.Factory.class.getName() + "'\n," + + " operand: {\n" + + " path: '/donuts.json'\n" + + " }\n" + " }\n" + " ]\n" + " }\n"
