I have imported as external jars calcite-example-csv, calcite-core, avatica , linq4j, avatica-metrics, avatica-standalone with all their sources and tests, and I get: Exception in thread "main" java.lang.AbstractMethodError: org.apache.calcite.config.CalciteConnectionProperty.valueClass()Ljava/lang/Class; at org.apache.calcite.avatica.ConnectionConfigImpl$PropEnv.getEnum(ConnectionConfigImpl.java:228). Is there something else I am missing.
Also, when I ran the streaming test from CsvTest.java and I add a filter in the query, I get an error. Is filter implemented for streaming query by defining the query with a string, or should I define with another way? 2016-09-05 21:03 GMT+03:00 Julian Hyde <[email protected]>: > You have mismatched versions. CANCEL_FLAG will be added to calcite-core > only in version 1.9. So, if you are using 1.9.0-SNAPSHOT version of > example/csv you should use a 1.9.0-SNAPSHOT version of other Calcite jars. > (You can build and install in your local repo using ‘mvn install’.) > > 1.9 should be released in a couple of weeks. > > Julian > > > On Sep 5, 2016, at 3:04 AM, Γιώργος Θεοδωράκης <[email protected]> > wrote: > > > > It has to do with the dependencies. When I am running the sample code > with > > changes as Test in > > ../calcite-master/example/csv/src/test/java/org/apache/calcite/test/ I > have > > no errors. However, when I try to create my own project in Eclipse and > > after I have imported everything with maven repositories (from calcite > 1.8 > > version and as external .jar the calcite-example-csv-1.9.0-SNAPSHOT.jar > > from the github version) the same error occurs : > > > > Exception in thread "main" java.lang.NoSuchFieldError: CANCEL_FLAG > > at > > org.apache.calcite.adapter.csv.CsvScannableTable.scan( > CsvScannableTable.java:48) > > at > > org.apache.calcite.interpreter.TableScanNode. > createScannable(TableScanNode.java:117) > > at > > org.apache.calcite.interpreter.TableScanNode. > create(TableScanNode.java:94) > > at org.apache.calcite.interpreter.Nodes$CoreCompiler.visit(Nodes.java: > 68) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > at > > sun.reflect.NativeMethodAccessorImpl.invoke( > NativeMethodAccessorImpl.java:57) > > at > > sun.reflect.DelegatingMethodAccessorImpl.invoke( > DelegatingMethodAccessorImpl.java:43) > > at java.lang.reflect.Method.invoke(Method.java:606) > > at > > org.apache.calcite.util.ReflectUtil.invokeVisitorInternal( > ReflectUtil.java:257) > > at org.apache.calcite.util.ReflectUtil.invokeVisitor( > ReflectUtil.java:214) > > at org.apache.calcite.util.ReflectUtil$1.invokeVisitor( > ReflectUtil.java:471) > > at > > org.apache.calcite.interpreter.Interpreter$Compiler.visit(Interpreter. > java:476) > > at > > org.apache.calcite.interpreter.Interpreter$Compiler.visitRoot( > Interpreter.java:433) > > at org.apache.calcite.interpreter.Interpreter.<init> > (Interpreter.java:75) > > at Baz.bind(Unknown Source) > > at > > org.apache.calcite.jdbc.CalcitePrepare$CalciteSignature.enumerable( > CalcitePrepare.java:327) > > at > > org.apache.calcite.jdbc.CalciteConnectionImpl.enumerable( > CalciteConnectionImpl.java:282) > > at > > org.apache.calcite.jdbc.CalciteMetaImpl._createIterable( > CalciteMetaImpl.java:553) > > at > > org.apache.calcite.jdbc.CalciteMetaImpl.createIterable( > CalciteMetaImpl.java:544) > > at > > org.apache.calcite.avatica.AvaticaResultSet.execute( > AvaticaResultSet.java:187) > > at > > org.apache.calcite.jdbc.CalciteResultSet.execute( > CalciteResultSet.java:65) > > at > > org.apache.calcite.jdbc.CalciteResultSet.execute( > CalciteResultSet.java:44) > > at > > org.apache.calcite.avatica.AvaticaConnection$1.execute( > AvaticaConnection.java:605) > > at > > org.apache.calcite.jdbc.CalciteMetaImpl.prepareAndExecute( > CalciteMetaImpl.java:599) > > at > > org.apache.calcite.avatica.AvaticaConnection.prepareAndExecuteInternal( > AvaticaConnection.java:613) > > at > > org.apache.calcite.avatica.AvaticaStatement.executeInternal( > AvaticaStatement.java:139) > > at > > org.apache.calcite.avatica.AvaticaStatement.executeQuery( > AvaticaStatement.java:208) > > at stream_test.CsvTest.checkSql(CsvTest.java:122) > > at stream_test.CsvTest.checkSql(CsvTest.java:76) > > at stream_test.TestQuery.main(TestQuery.java:13) > > > > Is there anything else I have to import or have I done something wrong? > > > > 2016-09-05 1:11 GMT+03:00 Julian Hyde <[email protected]>: > > > >> It might be case-sensitivity. Try double-quoting the column names in > your > >> query. > >> > >> Julian > >> > >>> On Sep 4, 2016, at 09:43, Γιώργος Θεοδωράκης <[email protected]> > >> wrote: > >>> > >>> I have correctly used sqlline to run queries on a streaming table, but > >> now > >>> I face problems trying to implement it programmatically with java. I > have > >>> made an attempt, but haven't got it running yet ( > >>> http://stackoverflow.com/questions/39318653/create-a- > >> streaming-example-with-calcite-using-csv > >>> ). > >>> Can somebody help me by giving a template or finding what's wrong with > my > >>> code? > >>> > >>> Thank you in advance, > >>> George > >>> > >>> 2016-09-03 18:14 GMT+03:00 Γιώργος Θεοδωράκης <[email protected] > >: > >>> > >>>> When I tried a query like SELECT STREAM ss.depts.deptno FROM ss.depts > >>>> WHERE ss.depts.deptno < 30; it gave me a correct answer on the > >> SDEPTS.cvs > >>>> in sales folder with both my json and model-stream-table.json. I only > >> had > >>>> to declare better where to find the tables and the columns, because > with > >>>> only the name it wouldn't run. I still haven't fixed my sOrders.csv > yet, > >>>> but I suppose it has to do with how I have created. > >>>> > >>>> 2016-09-03 15:39 GMT+03:00 Γιώργος Θεοδωράκης < > [email protected] > >>> : > >>>> > >>>>> I am trying to create a simple streaming query ( like SELECT STREAM * > >>>>> FROM ORDERS WHERE units > 10). I have created a stream using a socket > >> that > >>>>> saves the orders in an sOrders.csv file and I have changed the > >>>>> model-stream-table.json like this: > >>>>> { > >>>>> version: '1.0', > >>>>> defaultSchema: 'CUSTOM_TABLE', > >>>>> schemas: [ > >>>>> { > >>>>> name: 'CUSTOM_TABLE', > >>>>> tables: [ > >>>>> { > >>>>> name: 'ORDERS', > >>>>> type: 'custom', > >>>>> factory: 'org.apache.calcite.adapter.cs > >>>>> v.CsvStreamTableFactory', > >>>>> stream: { > >>>>> stream: true > >>>>> }, > >>>>> operand: { > >>>>> file: '/home/hduser/Desktop/sOrders.csv', > >>>>> flavor: "scannable" > >>>>> } > >>>>> } > >>>>> ] > >>>>> } > >>>>> > >>>>> , because when I had defaultSchema: 'STREAM' it showed: Error while > >>>>> executing SQL "SELECT STREAM * FROM orders": From line 1, column 22 > to > >> line > >>>>> 1, column 27: Table 'ORDERS' not found (state=,code=0). > >>>>> > >>>>> Everything is good, until I try to project or filter a column when it > >>>>> shows: Error while executing SQL "SELECT STREAM productId FROM > orders": > >>>>> From line 1, column 15 to line 1, column 23: Column 'PRODUCTID' not > >> found > >>>>> in any table (state=,code=0). When I type !columns I get: > CUSTOM_TABLE > >> | > >>>>> ORDERS | productId | 4 | JavaType(class... > >>>>> > >>>>> To solve my problem, should I write from the > >>>>> start CsvStreamFilterableTable.java etc. or are these operations > >> already > >>>>> implemented? > >>>>> > >>>>> Thank you in advance, > >>>>> George > >>>> > >> > >
