You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by el...@apache.org on 2017/04/01 20:36:24 UTC
[32/51] [partial] calcite-avatica git commit: [CALCITE-1717] Remove
Calcite code and lift avatica
http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/fc7b26c8/avatica/core/src/main/java/org/apache/calcite/avatica/util/Unsafe.java
----------------------------------------------------------------------
diff --git a/avatica/core/src/main/java/org/apache/calcite/avatica/util/Unsafe.java b/avatica/core/src/main/java/org/apache/calcite/avatica/util/Unsafe.java
deleted file mode 100644
index 1d0238c..0000000
--- a/avatica/core/src/main/java/org/apache/calcite/avatica/util/Unsafe.java
+++ /dev/null
@@ -1,55 +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.calcite.avatica.util;
-
-import java.util.Calendar;
-import java.util.Locale;
-
-/**
- * Contains methods that call JDK methods that the
- * <a href="https://github.com/policeman-tools/forbidden-apis">forbidden
- * APIs checker</a> does not approve of.
- *
- * <p>This class is excluded from the check, so methods called via this class
- * will not fail the build.
- */
-public class Unsafe {
- private Unsafe() {}
-
- /** Calls {@link System#exit}. */
- public static void systemExit(int status) {
- System.exit(status);
- }
-
- /** Calls {@link Object#notifyAll()}. */
- public static void notifyAll(Object o) {
- o.notifyAll();
- }
-
- /** Calls {@link Object#wait()}. */
- public static void wait(Object o) throws InterruptedException {
- o.wait();
- }
-
- /** Returns a {@link java.util.Calendar} with the local time zone and root
- * locale. */
- public static Calendar localCalendar() {
- return Calendar.getInstance(Locale.ROOT);
- }
-}
-
-// End Unsafe.java
http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/fc7b26c8/avatica/core/src/main/java/org/apache/calcite/avatica/util/UnsynchronizedBuffer.java
----------------------------------------------------------------------
diff --git a/avatica/core/src/main/java/org/apache/calcite/avatica/util/UnsynchronizedBuffer.java b/avatica/core/src/main/java/org/apache/calcite/avatica/util/UnsynchronizedBuffer.java
deleted file mode 100644
index 8daee60..0000000
--- a/avatica/core/src/main/java/org/apache/calcite/avatica/util/UnsynchronizedBuffer.java
+++ /dev/null
@@ -1,152 +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.calcite.avatica.util;
-
-import java.io.IOException;
-import java.io.OutputStream;
-
-/**
- * A utility class for reading and writing bytes to byte buffers without synchronization. A
- * reduced variant taken from Apache Accumulo. This class is <b>not</b> thread-safe by design.
- * It is up to the caller to guarantee mutual exclusion as necessary.
- */
-public class UnsynchronizedBuffer extends OutputStream {
- // Anything larger than 64K, reap the backing buffer
- private static final int LARGE_BUFFER_SIZE = 1024 * 64;
-
- final int initialCapacity;
- int offset = 0;
- byte[] data;
-
- /**
- * Creates a new writer.
- */
- public UnsynchronizedBuffer() {
- this(4096);
- }
-
- /**
- * Creates a new writer.
- *
- * @param initialCapacity initial byte capacity
- */
- public UnsynchronizedBuffer(int initialCapacity) {
- this.initialCapacity = initialCapacity;
- data = new byte[initialCapacity];
- }
-
- private void reserve(int l) {
- if (offset + l > data.length) {
- int newSize = UnsynchronizedBuffer.nextArraySize(offset + l);
-
- byte[] newData = new byte[newSize];
- System.arraycopy(data, 0, newData, 0, offset);
- data = newData;
- }
-
- }
-
- /**
- * Adds bytes to this writer's buffer.
- *
- * @param bytes byte array
- * @param off offset into array to start copying bytes
- * @param length number of bytes to add
- * @throws IndexOutOfBoundsException if off or length are invalid
- */
- public void write(byte[] bytes, int off, int length) {
- reserve(length);
- System.arraycopy(bytes, off, data, offset, length);
- offset += length;
- }
-
- @Override public void write(int b) throws IOException {
- reserve(1);
- data[offset] = (byte) b;
- offset++;
- }
-
- /**
- * Gets (a copy of) the contents of this writer's buffer.
- *
- * @return byte buffer contents
- */
- public byte[] toArray() {
- byte[] ret = new byte[offset];
- System.arraycopy(data, 0, ret, 0, offset);
- return ret;
- }
-
- /**
- * Resets the internal pointer into the buffer.
- */
- public void reset() {
- offset = 0;
- if (data.length >= LARGE_BUFFER_SIZE) {
- data = new byte[this.initialCapacity];
- }
- }
-
- /**
- * @return The current offset into the backing array.
- */
- public int getOffset() {
- return offset;
- }
-
- /**
- * @return The current length of the backing array.
- */
- public long getSize() {
- return data.length;
- }
-
- /**
- * Determines what next array size should be by rounding up to next power of two.
- *
- * @param i current array size
- * @return next array size
- * @throws IllegalArgumentException if i is negative
- */
- public static int nextArraySize(int i) {
- if (i < 0) {
- throw new IllegalArgumentException();
- }
-
- if (i > (1 << 30)) {
- return Integer.MAX_VALUE; // this is the next power of 2 minus one... a special case
- }
-
- if (i == 0) {
- return 1;
- }
-
- // round up to next power of two
- int ret = i;
- ret--;
- ret |= ret >> 1;
- ret |= ret >> 2;
- ret |= ret >> 4;
- ret |= ret >> 8;
- ret |= ret >> 16;
- ret++;
-
- return ret;
- }
-}
-
-// End UnsynchronizedBuffer.java
http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/fc7b26c8/avatica/core/src/main/java/org/apache/calcite/avatica/util/package-info.java
----------------------------------------------------------------------
diff --git a/avatica/core/src/main/java/org/apache/calcite/avatica/util/package-info.java b/avatica/core/src/main/java/org/apache/calcite/avatica/util/package-info.java
deleted file mode 100644
index eab457c..0000000
--- a/avatica/core/src/main/java/org/apache/calcite/avatica/util/package-info.java
+++ /dev/null
@@ -1,24 +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.
- */
-
-/**
- * Avatica utilities.
- */
-@PackageMarker
-package org.apache.calcite.avatica.util;
-
-// End package-info.java
http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/fc7b26c8/avatica/core/src/main/protobuf/common.proto
----------------------------------------------------------------------
diff --git a/avatica/core/src/main/protobuf/common.proto b/avatica/core/src/main/protobuf/common.proto
deleted file mode 100644
index affe5d5..0000000
--- a/avatica/core/src/main/protobuf/common.proto
+++ /dev/null
@@ -1,275 +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.
- */
-
-syntax = "proto3";
-
-option java_package = "org.apache.calcite.avatica.proto";
-
-// Details about a connection
-message ConnectionProperties {
- bool is_dirty = 1;
- bool auto_commit = 2;
- bool has_auto_commit = 7; // field is a Boolean, need to discern null and default value
- bool read_only = 3;
- bool has_read_only = 8; // field is a Boolean, need to discern null and default value
- uint32 transaction_isolation = 4;
- string catalog = 5;
- string schema = 6;
-}
-
-// Statement handle
-message StatementHandle {
- string connection_id = 1;
- uint32 id = 2;
- Signature signature = 3;
-}
-
-// Results of preparing a statement
-message Signature {
- repeated ColumnMetaData columns = 1;
- string sql = 2;
- repeated AvaticaParameter parameters = 3;
- CursorFactory cursor_factory = 4;
- StatementType statementType = 5;
-}
-
-// Has to be consistent with Meta.StatementType
-enum StatementType {
- SELECT = 0;
- INSERT = 1;
- UPDATE = 2;
- DELETE = 3;
- UPSERT = 4;
- MERGE = 5;
- OTHER_DML = 6;
- CREATE = 7;
- DROP = 8;
- ALTER = 9;
- OTHER_DDL = 10;
- CALL = 11;
-}
-
-message ColumnMetaData {
- uint32 ordinal = 1;
- bool auto_increment = 2;
- bool case_sensitive = 3;
- bool searchable = 4;
- bool currency = 5;
- uint32 nullable = 6;
- bool signed = 7;
- uint32 display_size = 8;
- string label = 9;
- string column_name = 10;
- string schema_name = 11;
- uint32 precision = 12;
- uint32 scale = 13;
- string table_name = 14;
- string catalog_name = 15;
- bool read_only = 16;
- bool writable = 17;
- bool definitely_writable = 18;
- string column_class_name = 19;
- AvaticaType type = 20;
-}
-
-enum Rep {
- PRIMITIVE_BOOLEAN = 0;
- PRIMITIVE_BYTE = 1;
- PRIMITIVE_CHAR = 2;
- PRIMITIVE_SHORT = 3;
- PRIMITIVE_INT = 4;
- PRIMITIVE_LONG = 5;
- PRIMITIVE_FLOAT = 6;
- PRIMITIVE_DOUBLE = 7;
- BOOLEAN = 8;
- BYTE = 9;
- CHARACTER = 10;
- SHORT = 11;
- INTEGER = 12;
- LONG = 13;
- FLOAT = 14;
- DOUBLE = 15;
- BIG_INTEGER = 25;
- BIG_DECIMAL = 26;
- JAVA_SQL_TIME = 16;
- JAVA_SQL_TIMESTAMP = 17;
- JAVA_SQL_DATE = 18;
- JAVA_UTIL_DATE = 19;
- BYTE_STRING = 20;
- STRING = 21;
- NUMBER = 22;
- OBJECT = 23;
- NULL = 24;
- ARRAY = 27;
- STRUCT = 28;
- MULTISET = 29;
-}
-
-// Base class for a column type
-message AvaticaType {
- uint32 id = 1;
- string name = 2;
- Rep rep = 3;
-
- repeated ColumnMetaData columns = 4; // Only present when name = STRUCT
- AvaticaType component = 5; // Only present when name = ARRAY
-}
-
-// Metadata for a parameter
-message AvaticaParameter {
- bool signed = 1;
- uint32 precision = 2;
- uint32 scale = 3;
- uint32 parameter_type = 4;
- string type_name = 5;
- string class_name = 6;
- string name = 7;
-}
-
-// Information necessary to convert an Iterable into a Calcite Cursor
-message CursorFactory {
- enum Style {
- OBJECT = 0;
- RECORD = 1;
- RECORD_PROJECTION = 2;
- ARRAY = 3;
- LIST = 4;
- MAP = 5;
- }
-
- Style style = 1;
- string class_name = 2;
- repeated string field_names = 3;
-}
-
-// A collection of rows
-message Frame {
- uint64 offset = 1;
- bool done = 2;
- repeated Row rows = 3;
-}
-
-// A row is a collection of values
-message Row {
- repeated ColumnValue value = 1;
-}
-
-// Database property, list of functions the database provides for a certain operation
-message DatabaseProperty {
- string name = 1;
- repeated string functions = 2;
-}
-
-// Message which encapsulates another message to support a single RPC endpoint
-message WireMessage {
- string name = 1;
- bytes wrapped_message = 2;
-}
-
-// A value might be a TypedValue or an Array of TypedValue's
-message ColumnValue {
- repeated TypedValue value = 1; // deprecated, use array_value or scalar_value
- repeated TypedValue array_value = 2;
- bool has_array_value = 3; // Is an array value set?
- TypedValue scalar_value = 4;
-}
-
-// Generic wrapper to support any SQL type. Struct-like to work around no polymorphism construct.
-message TypedValue {
- Rep type = 1; // The actual type that was serialized in the general attribute below
-
- bool bool_value = 2; // boolean
- string string_value = 3; // char/varchar
- sint64 number_value = 4; // var-len encoding lets us shove anything from byte to long
- // includes numeric types and date/time types.
- bytes bytes_value = 5; // binary/varbinary
- double double_value = 6; // big numbers
- bool null = 7; // a null object
-}
-
-// The severity of some unexpected outcome to an operation.
-// Protobuf enum values must be unique across all other enums
-enum Severity {
- UNKNOWN_SEVERITY = 0;
- FATAL_SEVERITY = 1;
- ERROR_SEVERITY = 2;
- WARNING_SEVERITY = 3;
-}
-
-// Enumeration corresponding to DatabaseMetaData operations
-enum MetaDataOperation {
- GET_ATTRIBUTES = 0;
- GET_BEST_ROW_IDENTIFIER = 1;
- GET_CATALOGS = 2;
- GET_CLIENT_INFO_PROPERTIES = 3;
- GET_COLUMN_PRIVILEGES = 4;
- GET_COLUMNS = 5;
- GET_CROSS_REFERENCE = 6;
- GET_EXPORTED_KEYS = 7;
- GET_FUNCTION_COLUMNS = 8;
- GET_FUNCTIONS = 9;
- GET_IMPORTED_KEYS = 10;
- GET_INDEX_INFO = 11;
- GET_PRIMARY_KEYS = 12;
- GET_PROCEDURE_COLUMNS = 13;
- GET_PROCEDURES = 14;
- GET_PSEUDO_COLUMNS = 15;
- GET_SCHEMAS = 16;
- GET_SCHEMAS_WITH_ARGS = 17;
- GET_SUPER_TABLES = 18;
- GET_SUPER_TYPES = 19;
- GET_TABLE_PRIVILEGES = 20;
- GET_TABLES = 21;
- GET_TABLE_TYPES = 22;
- GET_TYPE_INFO = 23;
- GET_UDTS = 24;
- GET_VERSION_COLUMNS = 25;
-}
-
-// Represents the breadth of arguments to DatabaseMetaData functions
-message MetaDataOperationArgument {
- enum ArgumentType {
- STRING = 0;
- BOOL = 1;
- INT = 2;
- REPEATED_STRING = 3;
- REPEATED_INT = 4;
- NULL = 5;
- }
-
- string string_value = 1;
- bool bool_value = 2;
- sint32 int_value = 3;
- repeated string string_array_values = 4;
- repeated sint32 int_array_values = 5;
- ArgumentType type = 6;
-}
-
-enum StateType {
- SQL = 0;
- METADATA = 1;
-}
-
-message QueryState {
- StateType type = 1;
- string sql = 2;
- MetaDataOperation op = 3;
- repeated MetaDataOperationArgument args = 4;
- bool has_args = 5;
- bool has_sql = 6;
- bool has_op = 7;
-}
http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/fc7b26c8/avatica/core/src/main/protobuf/requests.proto
----------------------------------------------------------------------
diff --git a/avatica/core/src/main/protobuf/requests.proto b/avatica/core/src/main/protobuf/requests.proto
deleted file mode 100644
index 228be27..0000000
--- a/avatica/core/src/main/protobuf/requests.proto
+++ /dev/null
@@ -1,168 +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.
- */
-syntax = "proto3";
-
-option java_package = "org.apache.calcite.avatica.proto";
-
-import "common.proto";
-
-// Request for Meta#getCatalogs()
-message CatalogsRequest {
- string connection_id = 1;
-}
-
-// Request for Meta#getDatabaseProperties()
-message DatabasePropertyRequest {
- string connection_id = 1;
-}
-
-// Request for Meta#getSchemas(String, org.apache.calcite.avatica.Meta.Pat)}
-message SchemasRequest {
- string catalog = 1;
- string schema_pattern = 2;
- string connection_id = 3;
-}
-
-// Request for Request for Meta#getTables(String, org.apache.calcite.avatica.Meta.Pat,
-// org.apache.calcite.avatica.Meta.Pat, java.util.List)
-message TablesRequest {
- string catalog = 1;
- string schema_pattern = 2;
- string table_name_pattern = 3;
- repeated string type_list = 4;
- bool has_type_list = 6; // Having an empty type_list is distinct from a null type_list
- string connection_id = 7;
-}
-
-// Request for Meta#getTableTypes()
-message TableTypesRequest {
- string connection_id = 1;
-}
-
-// Request for Meta#getColumns(String, org.apache.calcite.avatica.Meta.Pat,
-// org.apache.calcite.avatica.Meta.Pat, org.apache.calcite.avatica.Meta.Pat).
-message ColumnsRequest {
- string catalog = 1;
- string schema_pattern = 2;
- string table_name_pattern = 3;
- string column_name_pattern = 4;
- string connection_id = 5;
-}
-
-// Request for Meta#getTypeInfo()
-message TypeInfoRequest {
- string connection_id = 1;
-}
-
-// Request for Meta#prepareAndExecute(Meta.StatementHandle, String, long, Meta.PrepareCallback)
-message PrepareAndExecuteRequest {
- string connection_id = 1;
- string sql = 2;
- uint64 max_row_count = 3; // Deprecated
- uint32 statement_id = 4;
- int64 max_rows_total = 5; // The maximum number of rows that will be allowed for this query
- int32 first_frame_max_size = 6; // The maximum number of rows that will be returned in the
- // first Frame returned for this query.
-}
-
-// Request for Meta.prepare(Meta.ConnectionHandle, String, long)
-message PrepareRequest {
- string connection_id = 1;
- string sql = 2;
- uint64 max_row_count = 3; // Deprecated
- int64 max_rows_total = 4; // The maximum number of rows that will be allowed for this query
-}
-
-// Request for Meta#fetch(Meta.StatementHandle, List, long, int)
-message FetchRequest {
- string connection_id = 1;
- uint32 statement_id = 2;
- uint64 offset = 3;
- uint32 fetch_max_row_count = 4; // Maximum number of rows to be returned in the frame. Negative means no limit. Deprecated!
- int32 frame_max_size = 5;
-}
-
-// Request for Meta#createStatement(Meta.ConnectionHandle)
-message CreateStatementRequest {
- string connection_id = 1;
-}
-
-// Request for Meta#closeStatement(Meta.StatementHandle)
-message CloseStatementRequest {
- string connection_id = 1;
- uint32 statement_id = 2;
-}
-
-// Request for Meta#openConnection(Meta.ConnectionHandle, Map<String, String>)
-message OpenConnectionRequest {
- string connection_id = 1;
- map<string, string> info = 2;
-}
-
-// Request for Meta#closeConnection(Meta.ConnectionHandle)
-message CloseConnectionRequest {
- string connection_id = 1;
-}
-
-message ConnectionSyncRequest {
- string connection_id = 1;
- ConnectionProperties conn_props = 2;
-}
-
-// Request for Meta#execute(Meta.ConnectionHandle, list, long)
-message ExecuteRequest {
- StatementHandle statementHandle = 1;
- repeated TypedValue parameter_values = 2;
- uint64 first_frame_max_size = 3; // The maximum number of rows to return in the first Frame
- bool has_parameter_values = 4;
-}
-
-
-message SyncResultsRequest {
- string connection_id = 1;
- uint32 statement_id = 2;
- QueryState state = 3;
- uint64 offset = 4;
-}
-
-// Request to invoke a commit on a Connection
-message CommitRequest {
- string connection_id = 1;
-}
-
-// Request to invoke rollback on a Connection
-message RollbackRequest {
- string connection_id = 1;
-}
-
-// Request to prepare and execute a collection of sql statements.
-message PrepareAndExecuteBatchRequest {
- string connection_id = 1;
- uint32 statement_id = 2;
- repeated string sql_commands = 3;
-}
-
-// Each command is a list of TypedValues
-message UpdateBatch {
- repeated TypedValue parameter_values = 1;
-}
-
-message ExecuteBatchRequest {
- string connection_id = 1;
- uint32 statement_id = 2;
- repeated UpdateBatch updates = 3; // A batch of updates is a list<list<typevalue>>
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/fc7b26c8/avatica/core/src/main/protobuf/responses.proto
----------------------------------------------------------------------
diff --git a/avatica/core/src/main/protobuf/responses.proto b/avatica/core/src/main/protobuf/responses.proto
deleted file mode 100644
index a3cd3d2..0000000
--- a/avatica/core/src/main/protobuf/responses.proto
+++ /dev/null
@@ -1,135 +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.
- */
-syntax = "proto3";
-
-option java_package = "org.apache.calcite.avatica.proto";
-
-import "common.proto";
-
-// Response that contains a result set.
-message ResultSetResponse {
- string connection_id = 1;
- uint32 statement_id = 2;
- bool own_statement = 3;
- Signature signature = 4;
- Frame first_frame = 5;
- uint64 update_count = 6; // -1 for normal result sets, else this response contains a dummy result set
- // with no signature nor other data.
- RpcMetadata metadata = 7;
-}
-
-// Response to PrepareAndExecuteRequest
-message ExecuteResponse {
- repeated ResultSetResponse results = 1;
- bool missing_statement = 2; // Did the request fail because of no-cached statement
- RpcMetadata metadata = 3;
-}
-
-// Response to PrepareRequest
-message PrepareResponse {
- StatementHandle statement = 1;
- RpcMetadata metadata = 2;
-}
-
-// Response to FetchRequest
-message FetchResponse {
- Frame frame = 1;
- bool missing_statement = 2; // Did the request fail because of no-cached statement
- bool missing_results = 3; // Did the request fail because of a cached-statement w/o ResultSet
- RpcMetadata metadata = 4;
-}
-
-// Response to CreateStatementRequest
-message CreateStatementResponse {
- string connection_id = 1;
- uint32 statement_id = 2;
- RpcMetadata metadata = 3;
-}
-
-// Response to CloseStatementRequest
-message CloseStatementResponse {
- RpcMetadata metadata = 1;
-}
-
-// Response to OpenConnectionRequest {
-message OpenConnectionResponse {
- RpcMetadata metadata = 1;
-}
-
-// Response to CloseConnectionRequest {
-message CloseConnectionResponse {
- RpcMetadata metadata = 1;
-}
-
-// Response to ConnectionSyncRequest
-message ConnectionSyncResponse {
- ConnectionProperties conn_props = 1;
- RpcMetadata metadata = 2;
-}
-
-message DatabasePropertyElement {
- DatabaseProperty key = 1;
- TypedValue value = 2;
- RpcMetadata metadata = 3;
-}
-
-// Response for Meta#getDatabaseProperties()
-message DatabasePropertyResponse {
- repeated DatabasePropertyElement props = 1;
- RpcMetadata metadata = 2;
-}
-
-// Send contextual information about some error over the wire from the server.
-message ErrorResponse {
- repeated string exceptions = 1; // exception stacktraces, many for linked exceptions.
- bool has_exceptions = 7; // are there stacktraces contained?
- string error_message = 2; // human readable description
- Severity severity = 3;
- uint32 error_code = 4; // numeric identifier for error
- string sql_state = 5; // five-character standard-defined value
- RpcMetadata metadata = 6;
-}
-
-message SyncResultsResponse {
- bool missing_statement = 1; // Server doesn't have the statement with the ID from the request
- bool more_results = 2; // Should the client fetch() to get more results
- RpcMetadata metadata = 3;
-}
-
-// Generic metadata for the server to return with each response.
-message RpcMetadata {
- string server_address = 1; // The host:port of the server
-}
-
-// Response to a commit request
-message CommitResponse {
-
-}
-
-// Response to a rollback request
-message RollbackResponse {
-
-}
-
-// Response to a batch update request
-message ExecuteBatchResponse {
- string connection_id = 1;
- uint32 statement_id = 2;
- repeated uint64 update_counts = 3;
- bool missing_statement = 4; // Did the request fail because of no-cached statement
- RpcMetadata metadata = 5;
-}
http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/fc7b26c8/avatica/core/src/main/resources/META-INF/services/java.sql.Driver
----------------------------------------------------------------------
diff --git a/avatica/core/src/main/resources/META-INF/services/java.sql.Driver b/avatica/core/src/main/resources/META-INF/services/java.sql.Driver
deleted file mode 100644
index beb1ac0..0000000
--- a/avatica/core/src/main/resources/META-INF/services/java.sql.Driver
+++ /dev/null
@@ -1 +0,0 @@
-org.apache.calcite.avatica.remote.Driver
http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/fc7b26c8/avatica/core/src/test/java/org/apache/calcite/avatica/AvaticaConnectionTest.java
----------------------------------------------------------------------
diff --git a/avatica/core/src/test/java/org/apache/calcite/avatica/AvaticaConnectionTest.java b/avatica/core/src/test/java/org/apache/calcite/avatica/AvaticaConnectionTest.java
deleted file mode 100644
index b1c003f..0000000
--- a/avatica/core/src/test/java/org/apache/calcite/avatica/AvaticaConnectionTest.java
+++ /dev/null
@@ -1,60 +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.calcite.avatica;
-
-import org.junit.Assert;
-import org.junit.Test;
-import org.mockito.Mockito;
-
-import java.util.Properties;
-
-/**
- * Tests for AvaticaConnection
- */
-public class AvaticaConnectionTest {
-
- @Test
- public void testNumExecuteRetries() {
- AvaticaConnection statement = Mockito.mock(AvaticaConnection.class);
-
- Mockito.when(statement.getNumStatementRetries(Mockito.nullable(Properties.class)))
- .thenCallRealMethod();
-
- // Bad argument should throw an exception
- try {
- statement.getNumStatementRetries(null);
- Assert.fail("Calling getNumStatementRetries with a null object should throw an exception");
- } catch (NullPointerException e) {
- // Pass
- }
-
- Properties props = new Properties();
-
- // Verify the default value
- Assert.assertEquals(Long.valueOf(AvaticaConnection.NUM_EXECUTE_RETRIES_DEFAULT).longValue(),
- statement.getNumStatementRetries(props));
-
- // Set a non-default value
- props.setProperty(AvaticaConnection.NUM_EXECUTE_RETRIES_KEY, "10");
-
- // Verify that we observe that value
- Assert.assertEquals(10, statement.getNumStatementRetries(props));
- }
-
-}
-
-// End AvaticaConnectionTest.java
http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/fc7b26c8/avatica/core/src/test/java/org/apache/calcite/avatica/AvaticaResultSetConversionsTest.java
----------------------------------------------------------------------
diff --git a/avatica/core/src/test/java/org/apache/calcite/avatica/AvaticaResultSetConversionsTest.java b/avatica/core/src/test/java/org/apache/calcite/avatica/AvaticaResultSetConversionsTest.java
deleted file mode 100644
index bf3047f..0000000
--- a/avatica/core/src/test/java/org/apache/calcite/avatica/AvaticaResultSetConversionsTest.java
+++ /dev/null
@@ -1,1100 +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.calcite.avatica;
-
-import org.apache.calcite.avatica.ColumnMetaData.AvaticaType;
-import org.apache.calcite.avatica.remote.TypedValue;
-import org.apache.calcite.avatica.util.DateTimeUtils;
-
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-import org.junit.runners.Parameterized.Parameters;
-
-import java.math.BigDecimal;
-import java.sql.Connection;
-import java.sql.DatabaseMetaData;
-import java.sql.Date;
-import java.sql.ResultSet;
-import java.sql.SQLDataException;
-import java.sql.SQLException;
-import java.sql.Time;
-import java.sql.Timestamp;
-import java.sql.Types;
-import java.util.Arrays;
-import java.util.Calendar;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-
-import static org.hamcrest.CoreMatchers.isA;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertThat;
-import static org.junit.Assert.fail;
-
-/**
- * Test {@code ResultSet#getXXX} conversions.
- */
-@RunWith(Parameterized.class)
-public class AvaticaResultSetConversionsTest {
- /**
- * A fake test driver for test.
- */
- private static final class TestDriver extends UnregisteredDriver {
-
- @Override protected DriverVersion createDriverVersion() {
- return new DriverVersion("test", "test 0.0.0", "test", "test 0.0.0", false, 0, 0, 0, 0);
- }
-
- @Override protected String getConnectStringPrefix() {
- return "jdbc:test";
- }
-
- @Override public Meta createMeta(AvaticaConnection connection) {
- return new TestMetaImpl(connection);
- }
- }
-
- /**
- * Fake meta implementation for test driver.
- */
- public static final class TestMetaImpl extends MetaImpl {
- public TestMetaImpl(AvaticaConnection connection) {
- super(connection);
- }
-
- @Override public StatementHandle prepare(ConnectionHandle ch, String sql, long maxRowCount) {
- throw new UnsupportedOperationException();
- }
-
- @SuppressWarnings("deprecation")
- @Override public ExecuteResult prepareAndExecute(StatementHandle h, String sql,
- long maxRowCount, PrepareCallback callback) throws NoSuchStatementException {
- throw new UnsupportedOperationException();
- }
-
- private static ColumnMetaData columnMetaData(String name, int ordinal, AvaticaType type,
- int columnNullable) {
- return new ColumnMetaData(
- ordinal, false, true, false, false,
- columnNullable,
- true, -1, name, name, null,
- 0, 0, null, null, type, true, false, false,
- type.columnClassName());
- }
-
- @Override public ExecuteResult prepareAndExecute(StatementHandle h, String sql,
- long maxRowCount, int maxRowsInFirstFrame, PrepareCallback callback)
- throws NoSuchStatementException {
- assertEquals("SELECT * FROM TABLE", sql);
- List<ColumnMetaData> columns = Arrays.asList(
- columnMetaData("bool", 0,
- ColumnMetaData.scalar(Types.BOOLEAN, "BOOLEAN",
- ColumnMetaData.Rep.PRIMITIVE_BOOLEAN),
- DatabaseMetaData.columnNoNulls),
- columnMetaData("byte", 1,
- ColumnMetaData.scalar(Types.TINYINT, "TINYINT",
- ColumnMetaData.Rep.PRIMITIVE_BYTE),
- DatabaseMetaData.columnNoNulls),
- columnMetaData("short", 2,
- ColumnMetaData.scalar(Types.SMALLINT, "SMALLINT",
- ColumnMetaData.Rep.PRIMITIVE_SHORT),
- DatabaseMetaData.columnNoNulls),
- columnMetaData("int", 3,
- ColumnMetaData.scalar(Types.INTEGER, "INTEGER",
- ColumnMetaData.Rep.PRIMITIVE_INT),
- DatabaseMetaData.columnNoNulls),
- columnMetaData("long", 4,
- ColumnMetaData.scalar(Types.BIGINT, "BIGINT",
- ColumnMetaData.Rep.PRIMITIVE_LONG),
- DatabaseMetaData.columnNoNulls),
- columnMetaData("float", 5,
- ColumnMetaData.scalar(Types.REAL, "REAL",
- ColumnMetaData.Rep.FLOAT),
- DatabaseMetaData.columnNoNulls),
- columnMetaData("double", 6,
- ColumnMetaData.scalar(Types.FLOAT, "FLOAT",
- ColumnMetaData.Rep.DOUBLE),
- DatabaseMetaData.columnNoNulls),
- columnMetaData("string", 7,
- ColumnMetaData.scalar(Types.VARCHAR, "VARCHAR",
- ColumnMetaData.Rep.STRING),
- DatabaseMetaData.columnNoNulls),
- columnMetaData("date", 8,
- ColumnMetaData.scalar(Types.DATE, "DATE",
- ColumnMetaData.Rep.JAVA_SQL_DATE),
- DatabaseMetaData.columnNoNulls),
- columnMetaData("time", 9,
- ColumnMetaData.scalar(Types.TIME, "TIME",
- ColumnMetaData.Rep.JAVA_SQL_TIME),
- DatabaseMetaData.columnNoNulls),
- columnMetaData("timestamp", 10,
- ColumnMetaData.scalar(Types.TIMESTAMP, "TIMESTAMP",
- ColumnMetaData.Rep.JAVA_SQL_TIMESTAMP),
- DatabaseMetaData.columnNoNulls));
-
- List<Object> row = Collections.<Object>singletonList(
- new Object[] {
- true, (byte) 1, (short) 2, 3, 4L, 5.0f, 6.0d, "testvalue",
- new Date(1476130718123L), new Time(1476130718123L),
- new Timestamp(1476130718123L)
- });
-
- CursorFactory factory = CursorFactory.deduce(columns, null);
- Frame frame = new Frame(0, true, row);
-
- Signature signature = Signature.create(columns, sql,
- Collections.<AvaticaParameter>emptyList(), factory, StatementType.SELECT);
- try {
- synchronized (callback.getMonitor()) {
- callback.clear();
- callback.assign(signature, frame, -1);
- }
- callback.execute();
- } catch (SQLException e) {
- throw new RuntimeException();
- }
- MetaResultSet rs = MetaResultSet.create(h.connectionId, 0, false, signature, null);
- return new ExecuteResult(Collections.singletonList(rs));
- }
-
- @Override public ExecuteBatchResult prepareAndExecuteBatch(StatementHandle h,
- List<String> sqlCommands) throws NoSuchStatementException {
- throw new UnsupportedOperationException();
- }
-
- @Override public ExecuteBatchResult executeBatch(StatementHandle h,
- List<List<TypedValue>> parameterValues) throws NoSuchStatementException {
- throw new UnsupportedOperationException();
- }
-
- @Override public Frame fetch(StatementHandle h, long offset, int fetchMaxRowCount)
- throws NoSuchStatementException, MissingResultsException {
- throw new UnsupportedOperationException();
- }
-
- @SuppressWarnings("deprecation")
- @Override public ExecuteResult execute(StatementHandle h, List<TypedValue> parameterValues,
- long maxRowCount) throws NoSuchStatementException {
- throw new UnsupportedOperationException();
- }
-
- @Override public ExecuteResult execute(StatementHandle h, List<TypedValue> parameterValues,
- int maxRowsInFirstFrame) throws NoSuchStatementException {
- throw new UnsupportedOperationException();
- }
-
- @Override public void closeStatement(StatementHandle h) {
- }
-
- @Override public boolean syncResults(StatementHandle sh, QueryState state, long offset)
- throws NoSuchStatementException {
- throw new UnsupportedOperationException();
- }
-
- @Override public void commit(ConnectionHandle ch) {
- throw new UnsupportedOperationException();
- }
-
- @Override public void rollback(ConnectionHandle ch) {
- throw new UnsupportedOperationException();
- }
- }
-
- /**
- * Base accessor test helper
- */
- private static class AccessorTestHelper {
- protected final int ordinal;
-
- protected AccessorTestHelper(int ordinal) {
- this.ordinal = ordinal;
- }
-
- public void testGetString(ResultSet resultSet) throws SQLException {
- resultSet.getString(ordinal);
- }
-
- public void testGetBoolean(ResultSet resultSet) throws SQLException {
- try {
- resultSet.getBoolean(ordinal);
- fail("Was expecting to throw SQLDataException");
- } catch (Exception e) {
- assertThat(e, isA((Class) SQLDataException.class)); // success
- }
- }
-
- public void testGetByte(ResultSet resultSet) throws SQLException {
- try {
- resultSet.getByte(ordinal);
- fail("Was expecting to throw SQLDataException");
- } catch (Exception e) {
- assertThat(e, isA((Class) SQLDataException.class)); // success
- }
- }
-
- public void testGetShort(ResultSet resultSet) throws SQLException {
- try {
- resultSet.getShort(ordinal);
- fail("Was expecting to throw SQLDataException");
- } catch (Exception e) {
- assertThat(e, isA((Class) SQLDataException.class)); // success
- }
- }
-
- public void testGetInt(ResultSet resultSet) throws SQLException {
- try {
- resultSet.getInt(ordinal);
- fail("Was expecting to throw SQLDataException");
- } catch (Exception e) {
- assertThat(e, isA((Class) SQLDataException.class)); // success
- }
- }
-
- public void testGetLong(ResultSet resultSet) throws SQLException {
- try {
- resultSet.getLong(ordinal);
- fail("Was expecting to throw SQLDataException");
- } catch (Exception e) {
- assertThat(e, isA((Class) SQLDataException.class)); // success
- }
- }
-
- public void testGetFloat(ResultSet resultSet) throws SQLException {
- try {
- resultSet.getFloat(ordinal);
- fail("Was expecting to throw SQLDataException");
- } catch (Exception e) {
- assertThat(e, isA((Class) SQLDataException.class)); // success
- }
- }
-
- public void testGetDouble(ResultSet resultSet) throws SQLException {
- try {
- resultSet.getDouble(ordinal);
- fail("Was expecting to throw SQLDataException");
- } catch (Exception e) {
- assertThat(e, isA((Class) SQLDataException.class)); // success
- }
- }
-
- public void testGetDecimal(ResultSet resultSet) throws SQLException {
- try {
- resultSet.getBigDecimal(ordinal);
- fail("Was expecting to throw SQLDataException");
- } catch (Exception e) {
- assertThat(e, isA((Class) SQLDataException.class)); // success
- }
- }
-
- public void testGetBytes(ResultSet resultSet) throws SQLException {
- try {
- resultSet.getBytes(ordinal);
- fail("Was expecting to throw SQLDataException");
- } catch (Exception e) {
- assertThat(e, isA((Class) SQLDataException.class)); // success
- }
- }
-
- public void testGetAsciiStream(ResultSet resultSet) throws SQLException {
- try {
- resultSet.getAsciiStream(ordinal);
- fail("Was expecting to throw SQLDataException");
- } catch (Exception e) {
- assertThat(e, isA((Class) SQLDataException.class)); // success
- }
- }
-
- public void testGetBinaryStream(ResultSet resultSet) throws SQLException {
- try {
- resultSet.getBinaryStream(ordinal);
- fail("Was expecting to throw SQLDataException");
- } catch (Exception e) {
- assertThat(e, isA((Class) SQLDataException.class)); // success
- }
- }
-
- public void testGetObject(ResultSet resultSet) throws SQLException {
- resultSet.getObject(ordinal);
- }
-
- public void testGetCharacterStream(ResultSet resultSet) throws SQLException {
- try {
- resultSet.getCharacterStream(ordinal);
- fail("Was expecting to throw SQLDataException");
- } catch (Exception e) {
- assertThat(e, isA((Class) SQLDataException.class)); // success
- }
- }
-
- public void testGetObject(ResultSet resultSet, Map<String, Class<?>> map) throws SQLException {
- try {
- resultSet.getObject(ordinal, map);
- fail("Was expecting to throw SQLDataException");
- } catch (Exception e) {
- assertThat(e, isA((Class) SQLDataException.class)); // success
- }
- }
-
- public void testGetRef(ResultSet resultSet) throws SQLException {
- try {
- resultSet.getRef(ordinal);
- fail("Was expecting to throw SQLDataException");
- } catch (Exception e) {
- assertThat(e, isA((Class) SQLDataException.class)); // success
- }
- }
-
- public void testGetBlob(ResultSet resultSet) throws SQLException {
- try {
- resultSet.getBlob(ordinal);
- fail("Was expecting to throw SQLDataException");
- } catch (Exception e) {
- assertThat(e, isA((Class) SQLDataException.class)); // success
- }
- }
-
- public void testGetClob(ResultSet resultSet) throws SQLException {
- try {
- resultSet.getBlob(ordinal);
- fail("Was expecting to throw SQLDataException");
- } catch (Exception e) {
- assertThat(e, isA((Class) SQLDataException.class)); // success
- }
- }
-
- public void testGetArray(ResultSet resultSet) throws SQLException {
- try {
- resultSet.getArray(ordinal);
- fail("Was expecting to throw SQLDataException");
- } catch (Exception e) {
- assertThat(e, isA((Class) SQLDataException.class)); // success
- }
- }
-
- public void testGetDate(ResultSet resultSet, Calendar calendar) throws SQLException {
- try {
- resultSet.getDate(ordinal, calendar);
- fail("Was expecting to throw SQLDataException");
- } catch (Exception e) {
- assertThat(e, isA((Class) SQLDataException.class)); // success
- }
- }
-
- public void testGetTime(ResultSet resultSet, Calendar calendar) throws SQLException {
- try {
- resultSet.getTime(ordinal, calendar);
- fail("Was expecting to throw SQLDataException");
- } catch (Exception e) {
- assertThat(e, isA((Class) SQLDataException.class)); // success
- }
- }
-
- public void testGetTimestamp(ResultSet resultSet, Calendar calendar) throws SQLException {
- try {
- resultSet.getTimestamp(ordinal, calendar);
- fail("Was expecting to throw SQLDataException");
- } catch (Exception e) {
- assertThat(e, isA((Class) SQLDataException.class)); // success
- }
- }
-
- public void getURL(ResultSet resultSet) throws SQLException {
- try {
- resultSet.getURL(ordinal);
- fail("Was expecting to throw SQLDataException");
- } catch (Exception e) {
- assertThat(e, isA((Class) SQLDataException.class)); // success
- }
- }
-
- public void testGetNClob(ResultSet resultSet) throws SQLException {
- try {
- resultSet.getNClob(ordinal);
- fail("Was expecting to throw SQLDataException");
- } catch (Exception e) {
- assertThat(e, isA((Class) SQLDataException.class)); // success
- }
- }
-
- public void testGetSQLXML(ResultSet resultSet) throws SQLException {
- try {
- resultSet.getSQLXML(ordinal);
- fail("Was expecting to throw SQLDataException");
- } catch (Exception e) {
- assertThat(e, isA((Class) SQLDataException.class)); // success
- }
- }
-
- public void testGetNString(ResultSet resultSet) throws SQLException {
- try {
- resultSet.getNString(ordinal);
- fail("Was expecting to throw SQLDataException");
- } catch (Exception e) {
- assertThat(e, isA((Class) SQLDataException.class)); // success
- }
- }
-
- public void testGetNCharacterStream(ResultSet resultSet) throws SQLException {
- try {
- resultSet.getNCharacterStream(ordinal);
- fail("Was expecting to throw SQLDataException");
- } catch (Exception e) {
- assertThat(e, isA((Class) SQLDataException.class)); // success
- }
- }
- }
-
- /**
- * accessor test helper for the boolean column
- */
- private static final class BooleanAccesorTestHelper extends AccessorTestHelper {
- private BooleanAccesorTestHelper(int ordinal) {
- super(ordinal);
- }
-
- @Override public void testGetString(ResultSet resultSet) throws SQLException {
- assertEquals("true", resultSet.getString(ordinal));
- }
-
- @Override public void testGetBoolean(ResultSet resultSet) throws SQLException {
- assertEquals(true, resultSet.getBoolean(ordinal));
- }
-
- @Override public void testGetByte(ResultSet resultSet) throws SQLException {
- assertEquals((byte) 1, resultSet.getByte(ordinal));
- }
-
- @Override public void testGetShort(ResultSet resultSet) throws SQLException {
- assertEquals((short) 1, resultSet.getShort(ordinal));
- }
-
- @Override public void testGetInt(ResultSet resultSet) throws SQLException {
- assertEquals(1, resultSet.getInt(ordinal));
- }
-
- @Override public void testGetLong(ResultSet resultSet) throws SQLException {
- assertEquals(1L, resultSet.getLong(ordinal));
- }
-
- @Override public void testGetDecimal(ResultSet resultSet) throws SQLException {
- assertEquals(BigDecimal.ONE, resultSet.getBigDecimal(ordinal));
- }
-
- @Override public void testGetFloat(ResultSet resultSet) throws SQLException {
- assertEquals(1.0f, resultSet.getFloat(ordinal), 0);
- }
-
- @Override public void testGetDouble(ResultSet resultSet) throws SQLException {
- assertEquals(1.0d, resultSet.getDouble(ordinal), 0);
- }
- }
-
- /**
- * accessor test helper for the byte column
- */
- private static final class ByteAccesorTestHelper extends AccessorTestHelper {
- private ByteAccesorTestHelper(int ordinal) {
- super(ordinal);
- }
-
- @Override public void testGetString(ResultSet resultSet) throws SQLException {
- assertEquals("1", resultSet.getString(ordinal));
- }
-
- @Override public void testGetBoolean(ResultSet resultSet) throws SQLException {
- assertEquals(true, resultSet.getBoolean(ordinal));
- }
-
- @Override public void testGetByte(ResultSet resultSet) throws SQLException {
- assertEquals((byte) 1, resultSet.getByte(ordinal));
- }
-
- @Override public void testGetShort(ResultSet resultSet) throws SQLException {
- assertEquals((short) 1, resultSet.getShort(ordinal));
- }
-
- @Override public void testGetInt(ResultSet resultSet) throws SQLException {
- assertEquals(1, resultSet.getInt(ordinal));
- }
-
- @Override public void testGetLong(ResultSet resultSet) throws SQLException {
- assertEquals(1L, resultSet.getLong(ordinal));
- }
-
- @Override public void testGetDecimal(ResultSet resultSet) throws SQLException {
- assertEquals(BigDecimal.ONE, resultSet.getBigDecimal(ordinal));
- }
-
- @Override public void testGetFloat(ResultSet resultSet) throws SQLException {
- assertEquals(1.0f, resultSet.getFloat(ordinal), 0);
- }
-
- @Override public void testGetDouble(ResultSet resultSet) throws SQLException {
- assertEquals(1.0d, resultSet.getDouble(ordinal), 0);
- }
- }
-
- /**
- * accessor test helper for the short column
- */
- private static final class ShortAccessorTestHelper extends AccessorTestHelper {
- private ShortAccessorTestHelper(int ordinal) {
- super(ordinal);
- }
-
- @Override public void testGetString(ResultSet resultSet) throws SQLException {
- assertEquals("2", resultSet.getString(ordinal));
- }
-
- @Override public void testGetBoolean(ResultSet resultSet) throws SQLException {
- assertEquals(true, resultSet.getBoolean(ordinal));
- }
-
- @Override public void testGetByte(ResultSet resultSet) throws SQLException {
- assertEquals((byte) 2, resultSet.getByte(ordinal));
- }
-
- @Override public void testGetShort(ResultSet resultSet) throws SQLException {
- assertEquals((short) 2, resultSet.getShort(ordinal));
- }
-
- @Override public void testGetInt(ResultSet resultSet) throws SQLException {
- assertEquals(2, resultSet.getInt(ordinal));
- }
-
- @Override public void testGetLong(ResultSet resultSet) throws SQLException {
- assertEquals(2L, resultSet.getLong(ordinal));
- }
-
- @Override public void testGetDecimal(ResultSet resultSet) throws SQLException {
- assertEquals(new BigDecimal(2), resultSet.getBigDecimal(ordinal));
- }
-
- @Override public void testGetFloat(ResultSet resultSet) throws SQLException {
- assertEquals(2.0f, resultSet.getFloat(ordinal), 0);
- }
-
- @Override public void testGetDouble(ResultSet resultSet) throws SQLException {
- assertEquals(2.0d, resultSet.getDouble(ordinal), 0);
- }
- }
-
- /**
- * accessor test helper for the int column
- */
- private static final class IntAccessorTestHelper extends AccessorTestHelper {
- private IntAccessorTestHelper(int ordinal) {
- super(ordinal);
- }
-
- @Override public void testGetString(ResultSet resultSet) throws SQLException {
- assertEquals("3", resultSet.getString(ordinal));
- }
-
- @Override public void testGetBoolean(ResultSet resultSet) throws SQLException {
- assertEquals(true, resultSet.getBoolean(ordinal));
- }
-
- @Override public void testGetByte(ResultSet resultSet) throws SQLException {
- assertEquals((byte) 3, resultSet.getByte(ordinal));
- }
-
- @Override public void testGetShort(ResultSet resultSet) throws SQLException {
- assertEquals((short) 3, resultSet.getShort(ordinal));
- }
-
- @Override public void testGetInt(ResultSet resultSet) throws SQLException {
- assertEquals(3, resultSet.getInt(ordinal));
- }
-
- @Override public void testGetLong(ResultSet resultSet) throws SQLException {
- assertEquals(3L, resultSet.getLong(ordinal));
- }
-
- @Override public void testGetDecimal(ResultSet resultSet) throws SQLException {
- assertEquals(new BigDecimal(3), resultSet.getBigDecimal(ordinal));
- }
-
- @Override public void testGetFloat(ResultSet resultSet) throws SQLException {
- assertEquals(3.0f, resultSet.getFloat(ordinal), 0);
- }
-
- @Override public void testGetDouble(ResultSet resultSet) throws SQLException {
- assertEquals(3.0d, resultSet.getDouble(ordinal), 0);
- }
- }
-
- /**
- * accessor test helper for the long column
- */
- private static final class LongAccessorTestHelper extends AccessorTestHelper {
- private LongAccessorTestHelper(int ordinal) {
- super(ordinal);
- }
-
- @Override public void testGetString(ResultSet resultSet) throws SQLException {
- assertEquals("4", resultSet.getString(ordinal));
- }
-
- @Override public void testGetBoolean(ResultSet resultSet) throws SQLException {
- assertEquals(true, resultSet.getBoolean(ordinal));
- }
-
- @Override public void testGetByte(ResultSet resultSet) throws SQLException {
- assertEquals((byte) 4, resultSet.getByte(ordinal));
- }
-
- @Override public void testGetShort(ResultSet resultSet) throws SQLException {
- assertEquals((short) 4, resultSet.getShort(ordinal));
- }
-
- @Override public void testGetInt(ResultSet resultSet) throws SQLException {
- assertEquals(4, resultSet.getInt(ordinal));
- }
-
- @Override public void testGetLong(ResultSet resultSet) throws SQLException {
- assertEquals(4L, resultSet.getLong(ordinal));
- }
-
- @Override public void testGetDecimal(ResultSet resultSet) throws SQLException {
- assertEquals(new BigDecimal(4), resultSet.getBigDecimal(ordinal));
- }
-
- @Override public void testGetFloat(ResultSet resultSet) throws SQLException {
- assertEquals(4.0f, resultSet.getFloat(ordinal), 0);
- }
-
- @Override public void testGetDouble(ResultSet resultSet) throws SQLException {
- assertEquals(4.0d, resultSet.getDouble(ordinal), 0);
- }
- }
-
- /**
- * accessor test helper for the float column
- */
- private static final class FloatAccessorTestHelper extends AccessorTestHelper {
- private FloatAccessorTestHelper(int ordinal) {
- super(ordinal);
- }
-
- @Override public void testGetString(ResultSet resultSet) throws SQLException {
- assertEquals("5.0", resultSet.getString(ordinal));
- }
-
- @Override public void testGetBoolean(ResultSet resultSet) throws SQLException {
- assertEquals(true, resultSet.getBoolean(ordinal));
- }
-
- @Override public void testGetByte(ResultSet resultSet) throws SQLException {
- assertEquals((byte) 5, resultSet.getByte(ordinal));
- }
-
- @Override public void testGetShort(ResultSet resultSet) throws SQLException {
- assertEquals((short) 5, resultSet.getShort(ordinal));
- }
-
- @Override public void testGetInt(ResultSet resultSet) throws SQLException {
- assertEquals(5, resultSet.getInt(ordinal));
- }
-
- @Override public void testGetLong(ResultSet resultSet) throws SQLException {
- assertEquals(5L, resultSet.getLong(ordinal));
- }
-
- @Override public void testGetDecimal(ResultSet resultSet) throws SQLException {
- assertEquals(new BigDecimal(5).setScale(1), resultSet.getBigDecimal(ordinal));
- }
-
- @Override public void testGetFloat(ResultSet resultSet) throws SQLException {
- assertEquals(5.0f, resultSet.getFloat(ordinal), 0);
- }
-
- @Override public void testGetDouble(ResultSet resultSet) throws SQLException {
- assertEquals(5.0d, resultSet.getDouble(ordinal), 0);
- }
- }
-
- /**
- * accessor test helper for the double column
- */
- private static final class DoubleAccessorTestHelper extends AccessorTestHelper {
- private DoubleAccessorTestHelper(int ordinal) {
- super(ordinal);
- }
-
- @Override public void testGetString(ResultSet resultSet) throws SQLException {
- assertEquals("6.0", resultSet.getString(ordinal));
- }
-
- @Override public void testGetBoolean(ResultSet resultSet) throws SQLException {
- assertEquals(true, resultSet.getBoolean(ordinal));
- }
-
- @Override public void testGetByte(ResultSet resultSet) throws SQLException {
- assertEquals((byte) 6, resultSet.getByte(ordinal));
- }
-
- @Override public void testGetShort(ResultSet resultSet) throws SQLException {
- assertEquals((short) 6, resultSet.getShort(ordinal));
- }
-
- @Override public void testGetInt(ResultSet resultSet) throws SQLException {
- assertEquals(6, resultSet.getInt(ordinal));
- }
-
- @Override public void testGetLong(ResultSet resultSet) throws SQLException {
- assertEquals(6L, resultSet.getLong(ordinal));
- }
-
- @Override public void testGetDecimal(ResultSet resultSet) throws SQLException {
- assertEquals(new BigDecimal(6).setScale(1), resultSet.getBigDecimal(ordinal));
- }
-
- @Override public void testGetFloat(ResultSet resultSet) throws SQLException {
- assertEquals(6.0f, resultSet.getFloat(ordinal), 0);
- }
-
- @Override public void testGetDouble(ResultSet resultSet) throws SQLException {
- assertEquals(6.0d, resultSet.getDouble(ordinal), 0);
- }
- }
-
- /**
- * accessor test helper for the date column
- */
- private static final class DateAccessorTestHelper extends AccessorTestHelper {
- private DateAccessorTestHelper(int ordinal) {
- super(ordinal);
- }
-
- @Override public void testGetString(ResultSet resultSet) throws SQLException {
- assertEquals("2016-10-10", resultSet.getString(ordinal));
- }
-
- @Override public void testGetBoolean(ResultSet resultSet) throws SQLException {
- assertEquals(true, resultSet.getBoolean(ordinal));
- }
-
- @Override public void testGetByte(ResultSet resultSet) throws SQLException {
- assertEquals((byte) -68, resultSet.getByte(ordinal));
- }
-
- @Override public void testGetShort(ResultSet resultSet) throws SQLException {
- assertEquals((short) 17084, resultSet.getShort(ordinal));
- }
-
- @Override public void testGetInt(ResultSet resultSet) throws SQLException {
- assertEquals(17084, resultSet.getInt(ordinal));
- }
-
- @Override public void testGetLong(ResultSet resultSet) throws SQLException {
- assertEquals(17084, resultSet.getLong(ordinal));
- }
-
- @Override public void testGetDate(ResultSet resultSet, Calendar calendar) throws SQLException {
- assertEquals(new Date(1476130718123L), resultSet.getDate(ordinal, calendar));
- }
- }
-
- /**
- * accessor test helper for the time column
- */
- private static final class TimeAccessorTestHelper extends AccessorTestHelper {
- private TimeAccessorTestHelper(int ordinal) {
- super(ordinal);
- }
-
- @Override public void testGetString(ResultSet resultSet) throws SQLException {
- assertEquals("20:18:38", resultSet.getString(ordinal));
- }
-
- @Override public void testGetBoolean(ResultSet resultSet) throws SQLException {
- assertEquals(true, resultSet.getBoolean(ordinal));
- }
-
- @Override public void testGetByte(ResultSet resultSet) throws SQLException {
- assertEquals((byte) -85, resultSet.getByte(ordinal));
- }
-
- @Override public void testGetShort(ResultSet resultSet) throws SQLException {
- assertEquals((short) -20053, resultSet.getShort(ordinal));
- }
-
- @Override public void testGetInt(ResultSet resultSet) throws SQLException {
- assertEquals(73118123, resultSet.getInt(ordinal));
- }
-
- @Override public void testGetLong(ResultSet resultSet) throws SQLException {
- assertEquals(73118123, resultSet.getLong(ordinal));
- }
-
- @Override public void testGetTime(ResultSet resultSet, Calendar calendar) throws SQLException {
- assertEquals(new Time(1476130718123L), resultSet.getTime(ordinal, calendar));
- }
- }
-
- /**
- * accessor test helper for the timestamp column
- */
- private static final class TimestampAccessorTestHelper extends AccessorTestHelper {
- private TimestampAccessorTestHelper(int ordinal) {
- super(ordinal);
- }
-
- @Override public void testGetString(ResultSet resultSet) throws SQLException {
- assertEquals("2016-10-10 20:18:38", resultSet.getString(ordinal));
- }
-
- @Override public void testGetBoolean(ResultSet resultSet) throws SQLException {
- assertEquals(true, resultSet.getBoolean(ordinal));
- }
-
- @Override public void testGetByte(ResultSet resultSet) throws SQLException {
- assertEquals((byte) -85, resultSet.getByte(ordinal));
- }
-
- @Override public void testGetShort(ResultSet resultSet) throws SQLException {
- assertEquals((short) 16811, resultSet.getShort(ordinal));
- }
-
- @Override public void testGetInt(ResultSet resultSet) throws SQLException {
- assertEquals(-1338031701, resultSet.getInt(ordinal));
- }
-
- @Override public void testGetLong(ResultSet resultSet) throws SQLException {
- assertEquals(1476130718123L, resultSet.getLong(ordinal));
- }
-
- @Override public void testGetDate(ResultSet resultSet, Calendar calendar) throws SQLException {
- assertEquals(new Date(1476130718123L), resultSet.getDate(ordinal, calendar));
- }
-
- @Override public void testGetTime(ResultSet resultSet, Calendar calendar) throws SQLException {
- // how come both are different? DST...
- //assertEquals(new Time(1476130718123L), resultSet.getTime(ordinal, calendar));
- assertEquals(new Time(73118123L), resultSet.getTime(ordinal, calendar));
- }
-
- @Override public void testGetTimestamp(ResultSet resultSet, Calendar calendar)
- throws SQLException {
- assertEquals(new Timestamp(1476130718123L), resultSet.getTimestamp(ordinal, calendar));
- }
- }
-
- /**
- * accessor test helper for the string column
- */
- private static final class StringAccessorTestHelper extends AccessorTestHelper {
- private StringAccessorTestHelper(int ordinal) {
- super(ordinal);
- }
-
- @Override public void testGetString(ResultSet resultSet) throws SQLException {
- assertEquals("testvalue", resultSet.getString(ordinal));
- }
- }
-
- private static final Calendar DEFAULT_CALENDAR = DateTimeUtils.calendar();
-
- private static Connection connection = null;
- private static ResultSet resultSet = null;
-
- @BeforeClass
- public static void executeQuery() throws SQLException {
- Properties properties = new Properties();
- properties.setProperty("timeZone", "GMT");
-
- connection = new TestDriver().connect("jdbc:test", properties);
- resultSet = connection.createStatement().executeQuery("SELECT * FROM TABLE");
- resultSet.next(); // move to the first record
- }
-
- @AfterClass
- public static void cleanupQuery() throws SQLException {
- if (resultSet != null) {
- resultSet.close();
- }
-
- if (connection != null) {
- connection.close();
- }
- }
-
- @Parameters
- public static Collection<AccessorTestHelper> data() {
- return Arrays.<AccessorTestHelper>asList(
- new BooleanAccesorTestHelper(1),
- new ByteAccesorTestHelper(2),
- new ShortAccessorTestHelper(3),
- new IntAccessorTestHelper(4),
- new LongAccessorTestHelper(5),
- new FloatAccessorTestHelper(6),
- new DoubleAccessorTestHelper(7),
- new StringAccessorTestHelper(8),
- new DateAccessorTestHelper(9),
- new TimeAccessorTestHelper(10),
- new TimestampAccessorTestHelper(11));
- }
-
- private final AccessorTestHelper testHelper;
-
- public AvaticaResultSetConversionsTest(AccessorTestHelper testHelper) {
- this.testHelper = testHelper;
- }
-
- @Test
- public void testGetString() throws SQLException {
- testHelper.testGetString(resultSet);
- }
-
- @Test
- public void testGetBoolean() throws SQLException {
- testHelper.testGetBoolean(resultSet);
- }
-
- @Test
- public void testGetByte() throws SQLException {
- testHelper.testGetByte(resultSet);
- }
-
- @Test
- public void testGetShort() throws SQLException {
- testHelper.testGetShort(resultSet);
- }
-
- @Test
- public void testGetInt() throws SQLException {
- testHelper.testGetInt(resultSet);
- }
-
- @Test
- public void testGetLong() throws SQLException {
- testHelper.testGetLong(resultSet);
- }
-
- @Test
- public void testGetFloat() throws SQLException {
- testHelper.testGetFloat(resultSet);
- }
-
- @Test
- public void testGetDouble() throws SQLException {
- testHelper.testGetDouble(resultSet);
- }
-
- @Test
- public void testGetDecimal() throws SQLException {
- testHelper.testGetDecimal(resultSet);
- }
-
- @Test
- public void testGetBytes() throws SQLException {
- testHelper.testGetBytes(resultSet);
- }
-
- @Test
- public void testGetAsciiStream() throws SQLException {
- testHelper.testGetAsciiStream(resultSet);
- }
-
- @Test
- public void testGetBinaryStream() throws SQLException {
- testHelper.testGetBinaryStream(resultSet);
- }
-
- @Test
- public void testGetObject() throws SQLException {
- testHelper.testGetObject(resultSet);
- }
-
- @Test
- public void testGetCharacterStream() throws SQLException {
- testHelper.testGetCharacterStream(resultSet);
- }
-
- @Test
- public void testGetObjectWithMap() throws SQLException {
- testHelper.testGetObject(resultSet, Collections.<String, Class<?>>emptyMap());
- }
-
- @Test
- public void testGetRef() throws SQLException {
- testHelper.testGetRef(resultSet);
- }
-
- @Test
- public void testGetBlob() throws SQLException {
- testHelper.testGetBlob(resultSet);
- }
-
- @Test
- public void testGetClob() throws SQLException {
- testHelper.testGetClob(resultSet);
- }
-
- @Test
- public void testGetArray() throws SQLException {
- testHelper.testGetArray(resultSet);
- }
-
- @Test
- public void testGetDate() throws SQLException {
- testHelper.testGetDate(resultSet, DEFAULT_CALENDAR);
- }
-
- @Test
- public void testGetTime() throws SQLException {
- testHelper.testGetTime(resultSet, DEFAULT_CALENDAR);
- }
-
- @Test
- public void testGetTimestamp() throws SQLException {
- testHelper.testGetTimestamp(resultSet, DEFAULT_CALENDAR);
- }
-
- @Test
- public void getURL() throws SQLException {
- testHelper.getURL(resultSet);
- }
-
- @Test
- public void testGetNClob() throws SQLException {
- testHelper.testGetNClob(resultSet);
- }
-
- @Test
- public void testGetSQLXML() throws SQLException {
- testHelper.testGetSQLXML(resultSet);
- }
-
- @Test
- public void testGetNString() throws SQLException {
- testHelper.testGetNString(resultSet);
- }
-
- @Test
- public void testGetNCharacterStream() throws SQLException {
- testHelper.testGetNCharacterStream(resultSet);
- }
-}
-
-// End AvaticaResultSetConversionsTest.java
http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/fc7b26c8/avatica/core/src/test/java/org/apache/calcite/avatica/AvaticaStatementTest.java
----------------------------------------------------------------------
diff --git a/avatica/core/src/test/java/org/apache/calcite/avatica/AvaticaStatementTest.java b/avatica/core/src/test/java/org/apache/calcite/avatica/AvaticaStatementTest.java
deleted file mode 100644
index 5f6b56a..0000000
--- a/avatica/core/src/test/java/org/apache/calcite/avatica/AvaticaStatementTest.java
+++ /dev/null
@@ -1,51 +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.calcite.avatica;
-
-import org.junit.Before;
-import org.junit.Test;
-
-import java.sql.SQLException;
-
-import static org.junit.Assert.assertArrayEquals;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-/**
- * Test class for AvaticaStatement
- */
-public class AvaticaStatementTest {
-
- private AvaticaStatement statement;
-
- @Before public void setup() {
- statement = mock(AvaticaStatement.class);
- }
-
- @Test public void testUpdateCounts() throws SQLException {
- long[] longValues = new long[] {-1, -3, 1, 5, ((long) Integer.MAX_VALUE) + 1};
- int[] intValues = new int[] {-1, -3, 1, 5, Integer.MAX_VALUE};
- when(statement.executeBatch()).thenCallRealMethod();
- when(statement.executeLargeBatch()).thenCallRealMethod();
- when(statement.executeBatchInternal()).thenReturn(longValues);
-
- assertArrayEquals(intValues, statement.executeBatch());
- assertArrayEquals(longValues, statement.executeLargeBatch());
- }
-}
-
-// End AvaticaStatementTest.java
http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/fc7b26c8/avatica/core/src/test/java/org/apache/calcite/avatica/ConnectionConfigImplTest.java
----------------------------------------------------------------------
diff --git a/avatica/core/src/test/java/org/apache/calcite/avatica/ConnectionConfigImplTest.java b/avatica/core/src/test/java/org/apache/calcite/avatica/ConnectionConfigImplTest.java
deleted file mode 100644
index bbe30e1..0000000
--- a/avatica/core/src/test/java/org/apache/calcite/avatica/ConnectionConfigImplTest.java
+++ /dev/null
@@ -1,50 +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.calcite.avatica;
-
-import org.junit.Test;
-
-import java.util.Properties;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-
-/**
- * Test class for {@link ConnectionConfigImpl}.
- */
-public class ConnectionConfigImplTest {
-
- @Test public void testTrustStore() {
- final String truststore = "/my/truststore.jks";
- final String pw = "supremelysecret";
- Properties props = new Properties();
- props.setProperty(BuiltInConnectionProperty.TRUSTSTORE.name(), truststore);
- props.setProperty(BuiltInConnectionProperty.TRUSTSTORE_PASSWORD.name(), pw);
- ConnectionConfigImpl config = new ConnectionConfigImpl(props);
- assertEquals(truststore, config.truststore().getAbsolutePath());
- assertEquals(pw, config.truststorePassword());
- }
-
- @Test public void testNoTruststore() {
- Properties props = new Properties();
- ConnectionConfigImpl config = new ConnectionConfigImpl(props);
- assertNull(config.truststore());
- assertNull(config.truststorePassword());
- }
-}
-
-// End ConnectionConfigImplTest.java
http://git-wip-us.apache.org/repos/asf/calcite-avatica/blob/fc7b26c8/avatica/core/src/test/java/org/apache/calcite/avatica/FrameTest.java
----------------------------------------------------------------------
diff --git a/avatica/core/src/test/java/org/apache/calcite/avatica/FrameTest.java b/avatica/core/src/test/java/org/apache/calcite/avatica/FrameTest.java
deleted file mode 100644
index e17bf92..0000000
--- a/avatica/core/src/test/java/org/apache/calcite/avatica/FrameTest.java
+++ /dev/null
@@ -1,211 +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.calcite.avatica;
-
-import org.apache.calcite.avatica.Meta.Frame;
-import org.apache.calcite.avatica.proto.Common;
-import org.apache.calcite.avatica.proto.Common.ColumnValue;
-import org.apache.calcite.avatica.proto.Common.TypedValue;
-
-import org.junit.Test;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Date;
-import java.util.Iterator;
-import java.util.List;
-
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-/**
- * Tests serialization of {@link Frame}.
- */
-public class FrameTest {
-
- private static final TypedValue NUMBER_VALUE = TypedValue.newBuilder().setNumberValue(1)
- .setType(Common.Rep.LONG).build();
-
- private void serializeAndTestEquality(Frame frame) {
- Frame frameCopy = Frame.fromProto(frame.toProto());
-
- assertEquals(frame.done, frameCopy.done);
- assertEquals(frame.offset, frameCopy.offset);
-
- Iterable<Object> origRows = frame.rows;
- Iterable<Object> copiedRows = frameCopy.rows;
-
- assertEquals("Expected rows to both be null, or both be non-null",
- origRows == null, copiedRows == null);
-
- Iterator<Object> origIter = origRows.iterator();
- Iterator<Object> copiedIter = copiedRows.iterator();
- while (origIter.hasNext() && copiedIter.hasNext()) {
- Object orig = origIter.next();
- Object copy = copiedIter.next();
-
- assertEquals(orig == null, copy == null);
-
- // This is goofy, but it seems like an Array comes from the JDBC implementation but then
- // the resulting Frame has a List to support the Avatica typed Accessors
- assertEquals(Object[].class, orig.getClass());
- assertTrue("Expected List but got " + copy.getClass(), copy instanceof List);
-
- @SuppressWarnings("unchecked")
- List<Object> copyList = (List<Object>) copy;
-
- assertArrayEquals((Object[]) orig, copyList.toArray(new Object[0]));
- }
-
- assertEquals(origIter.hasNext(), copiedIter.hasNext());
- }
-
- @Test
- public void testEmpty() {
- serializeAndTestEquality(Frame.EMPTY);
- }
-
- @Test
- public void testSingleRow() {
- ArrayList<Object> rows = new ArrayList<>();
- rows.add(new Object[] {"string", Integer.MAX_VALUE, new Date().getTime()});
-
- Frame singleRow = new Frame(0, true, rows);
-
- serializeAndTestEquality(singleRow);
- }
-
- @Test
- public void testMultipleRows() {
- ArrayList<Object> rows = new ArrayList<>();
- rows.add(new Object[] {"string", Integer.MAX_VALUE, new Date().getTime()});
- rows.add(new Object[] {"gnirts", 0, Long.MIN_VALUE});
- rows.add(new Object[] {"", null, Long.MAX_VALUE});
-
- Frame singleRow = new Frame(0, true, rows);
-
- serializeAndTestEquality(singleRow);
- }
-
- @Test public void testMalformedColumnValue() {
- // Invalid ColumnValue: has an array and scalar
- final ColumnValue bothAttributesColumnValue = ColumnValue.newBuilder().setHasArrayValue(true)
- .setScalarValue(NUMBER_VALUE).build();
- // Note omission of setScalarValue(TypedValue).
- final ColumnValue neitherAttributeColumnValue = ColumnValue.newBuilder().setHasArrayValue(false)
- .build();
-
- try {
- Frame.validateColumnValue(bothAttributesColumnValue);
- fail("Validating the ColumnValue should have failed as it has an array and scalar");
- } catch (IllegalArgumentException e) {
- // Pass
- }
-
- try {
- Frame.validateColumnValue(neitherAttributeColumnValue);
- fail("Validating the ColumnValue should have failed as it has neither an array nor scalar");
- } catch (IllegalArgumentException e) {
- // Pass
- }
- }
-
- @Test public void testColumnValueBackwardsCompatibility() {
- // 1
- final ColumnValue oldStyleScalarValue = ColumnValue.newBuilder().addValue(NUMBER_VALUE).build();
- // [1, 1]
- final ColumnValue oldStyleArrayValue = ColumnValue.newBuilder().addValue(NUMBER_VALUE)
- .addValue(NUMBER_VALUE).build();
-
- assertFalse(Frame.isNewStyleColumn(oldStyleScalarValue));
- assertFalse(Frame.isNewStyleColumn(oldStyleArrayValue));
-
- Object scalar = Frame.parseOldStyleColumn(oldStyleScalarValue);
- assertEquals(1L, scalar);
-
- Object array = Frame.parseOldStyleColumn(oldStyleArrayValue);
- assertEquals(Arrays.asList(1L, 1L), array);
- }
-
- @Test public void testColumnValueParsing() {
- // 1
- final ColumnValue scalarValue = ColumnValue.newBuilder().setScalarValue(NUMBER_VALUE).build();
- // [1, 1]
- final ColumnValue arrayValue = ColumnValue.newBuilder().addArrayValue(NUMBER_VALUE)
- .addArrayValue(NUMBER_VALUE).setHasArrayValue(true).build();
-
- assertTrue(Frame.isNewStyleColumn(scalarValue));
- assertTrue(Frame.isNewStyleColumn(arrayValue));
-
- Object scalar = Frame.parseColumn(scalarValue);
- assertEquals(1L, scalar);
-
- Object array = Frame.parseColumn(arrayValue);
- assertEquals(Arrays.asList(1L, 1L), array);
- }
-
- @Test public void testDeprecatedValueAttributeForScalars() {
- // Create a row with schema: [VARCHAR, INTEGER, DATE]
- List<Object> rows = Collections.<Object>singletonList(new Object[] {"string", Integer.MAX_VALUE,
- new Date().getTime()});
- Meta.Frame frame = Meta.Frame.create(0, true, rows);
- // Convert it to a protobuf
- Common.Frame protoFrame = frame.toProto();
- assertEquals(1, protoFrame.getRowsCount());
- // Get that row we created
- Common.Row protoRow = protoFrame.getRows(0);
- // One row has many columns
- List<Common.ColumnValue> protoColumns = protoRow.getValueList();
- assertEquals(3, protoColumns.size());
- // Verify that the scalar value is also present in the deprecated values attributes.
- List<Common.TypedValue> deprecatedValues = protoColumns.get(0).getValueList();
- assertEquals(1, deprecatedValues.size());
- Common.TypedValue scalarValue = protoColumns.get(0).getScalarValue();
- assertEquals(deprecatedValues.get(0), scalarValue);
- }
-
- @Test public void testDeprecatedValueAttributeForArrays() {
- // Create a row with schema: [VARCHAR, ARRAY]
- List<Object> rows = Collections.<Object>singletonList(new Object[] {"string",
- Arrays.asList(1, 2, 3)});
- Meta.Frame frame = Meta.Frame.create(0, true, rows);
- // Convert it to a protobuf
- Common.Frame protoFrame = frame.toProto();
- assertEquals(1, protoFrame.getRowsCount());
- // Get that row we created
- Common.Row protoRow = protoFrame.getRows(0);
- // One row has many columns
- List<Common.ColumnValue> protoColumns = protoRow.getValueList();
- // We should have two columns
- assertEquals(2, protoColumns.size());
- // Fetch the ARRAY column
- Common.ColumnValue protoColumn = protoColumns.get(1);
- // We should have the 3 ARRAY elements in the array_values attribute as well as the deprecated
- // values attribute.
- List<Common.TypedValue> deprecatedValues = protoColumn.getValueList();
- assertEquals(3, deprecatedValues.size());
- assertTrue("Column 2 should have an array_value", protoColumns.get(1).getHasArrayValue());
- List<Common.TypedValue> arrayValues = protoColumns.get(1).getArrayValueList();
- assertEquals(arrayValues, deprecatedValues);
- }
-}
-
-// End FrameTest.java