Re: Problem using MySQL with JDBC

2021-10-07 Thread Justin Swanhart
And I immediately hit another little roadblock: Transaction isolation level TRANSACTION_REPEATABLE_READ is not supported. Default (TRANSACTION_NONE) will be used instead. 0: jdbc:calcite:schemaType=JDBC> !tables

Re: Problem using MySQL with JDBC

2021-10-07 Thread Justin Swanhart
Hi, I had to really go down a rabbit hole here to figure out exactly what was wrong (see below) but I was able to resolve the problem by adding the following to core/build.gradle.kts: implementation(files("/home/justin/testing/calcite/mysql-connector-java.jar")) It seems that the environmental

Re: Problem using MySQL with JDBC

2021-10-06 Thread Justin Swanhart
[justin@localhost calcite]$ cat ../calcite.old/test.json { version: '1.0', defaultSchema: 'ssb', schemas: [ { name: 'ssb', type: 'custom', factory: 'org.apache.calcite.adapter.jdbc.JdbcSchema$Factory', operand: { jdbcUrl: 'jdbc:mysql://localhost/ssb',

Re: Problem using MySQL with JDBC

2021-10-06 Thread Justin Swanhart
Caused by: com.google.common.util.concurrent.UncheckedExecutionException: java.lang.RuntimeException: java.sql.SQLException: Cannot create JDBC driver of class '' for connect URL 'jdbc:mysql://localhost/ssb' On Wed, Oct 6, 2021 at 3:14 PM Julian Hyde wrote: > What happens if you remove the line

Re: Problem using MySQL with JDBC

2021-10-06 Thread Julian Hyde
What happens if you remove the line jdbcDriver: 'com.mysql.cj.jdbc.Driver’, from your Calcite model? Hopefully, it just works. Most drivers load automatically these days, and if you don’t specify the class name, Calcite won’t try to load it manually. > On Oct 6, 2021, at 12:07 PM,

Re: Problem using MySQL with JDBC

2021-10-06 Thread Justin Swanhart
Hi, So the example from MySQL is: [justin@localhost calcite.old]$ cat LoadDriver.java import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; // Notice, do not import com.mysql.jdbc.* // or you will have problems! public class LoadDriver { public static void

Re: Problem using MySQL with JDBC

2021-10-06 Thread Justin Swanhart
Hi, The class.forName doesn't work for me though (tried org.mysql.cj.jdbc.Driver and org.mysql.jdbc.Driver), but just using a "jdbc:mysql://" connection string does work. It makes sense that class.forName throws the same exception for me as Calcite, but I don't understand why just using a

Re: Problem using MySQL with JDBC

2021-10-06 Thread Julian Hyde
Does your environment use shading? Maybe Class.forName with a constant argument is handled by the shading, but Calcite is calling Class.forName with a dynamic argument. > On Oct 6, 2021, at 11:41 AM, Justin Swanhart wrote: > > Hi, > > The jar is in the classpath, and I can run the java

Re: Problem using MySQL with JDBC

2021-10-06 Thread Justin Swanhart
Hi, The jar is in the classpath, and I can run the java command that the sqlline script runs directly, and I get the same error. The following works in a test java program with the CLASSPATH set: conn = DriverManager.getConnection("jdbc:mysql://localhost/ssb?" +

Re: Problem using MySQL with JDBC

2021-10-06 Thread Julian Hyde
It looks as if com.mysql.cj.jdbc.Driver is not on your class path. If you are launching via SQLLine, you will need to edit the sqlline shell script to add a jar (or jars) to your class path. Julian > On Oct 6, 2021, at 10:43 AM, Justin Swanhart wrote: > > I am probably making some obvious

Problem using MySQL with JDBC

2021-10-06 Thread Justin Swanhart
I am probably making some obvious mistake, but I am having a problem getting a simple MySQL JDBC connection working. I have the latest version of the Connector/J MySQL java client driver. I have a MySQL 8 server running on the local machine, and the following model JSON: { version: '1.0',