Implement CalciteConnection
Project: http://git-wip-us.apache.org/repos/asf/incubator-gearpump/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-gearpump/commit/c0c38e36 Tree: http://git-wip-us.apache.org/repos/asf/incubator-gearpump/tree/c0c38e36 Diff: http://git-wip-us.apache.org/repos/asf/incubator-gearpump/diff/c0c38e36 Branch: refs/heads/sql Commit: c0c38e3642452fa270b4490cd12836792154d3e7 Parents: feaf04b Author: Buddhi Ayesha <[email protected]> Authored: Thu Jun 8 18:31:42 2017 +0530 Committer: manuzhang <[email protected]> Committed: Sun Jul 9 07:52:47 2017 +0800 ---------------------------------------------------------------------- .../gearpump/experiments/sql/Connection.scala | 157 +++++++++++++++++++ 1 file changed, 157 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-gearpump/blob/c0c38e36/experiments/sql/src/main/scala/org/apache/gearpump/experiments/sql/Connection.scala ---------------------------------------------------------------------- diff --git a/experiments/sql/src/main/scala/org/apache/gearpump/experiments/sql/Connection.scala b/experiments/sql/src/main/scala/org/apache/gearpump/experiments/sql/Connection.scala new file mode 100644 index 0000000..0c4658c --- /dev/null +++ b/experiments/sql/src/main/scala/org/apache/gearpump/experiments/sql/Connection.scala @@ -0,0 +1,157 @@ +package org.apache.gearpump.experiments.sql + +import java.lang.reflect.Type +import java.sql.{Blob, CallableStatement, Clob, DatabaseMetaData, NClob, PreparedStatement, SQLException, SQLWarning, SQLXML, Savepoint, Statement, Struct} +import java.util.Properties +import java.{sql, util} +import java.util.concurrent.Executor + +import org.apache.calcite.adapter.java.JavaTypeFactory +import org.apache.calcite.config.CalciteConnectionConfig +import org.apache.calcite.jdbc.CalciteConnection +import org.apache.calcite.linq4j.{Enumerator, Queryable} +import org.apache.calcite.linq4j.tree.Expression +import org.apache.calcite.schema.SchemaPlus +import org.apache.log4j.Logger + +/** + * Created by Buddhi on 6/8/2017. + */ +class Connection extends CalciteConnection { + + import org.apache.calcite.schema.SchemaPlus + import org.apache.calcite.tools.Frameworks + + private val logger = Logger.getLogger(classOf[Nothing]) + private val rootSchema = Frameworks.createRootSchema(true) + private var schema = "" + + @throws[SQLException] + override def setSchema(s: String): Unit = { + schema = s + } + + override def getSchema: String = schema + + override def getTypeFactory: JavaTypeFactory = null + + override def getProperties: Properties = null + + override def getRootSchema: SchemaPlus = rootSchema + + override def config(): CalciteConnectionConfig = null + + override def commit(): Unit = null + + override def getHoldability: Int = 0 + + override def setCatalog(catalog: String): Unit = null + + override def setHoldability(holdability: Int): Unit = null + + override def prepareStatement(sql: String): PreparedStatement = null + + override def prepareStatement(sql: String, resultSetType: Int, resultSetConcurrency: Int): PreparedStatement = null + + override def prepareStatement(sql: String, resultSetType: Int, resultSetConcurrency: Int, resultSetHoldability: Int): PreparedStatement = null + + override def prepareStatement(sql: String, autoGeneratedKeys: Int): PreparedStatement = null + + override def prepareStatement(sql: String, columnIndexes: Array[Int]): PreparedStatement = null + + override def prepareStatement(sql: String, columnNames: Array[String]): PreparedStatement = null + + override def createClob(): Clob = null + + override def setClientInfo(name: String, value: String): Unit = null + + override def setClientInfo(properties: Properties): Unit = null + + override def createSQLXML(): SQLXML = null + + override def getCatalog: String = null + + override def createBlob(): Blob = null + + override def createStatement(): Statement = null + + override def createStatement(resultSetType: Int, resultSetConcurrency: Int): Statement = null + + override def createStatement(resultSetType: Int, resultSetConcurrency: Int, resultSetHoldability: Int): Statement = null + + override def abort(executor: Executor): Unit = null + + override def setAutoCommit(autoCommit: Boolean): Unit = null + + override def getMetaData: DatabaseMetaData = null + + override def setReadOnly(readOnly: Boolean): Unit = null + + override def prepareCall(sql: String): CallableStatement = null + + override def prepareCall(sql: String, resultSetType: Int, resultSetConcurrency: Int): CallableStatement = null + + override def prepareCall(sql: String, resultSetType: Int, resultSetConcurrency: Int, resultSetHoldability: Int): CallableStatement = null + + override def setTransactionIsolation(level: Int): Unit = null + + override def getWarnings: SQLWarning = null + + override def releaseSavepoint(savepoint: Savepoint): Unit = null + + override def nativeSQL(sql: String): String = null + + override def isReadOnly: Boolean = null + + override def createArrayOf(typeName: String, elements: Array[AnyRef]): sql.Array = null + + override def setSavepoint(): Savepoint = null + + override def setSavepoint(name: String): Savepoint = null + + override def close(): Unit = null + + override def createNClob(): NClob = null + + override def rollback(): Unit = null + + override def rollback(savepoint: Savepoint): Unit = null + + override def setNetworkTimeout(executor: Executor, milliseconds: Int): Unit = null + + override def setTypeMap(map: util.Map[String, Class[_]]): Unit = null + + override def isValid(timeout: Int): Boolean = null + + override def getAutoCommit: Boolean = null + + override def clearWarnings(): Unit = null + + override def getNetworkTimeout: Int = 0 + + override def isClosed: Boolean = null + + override def getTransactionIsolation: Int = 0 + + override def createStruct(typeName: String, attributes: Array[AnyRef]): Struct = null + + override def getClientInfo(name: String): String = null + + override def getClientInfo: Properties = null + + override def getTypeMap: util.Map[String, Class[_]] = null + + override def unwrap[T](iface: Class[T]): T = ??? + + override def isWrapperFor(iface: Class[_]): Boolean = null + + override def execute[T](expression: Expression, aClass: Class[T]): T = ??? + + override def execute[T](expression: Expression, `type`: Type): T = ??? + + override def executeQuery[T](queryable: Queryable[T]): Enumerator[T] = null + + override def createQuery[T](expression: Expression, aClass: Class[T]): Queryable[T] = null + + override def createQuery[T](expression: Expression, `type`: Type): Queryable[T] = null +}
