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"

Reply via email to