You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by li...@apache.org on 2016/02/11 13:49:54 UTC
[15/51] [partial] kylin git commit: KYLIN-1416 keep only website in
document branch
http://git-wip-us.apache.org/repos/asf/kylin/blob/6b6aa313/jdbc/pom.xml
----------------------------------------------------------------------
diff --git a/jdbc/pom.xml b/jdbc/pom.xml
deleted file mode 100644
index 6a1f836..0000000
--- a/jdbc/pom.xml
+++ /dev/null
@@ -1,97 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <artifactId>kylin-jdbc</artifactId>
- <packaging>jar</packaging>
- <name>Kylin:JDBC</name>
- <description>Kylin JDBC Driver on Calcite Avatica</description>
-
- <parent>
- <groupId>org.apache.kylin</groupId>
- <artifactId>kylin</artifactId>
- <version>1.3-SNAPSHOT</version>
- </parent>
-
- <properties>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- </properties>
-
- <dependencies>
- <dependency>
- <groupId>org.apache.calcite</groupId>
- <artifactId>calcite-core</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.calcite</groupId>
- <artifactId>calcite-avatica</artifactId>
- </dependency>
- <dependency>
- <groupId>commons-httpclient</groupId>
- <artifactId>commons-httpclient</artifactId>
- </dependency>
- <dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>jcl-over-slf4j</artifactId>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <scope>test</scope>
- </dependency>
-
- </dependencies>
-
- <build>
- <plugins>
- <plugin>
- <artifactId>maven-assembly-plugin</artifactId>
- <configuration>
- <descriptorRefs>
- <descriptorRef>jar-with-dependencies</descriptorRef>
- </descriptorRefs>
- <appendAssemblyId>false</appendAssemblyId>
- </configuration>
- <executions>
- <execution>
- <id>make-assembly</id>
- <phase>package</phase>
- <goals>
- <goal>single</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
-
-</project>
http://git-wip-us.apache.org/repos/asf/kylin/blob/6b6aa313/jdbc/src/main/java/org/apache/kylin/jdbc/Driver.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/kylin/jdbc/Driver.java b/jdbc/src/main/java/org/apache/kylin/jdbc/Driver.java
deleted file mode 100644
index a0074b1..0000000
--- a/jdbc/src/main/java/org/apache/kylin/jdbc/Driver.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.kylin.jdbc;
-
-import java.sql.DriverManager;
-import java.sql.SQLException;
-
-import org.apache.calcite.avatica.AvaticaConnection;
-import org.apache.calcite.avatica.DriverVersion;
-import org.apache.calcite.avatica.Meta;
-import org.apache.calcite.avatica.UnregisteredDriver;
-import org.apache.kylin.jdbc.util.Log4jConfigurer;
-
-/**
- * <p>
- * Kylin JDBC Driver based on Calcite Avatica and Kylin restful API.<br>
- * Supported versions:
- * </p>
- * <ul>
- * <li>jdbc 4.0</li>
- * <li>jdbc 4.1</li>
- * </ul>
- *
- * <p>
- * Supported Statements:
- * </p>
- * <ul>
- * <li>{@link KylinStatementImpl}</li>
- * <li>{@link KylinPrepareStatementImpl}</li>
- * </ul>
- *
- * <p>
- * Supported properties:
- * <ul>
- * <li>user: username</li>
- * <li>password: password</li>
- * <li>ssl: true/false</li>
- * </ul>
- * </p>
- *
- * <p>
- * Driver init code sample:<br>
- *
- * <pre>
- * Driver driver = (Driver) Class.forName("org.apache.kylin.kylin.jdbc.Driver").newInstance();
- * Properties info = new Properties();
- * info.put("user", "user");
- * info.put("password", "password");
- * info.put("ssl", true);
- * Connection conn = driver.connect("jdbc:kylin://{domain}/{project}", info);
- * </pre>
- *
- * </p>
- */
-public class Driver extends UnregisteredDriver {
-
- public static final String CONNECT_STRING_PREFIX = "jdbc:kylin:";
- static {
- try {
- Log4jConfigurer.initLogger();
- DriverManager.registerDriver(new Driver());
- } catch (SQLException e) {
- throw new RuntimeException("Error occurred while registering JDBC driver " + Driver.class.getName() + ": " + e.toString());
- }
- }
-
- @Override
- protected String getConnectStringPrefix() {
- return CONNECT_STRING_PREFIX;
- }
-
- @Override
- protected DriverVersion createDriverVersion() {
- return DriverVersion.load(Driver.class, "kylin-jdbc.properties", "Kylin JDBC Driver", "unknown version", "Kylin", "unknown version");
- }
-
- @Override
- protected String getFactoryClassName(JdbcVersion jdbcVersion) {
- switch (jdbcVersion) {
- case JDBC_30:
- throw new UnsupportedOperationException();
- case JDBC_40:
- return KylinJdbcFactory.Version40.class.getName();
- case JDBC_41:
- default:
- return KylinJdbcFactory.Version41.class.getName();
- }
- }
-
- @Override
- public Meta createMeta(AvaticaConnection connection) {
- return new KylinMeta((KylinConnection) connection);
- }
-
- // @Override
- // protected Handler createHandler() {
- // return new HandlerImpl() {
- // @Override
- // public void onConnectionInit(AvaticaConnection connection) throws SQLException {
- // KylinConnection conn = (KylinConnection) connection;
- // RemoteClient runner = ((KylinJdbcFactory) factory).newRemoteClient(conn);
- // try {
- // runner.connect();
- // conn.setMetaProject(runner.getMetadata(conn.getProject()));
- // logger.debug("Connection inited.");
- // } catch (ConnectionException e) {
- // logger.error(e.getLocalizedMessage(), e);
- // throw new SQLException(e.getLocalizedMessage());
- // }
- // }
- //
- // public void onConnectionClose(AvaticaConnection connection) {
- // logger.debug("Connection closed.");
- // }
- //
- // public void onStatementExecute(AvaticaStatement statement, ResultSink resultSink) {
- // logger.debug("statement executed.");
- // }
- //
- // public void onStatementClose(AvaticaStatement statement) {
- // logger.debug("statement closed.");
- // }
- // };
- // }
-
-}
http://git-wip-us.apache.org/repos/asf/kylin/blob/6b6aa313/jdbc/src/main/java/org/apache/kylin/jdbc/IRemoteClient.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/kylin/jdbc/IRemoteClient.java b/jdbc/src/main/java/org/apache/kylin/jdbc/IRemoteClient.java
deleted file mode 100644
index 5232375..0000000
--- a/jdbc/src/main/java/org/apache/kylin/jdbc/IRemoteClient.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.kylin.jdbc;
-
-import java.io.Closeable;
-import java.io.IOException;
-import java.util.List;
-
-import org.apache.calcite.avatica.AvaticaParameter;
-import org.apache.calcite.avatica.ColumnMetaData;
-import org.apache.kylin.jdbc.KylinMeta.KMetaProject;
-
-public interface IRemoteClient extends Closeable {
-
- public static class QueryResult {
- public final List<ColumnMetaData> columnMeta;
- public final Iterable<Object> iterable;
-
- public QueryResult(List<ColumnMetaData> columnMeta, Iterable<Object> iterable) {
- this.columnMeta = columnMeta;
- this.iterable = iterable;
- }
- }
-
- /**
- * Connect to Kylin restful service. IOException will be thrown if authentication failed.
- */
- public void connect() throws IOException;
-
- /**
- * Retrieve meta data of given project.
- */
- public KMetaProject retrieveMetaData(String project) throws IOException;
-
- /**
- * Execute query remotely and get back result.
- */
- public QueryResult executeQuery(String sql, List<AvaticaParameter> params, List<Object> paramValues) throws IOException;
-
-}
http://git-wip-us.apache.org/repos/asf/kylin/blob/6b6aa313/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java
deleted file mode 100644
index f22a515..0000000
--- a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java
+++ /dev/null
@@ -1,390 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.kylin.jdbc;
-
-import java.io.IOException;
-import java.math.BigDecimal;
-import java.sql.Date;
-import java.sql.Time;
-import java.sql.Timestamp;
-import java.sql.Types;
-import java.util.ArrayList;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-
-import javax.xml.bind.DatatypeConverter;
-
-import org.apache.calcite.avatica.AvaticaParameter;
-import org.apache.calcite.avatica.ColumnMetaData;
-import org.apache.calcite.avatica.ColumnMetaData.Rep;
-import org.apache.calcite.avatica.ColumnMetaData.ScalarType;
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.HttpMethodBase;
-import org.apache.commons.httpclient.methods.GetMethod;
-import org.apache.commons.httpclient.methods.PostMethod;
-import org.apache.commons.httpclient.methods.StringRequestEntity;
-import org.apache.commons.httpclient.protocol.Protocol;
-import org.apache.commons.httpclient.protocol.ProtocolSocketFactory;
-import org.apache.kylin.jdbc.KylinMeta.KMetaCatalog;
-import org.apache.kylin.jdbc.KylinMeta.KMetaColumn;
-import org.apache.kylin.jdbc.KylinMeta.KMetaProject;
-import org.apache.kylin.jdbc.KylinMeta.KMetaSchema;
-import org.apache.kylin.jdbc.KylinMeta.KMetaTable;
-import org.apache.kylin.jdbc.json.PreparedQueryRequest;
-import org.apache.kylin.jdbc.json.QueryRequest;
-import org.apache.kylin.jdbc.json.SQLResponseStub;
-import org.apache.kylin.jdbc.json.StatementParameter;
-import org.apache.kylin.jdbc.json.TableMetaStub;
-import org.apache.kylin.jdbc.json.TableMetaStub.ColumnMetaStub;
-import org.apache.kylin.jdbc.util.DefaultSslProtocolSocketFactory;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.fasterxml.jackson.core.type.TypeReference;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-public class KylinClient implements IRemoteClient {
-
- private static final Logger logger = LoggerFactory.getLogger(KylinClient.class);
-
- private final KylinConnection conn;
- private final Properties connProps;
- private final HttpClient httpClient;
- private final ObjectMapper jsonMapper;
-
- public KylinClient(KylinConnection conn) {
- this.conn = conn;
- this.connProps = conn.getConnectionProperties();
- this.httpClient = new HttpClient();
- this.jsonMapper = new ObjectMapper();
-
- // trust all certificates
- if (isSSL()) {
- Protocol.registerProtocol("https", new Protocol("https", (ProtocolSocketFactory) new DefaultSslProtocolSocketFactory(), 443));
- }
- }
-
- @SuppressWarnings("rawtypes")
- public static Class convertType(int sqlType) {
- Class result = Object.class;
-
- switch (sqlType) {
- case Types.CHAR:
- case Types.VARCHAR:
- case Types.LONGVARCHAR:
- result = String.class;
- break;
- case Types.NUMERIC:
- case Types.DECIMAL:
- result = BigDecimal.class;
- break;
- case Types.BIT:
- result = Boolean.class;
- break;
- case Types.TINYINT:
- result = Byte.class;
- break;
- case Types.SMALLINT:
- result = Short.class;
- break;
- case Types.INTEGER:
- result = Integer.class;
- break;
- case Types.BIGINT:
- result = Long.class;
- break;
- case Types.REAL:
- case Types.FLOAT:
- case Types.DOUBLE:
- result = Double.class;
- break;
- case Types.BINARY:
- case Types.VARBINARY:
- case Types.LONGVARBINARY:
- result = Byte[].class;
- break;
- case Types.DATE:
- result = Date.class;
- break;
- case Types.TIME:
- result = Time.class;
- break;
- case Types.TIMESTAMP:
- result = Timestamp.class;
- break;
- }
-
- return result;
- }
-
- public static Object wrapObject(String value, int sqlType) {
- if (null == value) {
- return null;
- }
-
- switch (sqlType) {
- case Types.CHAR:
- case Types.VARCHAR:
- case Types.LONGVARCHAR:
- return value;
- case Types.NUMERIC:
- case Types.DECIMAL:
- return new BigDecimal(value);
- case Types.BIT:
- return Boolean.parseBoolean(value);
- case Types.TINYINT:
- return Byte.valueOf(value);
- case Types.SMALLINT:
- return Short.valueOf(value);
- case Types.INTEGER:
- return Integer.parseInt(value);
- case Types.BIGINT:
- return Long.parseLong(value);
- case Types.FLOAT:
- return Float.parseFloat(value);
- case Types.REAL:
- case Types.DOUBLE:
- return Double.parseDouble(value);
- case Types.BINARY:
- case Types.VARBINARY:
- case Types.LONGVARBINARY:
- return value.getBytes();
- case Types.DATE:
- return Date.valueOf(value);
- case Types.TIME:
- return Time.valueOf(value);
- case Types.TIMESTAMP:
- return Timestamp.valueOf(value);
- }
-
- return value;
- }
-
- private boolean isSSL() {
- return Boolean.parseBoolean(connProps.getProperty("ssl", "false"));
- }
-
- private String baseUrl() {
- return (isSSL() ? "https://" : "http://") + conn.getBaseUrl();
- }
-
- private void addHttpHeaders(HttpMethodBase method) {
- method.addRequestHeader("Accept", "application/json, text/plain, */*");
- method.addRequestHeader("Content-Type", "application/json");
-
- String username = connProps.getProperty("user");
- String password = connProps.getProperty("password");
- String basicAuth = DatatypeConverter.printBase64Binary((username + ":" + password).getBytes());
- method.addRequestHeader("Authorization", "Basic " + basicAuth);
- }
-
- @Override
- public void connect() throws IOException {
- PostMethod post = new PostMethod(baseUrl() + "/kylin/api/user/authentication");
- addHttpHeaders(post);
- StringRequestEntity requestEntity = new StringRequestEntity("{}", "application/json", "UTF-8");
- post.setRequestEntity(requestEntity);
-
- httpClient.executeMethod(post);
-
- if (post.getStatusCode() != 200 && post.getStatusCode() != 201) {
- throw asIOException(post);
- }
- }
-
- @Override
- public KMetaProject retrieveMetaData(String project) throws IOException {
- assert conn.getProject().equals(project);
-
- String url = baseUrl() + "/kylin/api/tables_and_columns?project=" + project;
- GetMethod get = new GetMethod(url);
- addHttpHeaders(get);
-
- httpClient.executeMethod(get);
-
- if (get.getStatusCode() != 200 && get.getStatusCode() != 201) {
- throw asIOException(get);
- }
-
- List<TableMetaStub> tableMetaStubs = jsonMapper.readValue(get.getResponseBodyAsStream(), new TypeReference<List<TableMetaStub>>() {
- });
-
- List<KMetaTable> tables = convertMetaTables(tableMetaStubs);
- List<KMetaSchema> schemas = convertMetaSchemas(tables);
- List<KMetaCatalog> catalogs = convertMetaCatalogs(schemas);
- return new KMetaProject(project, catalogs);
- }
-
- private List<KMetaCatalog> convertMetaCatalogs(List<KMetaSchema> schemas) {
- Map<String, List<KMetaSchema>> catalogMap = new LinkedHashMap<String, List<KMetaSchema>>();
- for (KMetaSchema schema : schemas) {
- List<KMetaSchema> list = catalogMap.get(schema.tableCatalog);
- if (list == null) {
- list = new ArrayList<KMetaSchema>();
- catalogMap.put(schema.tableCatalog, list);
- }
- list.add(schema);
- }
-
- List<KMetaCatalog> result = new ArrayList<KMetaCatalog>();
- for (List<KMetaSchema> catSchemas : catalogMap.values()) {
- String catalog = catSchemas.get(0).tableCatalog;
- result.add(new KMetaCatalog(catalog, catSchemas));
- }
- return result;
- }
-
- private List<KMetaSchema> convertMetaSchemas(List<KMetaTable> tables) {
- Map<String, List<KMetaTable>> schemaMap = new LinkedHashMap<String, List<KMetaTable>>();
- for (KMetaTable table : tables) {
- String key = table.tableCat + "!!" + table.tableSchem;
- List<KMetaTable> list = schemaMap.get(key);
- if (list == null) {
- list = new ArrayList<KMetaTable>();
- schemaMap.put(key, list);
- }
- list.add(table);
- }
-
- List<KMetaSchema> result = new ArrayList<KMetaSchema>();
- for (List<KMetaTable> schemaTables : schemaMap.values()) {
- String catalog = schemaTables.get(0).tableCat;
- String schema = schemaTables.get(0).tableSchem;
- result.add(new KMetaSchema(catalog, schema, schemaTables));
- }
- return result;
- }
-
- private List<KMetaTable> convertMetaTables(List<TableMetaStub> tableMetaStubs) {
- List<KMetaTable> result = new ArrayList<KMetaTable>(tableMetaStubs.size());
- for (TableMetaStub tableStub : tableMetaStubs) {
- result.add(convertMetaTable(tableStub));
- }
- return result;
- }
-
- private KMetaTable convertMetaTable(TableMetaStub tableStub) {
- List<KMetaColumn> columns = new ArrayList<KMetaColumn>(tableStub.getColumns().size());
- for (ColumnMetaStub columnStub : tableStub.getColumns()) {
- columns.add(convertMetaColumn(columnStub));
- }
- return new KMetaTable(tableStub.getTABLE_CAT(), tableStub.getTABLE_SCHEM(), tableStub.getTABLE_NAME(), tableStub.getTABLE_TYPE(), columns);
- }
-
- private KMetaColumn convertMetaColumn(ColumnMetaStub columnStub) {
- return new KMetaColumn(columnStub.getTABLE_CAT(), columnStub.getTABLE_SCHEM(), columnStub.getTABLE_NAME(), columnStub.getCOLUMN_NAME(), columnStub.getDATA_TYPE(), columnStub.getTYPE_NAME(), columnStub.getCOLUMN_SIZE(), columnStub.getDECIMAL_DIGITS(), columnStub.getNUM_PREC_RADIX(), columnStub.getNULLABLE(), columnStub.getCHAR_OCTET_LENGTH(), columnStub.getORDINAL_POSITION(), columnStub.getIS_NULLABLE());
- }
-
- @Override
- public QueryResult executeQuery(String sql, List<AvaticaParameter> params, List<Object> paramValues) throws IOException {
-
- SQLResponseStub queryResp = executeKylinQuery(sql, convertParameters(params, paramValues));
- if (queryResp.getIsException())
- throw new IOException(queryResp.getExceptionMessage());
-
- List<ColumnMetaData> metas = convertColumnMeta(queryResp);
- List<Object> data = convertResultData(queryResp, metas);
-
- return new QueryResult(metas, data);
- }
-
- private List<StatementParameter> convertParameters(List<AvaticaParameter> params, List<Object> paramValues) {
- if (params == null || params.isEmpty())
- return null;
-
- assert params.size() == paramValues.size();
-
- List<StatementParameter> result = new ArrayList<StatementParameter>();
- for (Object v : paramValues) {
- result.add(new StatementParameter(v.getClass().getCanonicalName(), String.valueOf(v)));
- }
- return result;
- }
-
- private SQLResponseStub executeKylinQuery(String sql, List<StatementParameter> params) throws IOException {
- String url = baseUrl() + "/kylin/api/query";
- String project = conn.getProject();
-
- QueryRequest request = null;
- if (null != params) {
- request = new PreparedQueryRequest();
- ((PreparedQueryRequest) request).setParams(params);
- url += "/prestate"; // means prepared statement..
- } else {
- request = new QueryRequest();
- }
- request.setSql(sql);
- request.setProject(project);
-
- PostMethod post = new PostMethod(url);
- addHttpHeaders(post);
-
- String postBody = jsonMapper.writeValueAsString(request);
- logger.debug("Post body:\n " + postBody);
- StringRequestEntity requestEntity = new StringRequestEntity(postBody, "application/json", "UTF-8");
- post.setRequestEntity(requestEntity);
-
- httpClient.executeMethod(post);
-
- if (post.getStatusCode() != 200 && post.getStatusCode() != 201) {
- throw asIOException(post);
- }
-
- return jsonMapper.readValue(post.getResponseBodyAsStream(), SQLResponseStub.class);
- }
-
- private List<ColumnMetaData> convertColumnMeta(SQLResponseStub queryResp) {
- List<ColumnMetaData> metas = new ArrayList<ColumnMetaData>();
- for (int i = 0; i < queryResp.getColumnMetas().size(); i++) {
- SQLResponseStub.ColumnMetaStub scm = queryResp.getColumnMetas().get(i);
- ScalarType type = ColumnMetaData.scalar(scm.getColumnType(), scm.getColumnTypeName(), Rep.of(convertType(scm.getColumnType())));
-
- ColumnMetaData meta = new ColumnMetaData(i, scm.isAutoIncrement(), scm.isCaseSensitive(), scm.isSearchable(), scm.isCurrency(), scm.getIsNullable(), scm.isSigned(), scm.getDisplaySize(), scm.getLabel(), scm.getName(), scm.getSchemaName(), scm.getPrecision(), scm.getScale(), scm.getTableName(), scm.getSchemaName(), type, scm.isReadOnly(), scm.isWritable(), scm.isWritable(), null);
-
- metas.add(meta);
- }
-
- return metas;
- }
-
- private List<Object> convertResultData(SQLResponseStub queryResp, List<ColumnMetaData> metas) {
- List<String[]> stringResults = queryResp.getResults();
- List<Object> data = new ArrayList<Object>(stringResults.size());
- for (String[] result : stringResults) {
- Object[] row = new Object[result.length];
-
- for (int i = 0; i < result.length; i++) {
- ColumnMetaData meta = metas.get(i);
- row[i] = wrapObject(result[i], meta.type.id);
- }
-
- data.add(row);
- }
- return (List<Object>) data;
- }
-
- private IOException asIOException(HttpMethodBase method) throws IOException {
- return new IOException(method + " failed, error code " + method.getStatusCode() + " and response: " + method.getResponseBodyAsString());
- }
-
- @Override
- public void close() throws IOException {
- }
-}
http://git-wip-us.apache.org/repos/asf/kylin/blob/6b6aa313/jdbc/src/main/java/org/apache/kylin/jdbc/KylinConnection.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinConnection.java b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinConnection.java
deleted file mode 100644
index 3ae5d29..0000000
--- a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinConnection.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.kylin.jdbc;
-
-import java.io.IOException;
-import java.sql.PreparedStatement;
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-
-import org.apache.calcite.avatica.AvaticaConnection;
-import org.apache.calcite.avatica.AvaticaParameter;
-import org.apache.calcite.avatica.AvaticaStatement;
-import org.apache.calcite.avatica.ColumnMetaData;
-import org.apache.calcite.avatica.ConnectionPropertiesImpl;
-import org.apache.calcite.avatica.Meta;
-import org.apache.calcite.avatica.Meta.CursorFactory;
-import org.apache.calcite.avatica.Meta.Signature;
-import org.apache.calcite.avatica.UnregisteredDriver;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class KylinConnection extends AvaticaConnection {
-
- private static final Logger logger = LoggerFactory.getLogger(KylinConnection.class);
-
- private final String baseUrl;
- private final String project;
- private final IRemoteClient remoteClient;
-
- protected KylinConnection(UnregisteredDriver driver, KylinJdbcFactory factory, String url, Properties info) throws SQLException {
- super(driver, factory, url, info);
-
- String odbcUrl = url;
- odbcUrl = odbcUrl.replace(Driver.CONNECT_STRING_PREFIX + "//", "");
- String[] temps = odbcUrl.split("/");
-
- assert temps.length == 2;
-
- this.baseUrl = temps[0];
- this.project = temps[1];
-
- logger.debug("Kylin base url " + this.baseUrl + ", project name " + this.project);
-
- this.remoteClient = factory.newRemoteClient(this);
-
- try {
- this.remoteClient.connect();
- } catch (IOException e) {
- throw new SQLException(e);
- }
- }
-
- String getBaseUrl() {
- return baseUrl;
- }
-
- String getProject() {
- return project;
- }
-
- Properties getConnectionProperties() {
- return info;
- }
-
- public boolean getAutoCommit() throws SQLException {
- if (meta.connectionSync(handle, new ConnectionPropertiesImpl()).isAutoCommit() == null)
- setAutoCommit(true);
- return super.getAutoCommit();
- }
-
- public boolean isReadOnly() throws SQLException {
- if (meta.connectionSync(handle, new ConnectionPropertiesImpl()).isReadOnly() == null)
- setReadOnly(true);
- return super.isReadOnly();
- }
-
- @Override
- public AvaticaStatement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException {
- return super.createStatement(resultSetType, resultSetConcurrency, resultSetHoldability);
- }
-
- @Override
- public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException {
- Meta.Signature sig = mockPreparedSignature(sql);
- return factory().newPreparedStatement(this, null, sig, resultSetType, resultSetConcurrency, resultSetHoldability);
- }
-
- // TODO add restful API to prepare SQL, get back expected ResultSetMetaData
- Signature mockPreparedSignature(String sql) {
- List<AvaticaParameter> params = new ArrayList<AvaticaParameter>();
- int startIndex = 0;
- while (sql.indexOf("?", startIndex) >= 0) {
- AvaticaParameter param = new AvaticaParameter(false, 0, 0, 0, null, null, null);
- params.add(param);
- startIndex = sql.indexOf("?", startIndex) + 1;
- }
-
- ArrayList<ColumnMetaData> columns = new ArrayList<ColumnMetaData>();
- Map<String, Object> internalParams = Collections.<String, Object> emptyMap();
-
- return new Meta.Signature(columns, sql, params, internalParams, CursorFactory.ARRAY, Meta.StatementType.SELECT);
- }
-
- private KylinJdbcFactory factory() {
- return (KylinJdbcFactory) factory;
- }
-
- public IRemoteClient getRemoteClient() {
- return remoteClient;
- }
-
- @Override
- public void close() throws SQLException {
- super.close();
- try {
- remoteClient.close();
- } catch (IOException e) {
- throw new SQLException(e);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/kylin/blob/6b6aa313/jdbc/src/main/java/org/apache/kylin/jdbc/KylinJdbcFactory.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinJdbcFactory.java b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinJdbcFactory.java
deleted file mode 100644
index dbfe36d..0000000
--- a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinJdbcFactory.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.kylin.jdbc;
-
-import java.sql.ResultSetMetaData;
-import java.sql.SQLException;
-import java.util.Properties;
-import java.util.TimeZone;
-
-import org.apache.calcite.avatica.AvaticaConnection;
-import org.apache.calcite.avatica.AvaticaDatabaseMetaData;
-import org.apache.calcite.avatica.AvaticaFactory;
-import org.apache.calcite.avatica.AvaticaPreparedStatement;
-import org.apache.calcite.avatica.AvaticaResultSet;
-import org.apache.calcite.avatica.AvaticaResultSetMetaData;
-import org.apache.calcite.avatica.AvaticaStatement;
-import org.apache.calcite.avatica.QueryState;
-import org.apache.calcite.avatica.Meta.Frame;
-import org.apache.calcite.avatica.Meta.Signature;
-import org.apache.calcite.avatica.Meta.StatementHandle;
-import org.apache.calcite.avatica.UnregisteredDriver;
-
-/**
- * Kylin JDBC factory.
- */
-public class KylinJdbcFactory implements AvaticaFactory {
-
- public static class Version40 extends KylinJdbcFactory {
- public Version40() {
- super(4, 0);
- }
- }
-
- public static class Version41 extends KylinJdbcFactory {
- public Version41() {
- super(4, 1);
- }
- }
-
- final int major;
- final int minor;
-
- /** Creates a JDBC factory with given major/minor version number. */
- protected KylinJdbcFactory(int major, int minor) {
- this.major = major;
- this.minor = minor;
- }
-
- @Override
- public int getJdbcMajorVersion() {
- return major;
- }
-
- @Override
- public int getJdbcMinorVersion() {
- return minor;
- }
-
- @Override
- public AvaticaConnection newConnection(UnregisteredDriver driver, AvaticaFactory factory, String url, Properties info) throws SQLException {
- return new KylinConnection(driver, (KylinJdbcFactory) factory, url, info);
- }
-
- @Override
- public AvaticaDatabaseMetaData newDatabaseMetaData(AvaticaConnection connection) {
- return new AvaticaDatabaseMetaData(connection) {
- };
- }
-
- @Override
- public AvaticaStatement newStatement(AvaticaConnection connection, StatementHandle h, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException {
- return new KylinStatement((KylinConnection) connection, h, resultSetType, resultSetConcurrency, resultSetHoldability);
- }
-
- @Override
- public AvaticaPreparedStatement newPreparedStatement(AvaticaConnection connection, StatementHandle h, Signature signature, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException {
- return new KylinPreparedStatement((KylinConnection) connection, h, signature, resultSetType, resultSetConcurrency, resultSetHoldability);
- }
-
- @Override
- public AvaticaResultSet newResultSet(AvaticaStatement statement, QueryState state, Signature signature, TimeZone timeZone, Frame firstFrame) throws SQLException {
- AvaticaResultSetMetaData resultSetMetaData = new AvaticaResultSetMetaData(statement, null, signature);
- return new KylinResultSet(statement, state, signature, resultSetMetaData, timeZone, firstFrame);
- }
-
- @Override
- public ResultSetMetaData newResultSetMetaData(AvaticaStatement statement, Signature signature) throws SQLException {
- return new AvaticaResultSetMetaData(statement, null, signature);
- }
-
- public IRemoteClient newRemoteClient(KylinConnection conn) {
- return new KylinClient(conn);
- }
-}
http://git-wip-us.apache.org/repos/asf/kylin/blob/6b6aa313/jdbc/src/main/java/org/apache/kylin/jdbc/KylinMeta.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinMeta.java b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinMeta.java
deleted file mode 100644
index 6bfd356..0000000
--- a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinMeta.java
+++ /dev/null
@@ -1,393 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.kylin.jdbc;
-
-import java.io.IOException;
-import java.lang.reflect.Field;
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.regex.Pattern;
-
-import org.apache.calcite.avatica.AvaticaUtils;
-import org.apache.calcite.avatica.ColumnMetaData;
-import org.apache.calcite.avatica.MetaImpl;
-import org.apache.calcite.avatica.MissingResultsException;
-import org.apache.calcite.avatica.NoSuchStatementException;
-import org.apache.calcite.avatica.QueryState;
-import org.apache.calcite.avatica.remote.TypedValue;
-
-import com.google.common.collect.ImmutableList;
-
-/**
- * Implementation of Avatica interface
- */
-public class KylinMeta extends MetaImpl {
-
- private KMetaProject metaProject;
-
- public KylinMeta(KylinConnection connection) {
- super(connection);
- }
-
- private KylinConnection connection() {
- return (KylinConnection) connection;
- }
-
- // insert/update/delete go this path, ignorable for Kylin
- @Override
- public StatementHandle prepare(ConnectionHandle ch, String sql, long maxRowCount) {
- StatementHandle result = super.createStatement(ch);
- result.signature = connection().mockPreparedSignature(sql);
- return result;
- }
-
- // real execution happens in KylinResultSet.execute()
- @Override
- public ExecuteResult execute(StatementHandle sh, List<TypedValue> parameterValues, long maxRowCount) throws NoSuchStatementException {
- final MetaResultSet metaResultSet = MetaResultSet.create(sh.connectionId, sh.id, false, sh.signature, null);
- return new ExecuteResult(ImmutableList.of(metaResultSet));
- }
-
- // mimic from CalciteMetaImpl, real execution happens via callback in KylinResultSet.execute()
- @Override
- public ExecuteResult prepareAndExecute(StatementHandle sh, String sql, long maxRowCount, PrepareCallback callback) {
- try {
- synchronized (callback.getMonitor()) {
- callback.clear();
- sh.signature = connection().mockPreparedSignature(sql);
- callback.assign(sh.signature, null, -1);
- }
- callback.execute();
- final MetaResultSet metaResultSet = MetaResultSet.create(sh.connectionId, sh.id, false, sh.signature, null);
- return new ExecuteResult(ImmutableList.of(metaResultSet));
- } catch (SQLException e) {
- throw new RuntimeException(e);
- }
- }
-
- @Override
- public void closeStatement(StatementHandle h) {
- // nothing to do
- }
-
- private KMetaProject getMetaProject() {
- try {
- if (metaProject == null) {
- KylinConnection conn = connection();
- metaProject = conn.getRemoteClient().retrieveMetaData(conn.getProject());
- }
- return metaProject;
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
-
- @Override
- public MetaResultSet getTableTypes(ConnectionHandle ch) {
- return createResultSet(metaTableTypes, MetaTableType.class, "TABLE_TYPE");
- }
-
- @Override
- public MetaResultSet getCatalogs(ConnectionHandle ch) {
- List<KMetaCatalog> catalogs = getMetaProject().catalogs;
- return createResultSet(catalogs, KMetaCatalog.class, "TABLE_CAT");
- }
-
- @Override
- public MetaResultSet getSchemas(ConnectionHandle ch, String catalog, Pat schemaPattern) {
- List<KMetaSchema> schemas = getMetaProject().getSchemas(catalog, schemaPattern);
- return createResultSet(schemas, KMetaSchema.class, "TABLE_SCHEM", "TABLE_CATALOG");
- }
-
- @Override
- public MetaResultSet getTables(ConnectionHandle ch, String catalog, Pat schemaPattern, Pat tableNamePattern, List<String> typeList) {
- List<KMetaTable> tables = getMetaProject().getTables(catalog, schemaPattern, tableNamePattern, typeList);
- return createResultSet(tables, KMetaTable.class, //
- "TABLE_CAT", //
- "TABLE_SCHEM", //
- "TABLE_NAME", //
- "TABLE_TYPE", //
- "REMARKS", //
- "TYPE_CAT", //
- "TYPE_SCHEM", //
- "TYPE_NAME", //
- "SELF_REFERENCING_COL_NAME", //
- "REF_GENERATION");
- }
-
- @Override
- public MetaResultSet getColumns(ConnectionHandle ch, String catalog, Pat schemaPattern, Pat tableNamePattern, Pat columnNamePattern) {
- List<KMetaColumn> columns = getMetaProject().getColumns(catalog, schemaPattern, tableNamePattern, columnNamePattern);
- return createResultSet(columns, KMetaColumn.class, //
- "TABLE_CAT", //
- "TABLE_SCHEM", //
- "TABLE_NAME", //
- "COLUMN_NAME", //
- "DATA_TYPE", //
- "TYPE_NAME", //
- "COLUMN_SIZE", //
- "BUFFER_LENGTH", //
- "DECIMAL_DIGITS", //
- "NUM_PREC_RADIX", //
- "NULLABLE", //
- "REMARKS", //
- "COLUMN_DEF", //
- "SQL_DATA_TYPE", //
- "SQL_DATETIME_SUB", //
- "CHAR_OCTET_LENGTH", //
- "ORDINAL_POSITION", //
- "IS_NULLABLE", //
- "SCOPE_CATALOG", //
- "SCOPE_TABLE", //
- "SOURCE_DATA_TYPE", //
- "IS_AUTOINCREMENT", //
- "IS_GENERATEDCOLUMN");
- }
-
- @SuppressWarnings({ "rawtypes", "unchecked" })
- private MetaResultSet createResultSet(List iterable, Class clazz, String... names) {
- final List<ColumnMetaData> columns = new ArrayList<ColumnMetaData>();
- final List<Field> fields = new ArrayList<Field>();
- final List<String> fieldNames = new ArrayList<String>();
- for (String name : names) {
- final int index = fields.size();
- final String fieldName = AvaticaUtils.toCamelCase(name);
- final Field field;
- try {
- field = clazz.getField(fieldName);
- } catch (NoSuchFieldException e) {
- throw new RuntimeException(e);
- }
- columns.add(columnMetaData(name, index, field.getType()));
- fields.add(field);
- fieldNames.add(fieldName);
- }
-
- CursorFactory cursorFactory = CursorFactory.record(clazz, fields, fieldNames);
- Signature signature = new Signature(columns, "", null, Collections.<String, Object> emptyMap(), cursorFactory, StatementType.SELECT);
- StatementHandle sh = this.createStatement(connection().handle);
- Frame frame = new Frame(0, true, iterable);
-
- return MetaResultSet.create(connection().id, sh.id, true, signature, frame);
- }
-
- // ============================================================================
-
- public static interface NamedWithChildren extends Named {
- List<? extends NamedWithChildren> getChildren();
- }
-
- public static List<? extends NamedWithChildren> searchByPatterns(NamedWithChildren parent, Pat... patterns) {
- assert patterns != null && patterns.length > 0;
-
- List<? extends NamedWithChildren> children = findChildren(parent, patterns[0]);
- if (patterns.length == 1) {
- return children;
- } else {
- List<NamedWithChildren> result = new ArrayList<NamedWithChildren>();
- Pat[] subPatterns = Arrays.copyOfRange(patterns, 1, patterns.length);
- for (NamedWithChildren c : children) {
- result.addAll(searchByPatterns(c, subPatterns));
- }
- return result;
- }
- }
-
- private static List<? extends NamedWithChildren> findChildren(NamedWithChildren parent, Pat pattern) {
- if (null == pattern.s || pattern.s.equals("%")) {
- return parent.getChildren();
- }
-
- List<NamedWithChildren> result = new ArrayList<NamedWithChildren>();
- Pattern regex = likeToRegex(pattern);
-
- for (NamedWithChildren c : parent.getChildren()) {
- if (regex.matcher(c.getName()).matches()) {
- result.add(c);
- }
- }
- return result;
- }
-
- /**
- * Converts a LIKE-style pattern (where '%' represents a wild-card,
- * escaped using '\') to a Java regex.
- */
- private static Pattern likeToRegex(Pat pattern) {
- StringBuilder buf = new StringBuilder("^");
- char[] charArray = pattern.s.toCharArray();
- int slash = -2;
- for (int i = 0; i < charArray.length; i++) {
- char c = charArray[i];
- if (slash == i - 1) {
- buf.append('[').append(c).append(']');
- } else {
- switch (c) {
- case '\\':
- slash = i;
- break;
- case '%':
- buf.append(".*");
- break;
- case '[':
- buf.append("\\[");
- break;
- case ']':
- buf.append("\\]");
- break;
- default:
- buf.append('[').append(c).append(']');
- }
- }
- }
- buf.append("$");
-
- return Pattern.compile(buf.toString());
- }
-
- // ============================================================================
-
- private static final List<MetaTableType> metaTableTypes = new ArrayList<MetaTableType>();
- static {
- metaTableTypes.add(new MetaTableType("TABLE"));
- }
-
- public static class KMetaProject implements NamedWithChildren {
- public final String projectName;
- public final List<KMetaCatalog> catalogs;
-
- public KMetaProject(String projectName, List<KMetaCatalog> catalogs) {
- this.projectName = projectName;
- this.catalogs = catalogs;
- }
-
- @SuppressWarnings("unchecked")
- public List<KMetaSchema> getSchemas(String catalog, Pat schemaPattern) {
- return (List<KMetaSchema>) searchByPatterns(this, Pat.of(catalog), schemaPattern);
- }
-
- @SuppressWarnings("unchecked")
- public List<KMetaTable> getTables(String catalog, Pat schemaPattern, Pat tableNamePattern, List<String> typeList) {
- return (List<KMetaTable>) searchByPatterns(this, Pat.of(catalog), schemaPattern, tableNamePattern);
- }
-
- @SuppressWarnings("unchecked")
- public List<KMetaColumn> getColumns(String catalog, Pat schemaPattern, Pat tableNamePattern, Pat columnNamePattern) {
- return (List<KMetaColumn>) searchByPatterns(this, Pat.of(catalog), schemaPattern, tableNamePattern, columnNamePattern);
- }
-
- @Override
- public String getName() {
- return projectName;
- }
-
- @Override
- public List<? extends NamedWithChildren> getChildren() {
- return catalogs;
- }
- }
-
- public static class KMetaCatalog implements NamedWithChildren {
- public final String tableCat;
- public final List<KMetaSchema> schemas;
-
- public KMetaCatalog(String tableCatalog, List<KMetaSchema> schemas) {
- this.tableCat = tableCatalog;
- this.schemas = schemas;
- }
-
- @Override
- public String getName() {
- return tableCat;
- }
-
- @Override
- public List<? extends NamedWithChildren> getChildren() {
- return schemas;
- }
- }
-
- public static class KMetaSchema extends MetaSchema implements NamedWithChildren {
- public final List<KMetaTable> tables;
-
- public KMetaSchema(String tableCatalog, String tableSchem, List<KMetaTable> tables) {
- super(tableCatalog, tableSchem);
- this.tables = tables;
- }
-
- @Override
- public List<? extends NamedWithChildren> getChildren() {
- return tables;
- }
- }
-
- public static class KMetaTable extends MetaTable implements NamedWithChildren {
- public final List<KMetaColumn> columns;
-
- public KMetaTable(String tableCat, String tableSchem, String tableName, String tableType, List<KMetaColumn> columns) {
- super(tableCat, tableSchem, tableName, tableType);
- this.columns = columns;
- }
-
- @Override
- public List<? extends NamedWithChildren> getChildren() {
- return columns;
- }
- }
-
- public static class KMetaColumn extends MetaColumn implements NamedWithChildren {
-
- public KMetaColumn(String tableCat, String tableSchem, String tableName, String columnName, int dataType, String typeName, int columnSize, Integer decimalDigits, int numPrecRadix, int nullable, int charOctetLength, int ordinalPosition, String isNullable) {
- super(tableCat, tableSchem, tableName, columnName, dataType, typeName, columnSize, decimalDigits, numPrecRadix, nullable, charOctetLength, ordinalPosition, isNullable);
- }
-
- @Override
- public List<NamedWithChildren> getChildren() {
- return Collections.<NamedWithChildren> emptyList();
- }
- }
-
- @Override
- public Frame fetch(StatementHandle h, long offset, int fetchMaxRowCount) throws NoSuchStatementException, MissingResultsException {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public boolean syncResults(StatementHandle sh, QueryState state, long offset) throws NoSuchStatementException {
- // TODO Auto-generated method stub
- return false;
- }
-
- @Override
- public void commit(ConnectionHandle ch) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public void rollback(ConnectionHandle ch) {
- // TODO Auto-generated method stub
-
- }
-
-}
http://git-wip-us.apache.org/repos/asf/kylin/blob/6b6aa313/jdbc/src/main/java/org/apache/kylin/jdbc/KylinPreparedStatement.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinPreparedStatement.java b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinPreparedStatement.java
deleted file mode 100644
index 098c3c2..0000000
--- a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinPreparedStatement.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.kylin.jdbc;
-
-import java.io.InputStream;
-import java.io.Reader;
-import java.sql.NClob;
-import java.sql.RowId;
-import java.sql.SQLException;
-import java.sql.SQLXML;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.calcite.avatica.AvaticaConnection;
-import org.apache.calcite.avatica.AvaticaPreparedStatement;
-import org.apache.calcite.avatica.Meta.Signature;
-import org.apache.calcite.avatica.Meta.StatementHandle;
-
-public class KylinPreparedStatement extends AvaticaPreparedStatement {
-
- protected KylinPreparedStatement(AvaticaConnection connection, StatementHandle h, Signature signature, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException {
- super(connection, h, signature, resultSetType, resultSetConcurrency, resultSetHoldability);
- if (this.handle.signature == null)
- this.handle.signature = signature;
- }
-
- protected List<Object> getParameterValues2() {
- List<Object> values = new ArrayList<>(slots.length);
- for (int i = 0; i < slots.length; i++) {
- values.add(slots[i].value);
- }
- return values;
- }
-
- // ============================================================================
-
- public void setRowId(int parameterIndex, RowId x) throws SQLException {
- getSite(parameterIndex).setRowId(x);
- }
-
- public void setNString(int parameterIndex, String value) throws SQLException {
- getSite(parameterIndex).setNString(value);
- }
-
- public void setNCharacterStream(int parameterIndex, Reader value, long length) throws SQLException {
- getSite(parameterIndex).setNCharacterStream(value, length);
- }
-
- public void setNClob(int parameterIndex, NClob value) throws SQLException {
- getSite(parameterIndex).setNClob(value);
- }
-
- public void setClob(int parameterIndex, Reader reader, long length) throws SQLException {
- getSite(parameterIndex).setClob(reader, length);
- }
-
- public void setBlob(int parameterIndex, InputStream inputStream, long length) throws SQLException {
- getSite(parameterIndex).setBlob(inputStream, length);
- }
-
- public void setNClob(int parameterIndex, Reader reader, long length) throws SQLException {
- getSite(parameterIndex).setNClob(reader, length);
- }
-
- public void setSQLXML(int parameterIndex, SQLXML xmlObject) throws SQLException {
- getSite(parameterIndex).setSQLXML(xmlObject);
- }
-
- public void setAsciiStream(int parameterIndex, InputStream x, long length) throws SQLException {
- getSite(parameterIndex).setAsciiStream(x, length);
- }
-
- public void setBinaryStream(int parameterIndex, InputStream x, long length) throws SQLException {
- getSite(parameterIndex).setBinaryStream(x, length);
- }
-
- public void setCharacterStream(int parameterIndex, Reader reader, long length) throws SQLException {
- getSite(parameterIndex).setCharacterStream(reader, length);
- }
-
- public void setAsciiStream(int parameterIndex, InputStream x) throws SQLException {
- getSite(parameterIndex).setAsciiStream(x);
- }
-
- public void setBinaryStream(int parameterIndex, InputStream x) throws SQLException {
- getSite(parameterIndex).setBinaryStream(x);
- }
-
- public void setCharacterStream(int parameterIndex, Reader reader) throws SQLException {
- getSite(parameterIndex).setCharacterStream(reader);
- }
-
- public void setNCharacterStream(int parameterIndex, Reader value) throws SQLException {
- getSite(parameterIndex).setNCharacterStream(value);
- }
-
- public void setClob(int parameterIndex, Reader reader) throws SQLException {
- getSite(parameterIndex).setClob(reader);
- }
-
- public void setBlob(int parameterIndex, InputStream inputStream) throws SQLException {
- getSite(parameterIndex).setBlob(inputStream);
- }
-
- public void setNClob(int parameterIndex, Reader reader) throws SQLException {
- getSite(parameterIndex).setNClob(reader);
- }
-}
http://git-wip-us.apache.org/repos/asf/kylin/blob/6b6aa313/jdbc/src/main/java/org/apache/kylin/jdbc/KylinResultSet.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinResultSet.java b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinResultSet.java
deleted file mode 100644
index 9db53f4..0000000
--- a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinResultSet.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.kylin.jdbc;
-
-import java.io.IOException;
-import java.sql.ResultSetMetaData;
-import java.sql.SQLException;
-import java.util.List;
-import java.util.TimeZone;
-
-import org.apache.calcite.avatica.AvaticaParameter;
-import org.apache.calcite.avatica.AvaticaResultSet;
-import org.apache.calcite.avatica.AvaticaStatement;
-import org.apache.calcite.avatica.QueryState;
-import org.apache.calcite.avatica.Meta.Frame;
-import org.apache.calcite.avatica.Meta.Signature;
-import org.apache.calcite.avatica.MetaImpl;
-import org.apache.kylin.jdbc.IRemoteClient.QueryResult;
-
-public class KylinResultSet extends AvaticaResultSet {
-
- public KylinResultSet(AvaticaStatement statement, QueryState state, Signature signature, ResultSetMetaData resultSetMetaData, TimeZone timeZone, Frame firstFrame) {
- super(statement, state, signature, resultSetMetaData, timeZone, firstFrame);
- }
-
- @Override
- protected AvaticaResultSet execute() throws SQLException {
-
- // skip execution if result is already there (case of meta data lookup)
- if (this.firstFrame != null) {
- return super.execute();
- }
-
- String sql = signature.sql;
- List<AvaticaParameter> params = signature.parameters;
- List<Object> paramValues = null;
- if (params != null && params.size() > 0) {
- paramValues = ((KylinPreparedStatement) statement).getParameterValues2();
- }
-
- IRemoteClient client = ((KylinConnection) statement.connection).getRemoteClient();
- QueryResult result;
- try {
- result = client.executeQuery(sql, params, paramValues);
- } catch (IOException e) {
- throw new SQLException(e);
- }
-
- columnMetaDataList.clear();
- columnMetaDataList.addAll(result.columnMeta);
-
- cursor = MetaImpl.createCursor(signature.cursorFactory, result.iterable);
- return super.execute2(cursor, columnMetaDataList);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/kylin/blob/6b6aa313/jdbc/src/main/java/org/apache/kylin/jdbc/KylinStatement.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinStatement.java b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinStatement.java
deleted file mode 100644
index 90b8afa..0000000
--- a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinStatement.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.kylin.jdbc;
-
-import org.apache.calcite.avatica.AvaticaConnection;
-import org.apache.calcite.avatica.AvaticaStatement;
-import org.apache.calcite.avatica.Meta.StatementHandle;
-
-public class KylinStatement extends AvaticaStatement {
-
- protected KylinStatement(AvaticaConnection connection, StatementHandle h, int resultSetType, int resultSetConcurrency, int resultSetHoldability) {
- super(connection, h, resultSetType, resultSetConcurrency, resultSetHoldability);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/kylin/blob/6b6aa313/jdbc/src/main/java/org/apache/kylin/jdbc/json/PreparedQueryRequest.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/kylin/jdbc/json/PreparedQueryRequest.java b/jdbc/src/main/java/org/apache/kylin/jdbc/json/PreparedQueryRequest.java
deleted file mode 100644
index f019319..0000000
--- a/jdbc/src/main/java/org/apache/kylin/jdbc/json/PreparedQueryRequest.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.kylin.jdbc.json;
-
-import java.util.List;
-
-public class PreparedQueryRequest extends QueryRequest {
- private List<StatementParameter> params;
-
- public List<StatementParameter> getParams() {
- return params;
- }
-
- public void setParams(List<StatementParameter> params) {
- this.params = params;
- }
-}
http://git-wip-us.apache.org/repos/asf/kylin/blob/6b6aa313/jdbc/src/main/java/org/apache/kylin/jdbc/json/QueryRequest.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/kylin/jdbc/json/QueryRequest.java b/jdbc/src/main/java/org/apache/kylin/jdbc/json/QueryRequest.java
deleted file mode 100644
index ce8feb5..0000000
--- a/jdbc/src/main/java/org/apache/kylin/jdbc/json/QueryRequest.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.kylin.jdbc.json;
-
-public class QueryRequest {
- private String sql;
- private String project;
- private boolean acceptPartial = false;
-
- public String getSql() {
- return sql;
- }
-
- public void setSql(String sql) {
- this.sql = sql;
- }
-
- public String getProject() {
- return project;
- }
-
- public void setProject(String project) {
- this.project = project;
- }
-
- public boolean isAcceptPartial() {
- return acceptPartial;
- }
-
- public void setAcceptPartial(boolean acceptPartial) {
- this.acceptPartial = acceptPartial;
- }
-}
http://git-wip-us.apache.org/repos/asf/kylin/blob/6b6aa313/jdbc/src/main/java/org/apache/kylin/jdbc/json/SQLResponseStub.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/kylin/jdbc/json/SQLResponseStub.java b/jdbc/src/main/java/org/apache/kylin/jdbc/json/SQLResponseStub.java
deleted file mode 100644
index ee28438..0000000
--- a/jdbc/src/main/java/org/apache/kylin/jdbc/json/SQLResponseStub.java
+++ /dev/null
@@ -1,325 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.kylin.jdbc.json;
-
-import java.io.Serializable;
-import java.util.List;
-
-import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
-
-/**
- */
-@JsonIgnoreProperties(ignoreUnknown = true)
-public class SQLResponseStub implements Serializable {
- private static final long serialVersionUID = 1L;
-
- // private static final Logger logger =
- // LoggerFactory.getLogger(SQLResponse.class);
-
- // the data type for each column
- private List<ColumnMetaStub> columnMetas;
-
- // the results rows, each row contains several columns
- private List<String[]> results;
-
- private String cube;
-
- // if not select query, only return affected row count
- private int affectedRowCount;
-
- // if isException, the detailed exception message
- private String exceptionMessage;
-
- private boolean isException;
-
- private long duration;
-
- private boolean isPartial = false;
-
- private long totalScanCount;
-
- private boolean hitCache = false;
-
- public SQLResponseStub() {
- }
-
- public static long getSerialversionuid() {
- return serialVersionUID;
- }
-
- public List<ColumnMetaStub> getColumnMetas() {
- return columnMetas;
- }
-
- public void setColumnMetas(List<ColumnMetaStub> columnMetas) {
- this.columnMetas = columnMetas;
- }
-
- public List<String[]> getResults() {
- return results;
- }
-
- public void setResults(List<String[]> results) {
- this.results = results;
- }
-
- public String getCube() {
- return cube;
- }
-
- public void setCube(String cube) {
- this.cube = cube;
- }
-
- public int getAffectedRowCount() {
- return affectedRowCount;
- }
-
- public void setAffectedRowCount(int affectedRowCount) {
- this.affectedRowCount = affectedRowCount;
- }
-
- public boolean getIsException() {
- return isException;
- }
-
- public void setIsException(boolean isException) {
- this.isException = isException;
- }
-
- public String getExceptionMessage() {
- return exceptionMessage;
- }
-
- public void setExceptionMessage(String exceptionMessage) {
- this.exceptionMessage = exceptionMessage;
- }
-
- public long getDuration() {
- return duration;
- }
-
- public void setDuration(long duration) {
- this.duration = duration;
- }
-
- public boolean isPartial() {
- return isPartial;
- }
-
- public void setPartial(boolean isPartial) {
- this.isPartial = isPartial;
- }
-
- public long getTotalScanCount() {
- return totalScanCount;
- }
-
- public void setTotalScanCount(long totalScanCount) {
- this.totalScanCount = totalScanCount;
- }
-
- public boolean isHitCache() {
- return hitCache;
- }
-
- public void setHitCache(boolean hitCache) {
- this.hitCache = hitCache;
- }
-
- @JsonIgnoreProperties(ignoreUnknown = true)
- public static class ColumnMetaStub {
-
- private boolean isAutoIncrement;
- private boolean isCaseSensitive;
- private boolean isSearchable;
- private boolean isCurrency;
- private int isNullable;// 0:nonull, 1:nullable, 2: nullableunknown
- private boolean isSigned;
- private int displaySize;
- private String label;// AS keyword
- private String name;
- private String schemaName;
- private String catelogName;
- private String tableName;
- private int precision;
- private int scale;
- private int columnType;// as defined in java.sql.Types
- private String columnTypeName;
- private boolean isReadOnly;
- private boolean isWritable;
- private boolean isDefinitelyWritable;
-
- public ColumnMetaStub() {
- }
-
- public boolean isAutoIncrement() {
- return isAutoIncrement;
- }
-
- public void setAutoIncrement(boolean isAutoIncrement) {
- this.isAutoIncrement = isAutoIncrement;
- }
-
- public boolean isCaseSensitive() {
- return isCaseSensitive;
- }
-
- public void setCaseSensitive(boolean isCaseSensitive) {
- this.isCaseSensitive = isCaseSensitive;
- }
-
- public boolean isSearchable() {
- return isSearchable;
- }
-
- public void setSearchable(boolean isSearchable) {
- this.isSearchable = isSearchable;
- }
-
- public boolean isCurrency() {
- return isCurrency;
- }
-
- public void setCurrency(boolean isCurrency) {
- this.isCurrency = isCurrency;
- }
-
- public int getIsNullable() {
- return isNullable;
- }
-
- public void setIsNullable(int isNullable) {
- this.isNullable = isNullable;
- }
-
- public boolean isSigned() {
- return isSigned;
- }
-
- public void setSigned(boolean isSigned) {
- this.isSigned = isSigned;
- }
-
- public int getDisplaySize() {
- return displaySize;
- }
-
- public void setDisplaySize(int displaySize) {
- this.displaySize = displaySize;
- }
-
- public String getLabel() {
- return label;
- }
-
- public void setLabel(String label) {
- this.label = label;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getSchemaName() {
- return schemaName;
- }
-
- public void setSchemaName(String schemaName) {
- this.schemaName = schemaName;
- }
-
- public String getCatelogName() {
- return catelogName;
- }
-
- public void setCatelogName(String catelogName) {
- this.catelogName = catelogName;
- }
-
- public String getTableName() {
- return tableName;
- }
-
- public void setTableName(String tableName) {
- this.tableName = tableName;
- }
-
- public int getPrecision() {
- return precision;
- }
-
- public void setPrecision(int precision) {
- this.precision = precision;
- }
-
- public int getScale() {
- return scale;
- }
-
- public void setScale(int scale) {
- this.scale = scale;
- }
-
- public int getColumnType() {
- return columnType;
- }
-
- public void setColumnType(int columnType) {
- this.columnType = columnType;
- }
-
- public String getColumnTypeName() {
- return columnTypeName;
- }
-
- public void setColumnTypeName(String columnTypeName) {
- this.columnTypeName = columnTypeName;
- }
-
- public boolean isReadOnly() {
- return isReadOnly;
- }
-
- public void setReadOnly(boolean isReadOnly) {
- this.isReadOnly = isReadOnly;
- }
-
- public boolean isWritable() {
- return isWritable;
- }
-
- public void setWritable(boolean isWritable) {
- this.isWritable = isWritable;
- }
-
- public boolean isDefinitelyWritable() {
- return isDefinitelyWritable;
- }
-
- public void setDefinitelyWritable(boolean isDefinitelyWritable) {
- this.isDefinitelyWritable = isDefinitelyWritable;
- }
-
- }
-}
http://git-wip-us.apache.org/repos/asf/kylin/blob/6b6aa313/jdbc/src/main/java/org/apache/kylin/jdbc/json/StatementParameter.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/kylin/jdbc/json/StatementParameter.java b/jdbc/src/main/java/org/apache/kylin/jdbc/json/StatementParameter.java
deleted file mode 100644
index 766b025..0000000
--- a/jdbc/src/main/java/org/apache/kylin/jdbc/json/StatementParameter.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.kylin.jdbc.json;
-
-public class StatementParameter {
-
- private String className;
- private String value;
-
- public StatementParameter(String className, String value) {
- this.className = className;
- this.value = value;
- }
-
- public String getClassName() {
- return className;
- }
-
- public void setClazz(String className) {
- this.className = className;
- }
-
- public String getValue() {
- return value;
- }
-
- public void setValue(String value) {
- this.value = value;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/kylin/blob/6b6aa313/jdbc/src/main/java/org/apache/kylin/jdbc/json/TableMetaStub.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/kylin/jdbc/json/TableMetaStub.java b/jdbc/src/main/java/org/apache/kylin/jdbc/json/TableMetaStub.java
deleted file mode 100644
index 9970dff..0000000
--- a/jdbc/src/main/java/org/apache/kylin/jdbc/json/TableMetaStub.java
+++ /dev/null
@@ -1,345 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.kylin.jdbc.json;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-
-/**
- */
-public class TableMetaStub {
-
- private static final long serialVersionUID = 1L;
- private String TABLE_CAT;
- private String TABLE_SCHEM;
- private String TABLE_NAME;
- private String TABLE_TYPE;
- private String REMARKS;
- private String TYPE_CAT;
- private String TYPE_SCHEM;
- private String TYPE_NAME;
- private String SELF_REFERENCING_COL_NAME;
- private String REF_GENERATION;
- @JsonProperty("columns")
- private List<ColumnMetaStub> columns = new ArrayList<ColumnMetaStub>();
-
- public String getTABLE_CAT() {
- return TABLE_CAT;
- }
-
- public void setTABLE_CAT(String tABLE_CAT) {
- TABLE_CAT = tABLE_CAT;
- }
-
- public String getTABLE_SCHEM() {
- return TABLE_SCHEM;
- }
-
- public void setTABLE_SCHEM(String tABLE_SCHEM) {
- TABLE_SCHEM = tABLE_SCHEM;
- }
-
- public String getTABLE_NAME() {
- return TABLE_NAME;
- }
-
- public void setTABLE_NAME(String tABLE_NAME) {
- TABLE_NAME = tABLE_NAME;
- }
-
- public String getTABLE_TYPE() {
- return TABLE_TYPE;
- }
-
- public void setTABLE_TYPE(String tABLE_TYPE) {
- TABLE_TYPE = tABLE_TYPE;
- }
-
- public String getREMARKS() {
- return REMARKS;
- }
-
- public void setREMARKS(String rEMARKS) {
- REMARKS = rEMARKS;
- }
-
- public String getTYPE_CAT() {
- return TYPE_CAT;
- }
-
- public void setTYPE_CAT(String tYPE_CAT) {
- TYPE_CAT = tYPE_CAT;
- }
-
- public String getTYPE_SCHEM() {
- return TYPE_SCHEM;
- }
-
- public void setTYPE_SCHEM(String tYPE_SCHEM) {
- TYPE_SCHEM = tYPE_SCHEM;
- }
-
- public String getTYPE_NAME() {
- return TYPE_NAME;
- }
-
- public void setTYPE_NAME(String tYPE_NAME) {
- TYPE_NAME = tYPE_NAME;
- }
-
- public String getSELF_REFERENCING_COL_NAME() {
- return SELF_REFERENCING_COL_NAME;
- }
-
- public void setSELF_REFERENCING_COL_NAME(String sELF_REFERENCING_COL_NAME) {
- SELF_REFERENCING_COL_NAME = sELF_REFERENCING_COL_NAME;
- }
-
- public String getREF_GENERATION() {
- return REF_GENERATION;
- }
-
- public void setREF_GENERATION(String rEF_GENERATION) {
- REF_GENERATION = rEF_GENERATION;
- }
-
- public List<ColumnMetaStub> getColumns() {
- return columns;
- }
-
- public void setColumns(List<ColumnMetaStub> columns) {
- this.columns = columns;
- }
-
- public static long getSerialversionuid() {
- return serialVersionUID;
- }
-
- public static class ColumnMetaStub {
- private String TABLE_CAT;
- private String TABLE_SCHEM;
- private String TABLE_NAME;
- private String COLUMN_NAME;
- private int DATA_TYPE;
- private String TYPE_NAME;
- private int COLUMN_SIZE;
- private int BUFFER_LENGTH;
- private int DECIMAL_DIGITS;
- private int NUM_PREC_RADIX;
- private int NULLABLE;
- private String REMARKS;
- private String COLUMN_DEF;
- private int SQL_DATA_TYPE;
- private int SQL_DATETIME_SUB;
- private int CHAR_OCTET_LENGTH;
- private int ORDINAL_POSITION;
- private String IS_NULLABLE;
- private String SCOPE_CATLOG;
- private String SCOPE_SCHEMA;
- private String SCOPE_TABLE;
- private short SOURCE_DATA_TYPE;
- private String IS_AUTOINCREMENT;
-
- public String getTABLE_CAT() {
- return TABLE_CAT;
- }
-
- public void setTABLE_CAT(String tABLE_CAT) {
- TABLE_CAT = tABLE_CAT;
- }
-
- public String getTABLE_SCHEM() {
- return TABLE_SCHEM;
- }
-
- public void setTABLE_SCHEM(String tABLE_SCHEM) {
- TABLE_SCHEM = tABLE_SCHEM;
- }
-
- public String getTABLE_NAME() {
- return TABLE_NAME;
- }
-
- public void setTABLE_NAME(String tABLE_NAME) {
- TABLE_NAME = tABLE_NAME;
- }
-
- public String getCOLUMN_NAME() {
- return COLUMN_NAME;
- }
-
- public void setCOLUMN_NAME(String cOLUMN_NAME) {
- COLUMN_NAME = cOLUMN_NAME;
- }
-
- public int getDATA_TYPE() {
- return DATA_TYPE;
- }
-
- public void setDATA_TYPE(int dATA_TYPE) {
- DATA_TYPE = dATA_TYPE;
- }
-
- public String getTYPE_NAME() {
- return TYPE_NAME;
- }
-
- public void setTYPE_NAME(String tYPE_NAME) {
- TYPE_NAME = tYPE_NAME;
- }
-
- public int getCOLUMN_SIZE() {
- return COLUMN_SIZE;
- }
-
- public void setCOLUMN_SIZE(int cOLUMN_SIZE) {
- COLUMN_SIZE = cOLUMN_SIZE;
- }
-
- public int getBUFFER_LENGTH() {
- return BUFFER_LENGTH;
- }
-
- public void setBUFFER_LENGTH(int bUFFER_LENGTH) {
- BUFFER_LENGTH = bUFFER_LENGTH;
- }
-
- public int getDECIMAL_DIGITS() {
- return DECIMAL_DIGITS;
- }
-
- public void setDECIMAL_DIGITS(int dECIMAL_DIGITS) {
- DECIMAL_DIGITS = dECIMAL_DIGITS;
- }
-
- public int getNUM_PREC_RADIX() {
- return NUM_PREC_RADIX;
- }
-
- public void setNUM_PREC_RADIX(int nUM_PREC_RADIX) {
- NUM_PREC_RADIX = nUM_PREC_RADIX;
- }
-
- public int getNULLABLE() {
- return NULLABLE;
- }
-
- public void setNULLABLE(int nULLABLE) {
- NULLABLE = nULLABLE;
- }
-
- public String getREMARKS() {
- return REMARKS;
- }
-
- public void setREMARKS(String rEMARKS) {
- REMARKS = rEMARKS;
- }
-
- public String getCOLUMN_DEF() {
- return COLUMN_DEF;
- }
-
- public void setCOLUMN_DEF(String cOLUMN_DEF) {
- COLUMN_DEF = cOLUMN_DEF;
- }
-
- public int getSQL_DATA_TYPE() {
- return SQL_DATA_TYPE;
- }
-
- public void setSQL_DATA_TYPE(int sQL_DATA_TYPE) {
- SQL_DATA_TYPE = sQL_DATA_TYPE;
- }
-
- public int getSQL_DATETIME_SUB() {
- return SQL_DATETIME_SUB;
- }
-
- public void setSQL_DATETIME_SUB(int sQL_DATETIME_SUB) {
- SQL_DATETIME_SUB = sQL_DATETIME_SUB;
- }
-
- public int getCHAR_OCTET_LENGTH() {
- return CHAR_OCTET_LENGTH;
- }
-
- public void setCHAR_OCTET_LENGTH(int cHAR_OCTET_LENGTH) {
- CHAR_OCTET_LENGTH = cHAR_OCTET_LENGTH;
- }
-
- public int getORDINAL_POSITION() {
- return ORDINAL_POSITION;
- }
-
- public void setORDINAL_POSITION(int oRDINAL_POSITION) {
- ORDINAL_POSITION = oRDINAL_POSITION;
- }
-
- public String getIS_NULLABLE() {
- return IS_NULLABLE;
- }
-
- public void setIS_NULLABLE(String iS_NULLABLE) {
- IS_NULLABLE = iS_NULLABLE;
- }
-
- public String getSCOPE_CATLOG() {
- return SCOPE_CATLOG;
- }
-
- public void setSCOPE_CATLOG(String sCOPE_CATLOG) {
- SCOPE_CATLOG = sCOPE_CATLOG;
- }
-
- public String getSCOPE_SCHEMA() {
- return SCOPE_SCHEMA;
- }
-
- public void setSCOPE_SCHEMA(String sCOPE_SCHEMA) {
- SCOPE_SCHEMA = sCOPE_SCHEMA;
- }
-
- public String getSCOPE_TABLE() {
- return SCOPE_TABLE;
- }
-
- public void setSCOPE_TABLE(String sCOPE_TABLE) {
- SCOPE_TABLE = sCOPE_TABLE;
- }
-
- public short getSOURCE_DATA_TYPE() {
- return SOURCE_DATA_TYPE;
- }
-
- public void setSOURCE_DATA_TYPE(short sOURCE_DATA_TYPE) {
- SOURCE_DATA_TYPE = sOURCE_DATA_TYPE;
- }
-
- public String getIS_AUTOINCREMENT() {
- return IS_AUTOINCREMENT;
- }
-
- public void setIS_AUTOINCREMENT(String iS_AUTOINCREMENT) {
- this.IS_AUTOINCREMENT = iS_AUTOINCREMENT;
- }
- }
-}