That still sounds like a version mismatch. Note that avatica releases are separate from calcite these days. Therefore calcite-core-1.9.0-SNAPSHOT, for instance, depends upon avatica-metrics-1.8.0.
I think you should use 1.9.0-SNAPSHOT versions of calcite- jars, and 1.8.0 versions of avatica- jars. Julian > On Sep 6, 2016, at 7:45 AM, Γιώργος Θεοδωράκης <giwrgosrth...@gmail.com> > wrote: > > 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 <jh...@apache.org>: > >> 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, Γιώργος Θεοδωράκης <giwrgosrth...@gmail.com> >> 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 <jhyde.apa...@gmail.com>: >>> >>>> It might be case-sensitivity. Try double-quoting the column names in >> your >>>> query. >>>> >>>> Julian >>>> >>>>> On Sep 4, 2016, at 09:43, Γιώργος Θεοδωράκης <giwrgosrth...@gmail.com> >>>> 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 Γιώργος Θεοδωράκης <giwrgosrth...@gmail.com >>> : >>>>> >>>>>> 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 Γιώργος Θεοδωράκης < >> giwrgosrth...@gmail.com >>>>> : >>>>>> >>>>>>> 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 >>>>>> >>>> >> >>