Scenario: 
64-bit ODBC driver cannot read data created from the Java Thin driver. 

Ignite 2.6. 
Running a single node server on Centos to test this. 

First:
Using Intellij to remotely run the sample code from the Ignite Getting
started page here on SQL: 
First Ignite SQL Application 
https://apacheignite.readme.io/docs/getting-started

This all works fine.  Tables created, data inserted, data read.  All as
expected. 

Next:
Using the ODBC 64-bit driver from Windows 10 to connect to the still running
Ignite server to read the same tables (City, Person).   This does not work.

The ODBC driver appears to be able to get meta data - it gets the table
names from the PUBLIC schema and it understands the fields / field counts in
each table.  However, the ODBC driver is unable to perform any select
operations on the tables. See the following stack trace as an example of the
errors I am seeing: 


[13:30:19]   ^-- default [initSize=256.0 MiB, maxSize=6.3 GiB,
persistenceEnabled=false] 
[13:33:09,424][SEVERE][client-connector-#45][OdbcRequestHandler] Failed to
execute SQL query [reqId=0, req=OdbcQueryExecuteRequest [schema=PUBLIC,
sqlQry=SELECT COUNT(*) FROM ""PUBLIC"".CITY, timeout=0, args=[]]] 
class org.apache.ignite.internal.processors.query.IgniteSQLException: Failed
to parse query. Table  not found; SQL statement: 
SELECT COUNT(*) FROM ""PUBLIC"".CITY [42102-195] 
        at
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.prepareStatementAndCaches(IgniteH2Indexing.java:2026)
 
        at
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.parseAndSplit(IgniteH2Indexing.java:1796)
 
        at
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.querySqlFields(IgniteH2Indexing.java:1652)
 

----------------------- 

I have tried various things on the Java side to make the Public schema
explicit, such as this: 
conn = DriverManager.getConnection("jdbc:ignite:thin://10.60.1.101/PUBLIC"); 
// conn.setSchema("PUBLIC"); 

but this does not help with the ODBC problem.  The Java stuff still works
fine.  Select statements in Java can be written like this and they still
work:

 stmt.executeQuery("SELECT p.name, c.name " +
                                 " FROM PUBLIC.Person p, City c " +
                                 " WHERE p.city_id = c.id"))


Any advice on how this should be done (sample code?) is much appreciated. 
Thank you. 



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/

Reply via email to