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 2016/03/07 19:28:18 UTC

[40/59] [partial] calcite git commit: [CALCITE-1078] Detach avatica from the core calcite Maven project

http://git-wip-us.apache.org/repos/asf/calcite/blob/5cee486f/avatica/core/src/main/java/org/apache/calcite/avatica/proto/Common.java
----------------------------------------------------------------------
diff --git a/avatica/core/src/main/java/org/apache/calcite/avatica/proto/Common.java b/avatica/core/src/main/java/org/apache/calcite/avatica/proto/Common.java
new file mode 100644
index 0000000..7d5cef9
--- /dev/null
+++ b/avatica/core/src/main/java/org/apache/calcite/avatica/proto/Common.java
@@ -0,0 +1,17128 @@
+/*
+ * 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.
+ */
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: common.proto
+
+package org.apache.calcite.avatica.proto;
+
+@SuppressWarnings({"unused", "rawtypes"}) public final class Common {
+  private Common() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+  }
+  /**
+   * Protobuf enum {@code StatementType}
+   *
+   * <pre>
+   * Has to be consistent with Meta.StatementType
+   * </pre>
+   */
+  public enum StatementType
+      implements com.google.protobuf.ProtocolMessageEnum {
+    /**
+     * <code>SELECT = 0;</code>
+     */
+    SELECT(0, 0),
+    /**
+     * <code>INSERT = 1;</code>
+     */
+    INSERT(1, 1),
+    /**
+     * <code>UPDATE = 2;</code>
+     */
+    UPDATE(2, 2),
+    /**
+     * <code>DELETE = 3;</code>
+     */
+    DELETE(3, 3),
+    /**
+     * <code>UPSERT = 4;</code>
+     */
+    UPSERT(4, 4),
+    /**
+     * <code>MERGE = 5;</code>
+     */
+    MERGE(5, 5),
+    /**
+     * <code>OTHER_DML = 6;</code>
+     */
+    OTHER_DML(6, 6),
+    /**
+     * <code>CREATE = 7;</code>
+     */
+    CREATE(7, 7),
+    /**
+     * <code>DROP = 8;</code>
+     */
+    DROP(8, 8),
+    /**
+     * <code>ALTER = 9;</code>
+     */
+    ALTER(9, 9),
+    /**
+     * <code>OTHER_DDL = 10;</code>
+     */
+    OTHER_DDL(10, 10),
+    /**
+     * <code>CALL = 11;</code>
+     */
+    CALL(11, 11),
+    UNRECOGNIZED(-1, -1),
+    ;
+
+    /**
+     * <code>SELECT = 0;</code>
+     */
+    public static final int SELECT_VALUE = 0;
+    /**
+     * <code>INSERT = 1;</code>
+     */
+    public static final int INSERT_VALUE = 1;
+    /**
+     * <code>UPDATE = 2;</code>
+     */
+    public static final int UPDATE_VALUE = 2;
+    /**
+     * <code>DELETE = 3;</code>
+     */
+    public static final int DELETE_VALUE = 3;
+    /**
+     * <code>UPSERT = 4;</code>
+     */
+    public static final int UPSERT_VALUE = 4;
+    /**
+     * <code>MERGE = 5;</code>
+     */
+    public static final int MERGE_VALUE = 5;
+    /**
+     * <code>OTHER_DML = 6;</code>
+     */
+    public static final int OTHER_DML_VALUE = 6;
+    /**
+     * <code>CREATE = 7;</code>
+     */
+    public static final int CREATE_VALUE = 7;
+    /**
+     * <code>DROP = 8;</code>
+     */
+    public static final int DROP_VALUE = 8;
+    /**
+     * <code>ALTER = 9;</code>
+     */
+    public static final int ALTER_VALUE = 9;
+    /**
+     * <code>OTHER_DDL = 10;</code>
+     */
+    public static final int OTHER_DDL_VALUE = 10;
+    /**
+     * <code>CALL = 11;</code>
+     */
+    public static final int CALL_VALUE = 11;
+
+
+    public final int getNumber() {
+      if (index == -1) {
+        throw new java.lang.IllegalArgumentException(
+            "Can't get the number of an unknown enum value.");
+      }
+      return value;
+    }
+
+    public static StatementType valueOf(int value) {
+      switch (value) {
+        case 0: return SELECT;
+        case 1: return INSERT;
+        case 2: return UPDATE;
+        case 3: return DELETE;
+        case 4: return UPSERT;
+        case 5: return MERGE;
+        case 6: return OTHER_DML;
+        case 7: return CREATE;
+        case 8: return DROP;
+        case 9: return ALTER;
+        case 10: return OTHER_DDL;
+        case 11: return CALL;
+        default: return null;
+      }
+    }
+
+    public static com.google.protobuf.Internal.EnumLiteMap<StatementType>
+        internalGetValueMap() {
+      return internalValueMap;
+    }
+    private static final com.google.protobuf.Internal.EnumLiteMap<
+        StatementType> internalValueMap =
+          new com.google.protobuf.Internal.EnumLiteMap<StatementType>() {
+            public StatementType findValueByNumber(int number) {
+              return StatementType.valueOf(number);
+            }
+          };
+
+    public final com.google.protobuf.Descriptors.EnumValueDescriptor
+        getValueDescriptor() {
+      return getDescriptor().getValues().get(index);
+    }
+    public final com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptorForType() {
+      return getDescriptor();
+    }
+    public static final com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptor() {
+      return org.apache.calcite.avatica.proto.Common.getDescriptor().getEnumTypes().get(0);
+    }
+
+    private static final StatementType[] VALUES = values();
+
+    public static StatementType valueOf(
+        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+      if (desc.getType() != getDescriptor()) {
+        throw new java.lang.IllegalArgumentException(
+          "EnumValueDescriptor is not for this type.");
+      }
+      if (desc.getIndex() == -1) {
+        return UNRECOGNIZED;
+      }
+      return VALUES[desc.getIndex()];
+    }
+
+    private final int index;
+    private final int value;
+
+    private StatementType(int index, int value) {
+      this.index = index;
+      this.value = value;
+    }
+
+    // @@protoc_insertion_point(enum_scope:StatementType)
+  }
+
+  /**
+   * Protobuf enum {@code Rep}
+   */
+  public enum Rep
+      implements com.google.protobuf.ProtocolMessageEnum {
+    /**
+     * <code>PRIMITIVE_BOOLEAN = 0;</code>
+     */
+    PRIMITIVE_BOOLEAN(0, 0),
+    /**
+     * <code>PRIMITIVE_BYTE = 1;</code>
+     */
+    PRIMITIVE_BYTE(1, 1),
+    /**
+     * <code>PRIMITIVE_CHAR = 2;</code>
+     */
+    PRIMITIVE_CHAR(2, 2),
+    /**
+     * <code>PRIMITIVE_SHORT = 3;</code>
+     */
+    PRIMITIVE_SHORT(3, 3),
+    /**
+     * <code>PRIMITIVE_INT = 4;</code>
+     */
+    PRIMITIVE_INT(4, 4),
+    /**
+     * <code>PRIMITIVE_LONG = 5;</code>
+     */
+    PRIMITIVE_LONG(5, 5),
+    /**
+     * <code>PRIMITIVE_FLOAT = 6;</code>
+     */
+    PRIMITIVE_FLOAT(6, 6),
+    /**
+     * <code>PRIMITIVE_DOUBLE = 7;</code>
+     */
+    PRIMITIVE_DOUBLE(7, 7),
+    /**
+     * <code>BOOLEAN = 8;</code>
+     */
+    BOOLEAN(8, 8),
+    /**
+     * <code>BYTE = 9;</code>
+     */
+    BYTE(9, 9),
+    /**
+     * <code>CHARACTER = 10;</code>
+     */
+    CHARACTER(10, 10),
+    /**
+     * <code>SHORT = 11;</code>
+     */
+    SHORT(11, 11),
+    /**
+     * <code>INTEGER = 12;</code>
+     */
+    INTEGER(12, 12),
+    /**
+     * <code>LONG = 13;</code>
+     */
+    LONG(13, 13),
+    /**
+     * <code>FLOAT = 14;</code>
+     */
+    FLOAT(14, 14),
+    /**
+     * <code>DOUBLE = 15;</code>
+     */
+    DOUBLE(15, 15),
+    /**
+     * <code>BIG_INTEGER = 25;</code>
+     */
+    BIG_INTEGER(16, 25),
+    /**
+     * <code>BIG_DECIMAL = 26;</code>
+     */
+    BIG_DECIMAL(17, 26),
+    /**
+     * <code>JAVA_SQL_TIME = 16;</code>
+     */
+    JAVA_SQL_TIME(18, 16),
+    /**
+     * <code>JAVA_SQL_TIMESTAMP = 17;</code>
+     */
+    JAVA_SQL_TIMESTAMP(19, 17),
+    /**
+     * <code>JAVA_SQL_DATE = 18;</code>
+     */
+    JAVA_SQL_DATE(20, 18),
+    /**
+     * <code>JAVA_UTIL_DATE = 19;</code>
+     */
+    JAVA_UTIL_DATE(21, 19),
+    /**
+     * <code>BYTE_STRING = 20;</code>
+     */
+    BYTE_STRING(22, 20),
+    /**
+     * <code>STRING = 21;</code>
+     */
+    STRING(23, 21),
+    /**
+     * <code>NUMBER = 22;</code>
+     */
+    NUMBER(24, 22),
+    /**
+     * <code>OBJECT = 23;</code>
+     */
+    OBJECT(25, 23),
+    /**
+     * <code>NULL = 24;</code>
+     */
+    NULL(26, 24),
+    /**
+     * <code>ARRAY = 27;</code>
+     */
+    ARRAY(27, 27),
+    /**
+     * <code>STRUCT = 28;</code>
+     */
+    STRUCT(28, 28),
+    /**
+     * <code>MULTISET = 29;</code>
+     */
+    MULTISET(29, 29),
+    UNRECOGNIZED(-1, -1),
+    ;
+
+    /**
+     * <code>PRIMITIVE_BOOLEAN = 0;</code>
+     */
+    public static final int PRIMITIVE_BOOLEAN_VALUE = 0;
+    /**
+     * <code>PRIMITIVE_BYTE = 1;</code>
+     */
+    public static final int PRIMITIVE_BYTE_VALUE = 1;
+    /**
+     * <code>PRIMITIVE_CHAR = 2;</code>
+     */
+    public static final int PRIMITIVE_CHAR_VALUE = 2;
+    /**
+     * <code>PRIMITIVE_SHORT = 3;</code>
+     */
+    public static final int PRIMITIVE_SHORT_VALUE = 3;
+    /**
+     * <code>PRIMITIVE_INT = 4;</code>
+     */
+    public static final int PRIMITIVE_INT_VALUE = 4;
+    /**
+     * <code>PRIMITIVE_LONG = 5;</code>
+     */
+    public static final int PRIMITIVE_LONG_VALUE = 5;
+    /**
+     * <code>PRIMITIVE_FLOAT = 6;</code>
+     */
+    public static final int PRIMITIVE_FLOAT_VALUE = 6;
+    /**
+     * <code>PRIMITIVE_DOUBLE = 7;</code>
+     */
+    public static final int PRIMITIVE_DOUBLE_VALUE = 7;
+    /**
+     * <code>BOOLEAN = 8;</code>
+     */
+    public static final int BOOLEAN_VALUE = 8;
+    /**
+     * <code>BYTE = 9;</code>
+     */
+    public static final int BYTE_VALUE = 9;
+    /**
+     * <code>CHARACTER = 10;</code>
+     */
+    public static final int CHARACTER_VALUE = 10;
+    /**
+     * <code>SHORT = 11;</code>
+     */
+    public static final int SHORT_VALUE = 11;
+    /**
+     * <code>INTEGER = 12;</code>
+     */
+    public static final int INTEGER_VALUE = 12;
+    /**
+     * <code>LONG = 13;</code>
+     */
+    public static final int LONG_VALUE = 13;
+    /**
+     * <code>FLOAT = 14;</code>
+     */
+    public static final int FLOAT_VALUE = 14;
+    /**
+     * <code>DOUBLE = 15;</code>
+     */
+    public static final int DOUBLE_VALUE = 15;
+    /**
+     * <code>BIG_INTEGER = 25;</code>
+     */
+    public static final int BIG_INTEGER_VALUE = 25;
+    /**
+     * <code>BIG_DECIMAL = 26;</code>
+     */
+    public static final int BIG_DECIMAL_VALUE = 26;
+    /**
+     * <code>JAVA_SQL_TIME = 16;</code>
+     */
+    public static final int JAVA_SQL_TIME_VALUE = 16;
+    /**
+     * <code>JAVA_SQL_TIMESTAMP = 17;</code>
+     */
+    public static final int JAVA_SQL_TIMESTAMP_VALUE = 17;
+    /**
+     * <code>JAVA_SQL_DATE = 18;</code>
+     */
+    public static final int JAVA_SQL_DATE_VALUE = 18;
+    /**
+     * <code>JAVA_UTIL_DATE = 19;</code>
+     */
+    public static final int JAVA_UTIL_DATE_VALUE = 19;
+    /**
+     * <code>BYTE_STRING = 20;</code>
+     */
+    public static final int BYTE_STRING_VALUE = 20;
+    /**
+     * <code>STRING = 21;</code>
+     */
+    public static final int STRING_VALUE = 21;
+    /**
+     * <code>NUMBER = 22;</code>
+     */
+    public static final int NUMBER_VALUE = 22;
+    /**
+     * <code>OBJECT = 23;</code>
+     */
+    public static final int OBJECT_VALUE = 23;
+    /**
+     * <code>NULL = 24;</code>
+     */
+    public static final int NULL_VALUE = 24;
+    /**
+     * <code>ARRAY = 27;</code>
+     */
+    public static final int ARRAY_VALUE = 27;
+    /**
+     * <code>STRUCT = 28;</code>
+     */
+    public static final int STRUCT_VALUE = 28;
+    /**
+     * <code>MULTISET = 29;</code>
+     */
+    public static final int MULTISET_VALUE = 29;
+
+
+    public final int getNumber() {
+      if (index == -1) {
+        throw new java.lang.IllegalArgumentException(
+            "Can't get the number of an unknown enum value.");
+      }
+      return value;
+    }
+
+    public static Rep valueOf(int value) {
+      switch (value) {
+        case 0: return PRIMITIVE_BOOLEAN;
+        case 1: return PRIMITIVE_BYTE;
+        case 2: return PRIMITIVE_CHAR;
+        case 3: return PRIMITIVE_SHORT;
+        case 4: return PRIMITIVE_INT;
+        case 5: return PRIMITIVE_LONG;
+        case 6: return PRIMITIVE_FLOAT;
+        case 7: return PRIMITIVE_DOUBLE;
+        case 8: return BOOLEAN;
+        case 9: return BYTE;
+        case 10: return CHARACTER;
+        case 11: return SHORT;
+        case 12: return INTEGER;
+        case 13: return LONG;
+        case 14: return FLOAT;
+        case 15: return DOUBLE;
+        case 25: return BIG_INTEGER;
+        case 26: return BIG_DECIMAL;
+        case 16: return JAVA_SQL_TIME;
+        case 17: return JAVA_SQL_TIMESTAMP;
+        case 18: return JAVA_SQL_DATE;
+        case 19: return JAVA_UTIL_DATE;
+        case 20: return BYTE_STRING;
+        case 21: return STRING;
+        case 22: return NUMBER;
+        case 23: return OBJECT;
+        case 24: return NULL;
+        case 27: return ARRAY;
+        case 28: return STRUCT;
+        case 29: return MULTISET;
+        default: return null;
+      }
+    }
+
+    public static com.google.protobuf.Internal.EnumLiteMap<Rep>
+        internalGetValueMap() {
+      return internalValueMap;
+    }
+    private static final com.google.protobuf.Internal.EnumLiteMap<
+        Rep> internalValueMap =
+          new com.google.protobuf.Internal.EnumLiteMap<Rep>() {
+            public Rep findValueByNumber(int number) {
+              return Rep.valueOf(number);
+            }
+          };
+
+    public final com.google.protobuf.Descriptors.EnumValueDescriptor
+        getValueDescriptor() {
+      return getDescriptor().getValues().get(index);
+    }
+    public final com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptorForType() {
+      return getDescriptor();
+    }
+    public static final com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptor() {
+      return org.apache.calcite.avatica.proto.Common.getDescriptor().getEnumTypes().get(1);
+    }
+
+    private static final Rep[] VALUES = values();
+
+    public static Rep valueOf(
+        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+      if (desc.getType() != getDescriptor()) {
+        throw new java.lang.IllegalArgumentException(
+          "EnumValueDescriptor is not for this type.");
+      }
+      if (desc.getIndex() == -1) {
+        return UNRECOGNIZED;
+      }
+      return VALUES[desc.getIndex()];
+    }
+
+    private final int index;
+    private final int value;
+
+    private Rep(int index, int value) {
+      this.index = index;
+      this.value = value;
+    }
+
+    // @@protoc_insertion_point(enum_scope:Rep)
+  }
+
+  /**
+   * Protobuf enum {@code Severity}
+   *
+   * <pre>
+   * The severity of some unexpected outcome to an operation.
+   * Protobuf enum values must be unique across all other enums
+   * </pre>
+   */
+  public enum Severity
+      implements com.google.protobuf.ProtocolMessageEnum {
+    /**
+     * <code>UNKNOWN_SEVERITY = 0;</code>
+     */
+    UNKNOWN_SEVERITY(0, 0),
+    /**
+     * <code>FATAL_SEVERITY = 1;</code>
+     */
+    FATAL_SEVERITY(1, 1),
+    /**
+     * <code>ERROR_SEVERITY = 2;</code>
+     */
+    ERROR_SEVERITY(2, 2),
+    /**
+     * <code>WARNING_SEVERITY = 3;</code>
+     */
+    WARNING_SEVERITY(3, 3),
+    UNRECOGNIZED(-1, -1),
+    ;
+
+    /**
+     * <code>UNKNOWN_SEVERITY = 0;</code>
+     */
+    public static final int UNKNOWN_SEVERITY_VALUE = 0;
+    /**
+     * <code>FATAL_SEVERITY = 1;</code>
+     */
+    public static final int FATAL_SEVERITY_VALUE = 1;
+    /**
+     * <code>ERROR_SEVERITY = 2;</code>
+     */
+    public static final int ERROR_SEVERITY_VALUE = 2;
+    /**
+     * <code>WARNING_SEVERITY = 3;</code>
+     */
+    public static final int WARNING_SEVERITY_VALUE = 3;
+
+
+    public final int getNumber() {
+      if (index == -1) {
+        throw new java.lang.IllegalArgumentException(
+            "Can't get the number of an unknown enum value.");
+      }
+      return value;
+    }
+
+    public static Severity valueOf(int value) {
+      switch (value) {
+        case 0: return UNKNOWN_SEVERITY;
+        case 1: return FATAL_SEVERITY;
+        case 2: return ERROR_SEVERITY;
+        case 3: return WARNING_SEVERITY;
+        default: return null;
+      }
+    }
+
+    public static com.google.protobuf.Internal.EnumLiteMap<Severity>
+        internalGetValueMap() {
+      return internalValueMap;
+    }
+    private static final com.google.protobuf.Internal.EnumLiteMap<
+        Severity> internalValueMap =
+          new com.google.protobuf.Internal.EnumLiteMap<Severity>() {
+            public Severity findValueByNumber(int number) {
+              return Severity.valueOf(number);
+            }
+          };
+
+    public final com.google.protobuf.Descriptors.EnumValueDescriptor
+        getValueDescriptor() {
+      return getDescriptor().getValues().get(index);
+    }
+    public final com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptorForType() {
+      return getDescriptor();
+    }
+    public static final com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptor() {
+      return org.apache.calcite.avatica.proto.Common.getDescriptor().getEnumTypes().get(2);
+    }
+
+    private static final Severity[] VALUES = values();
+
+    public static Severity valueOf(
+        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+      if (desc.getType() != getDescriptor()) {
+        throw new java.lang.IllegalArgumentException(
+          "EnumValueDescriptor is not for this type.");
+      }
+      if (desc.getIndex() == -1) {
+        return UNRECOGNIZED;
+      }
+      return VALUES[desc.getIndex()];
+    }
+
+    private final int index;
+    private final int value;
+
+    private Severity(int index, int value) {
+      this.index = index;
+      this.value = value;
+    }
+
+    // @@protoc_insertion_point(enum_scope:Severity)
+  }
+
+  /**
+   * Protobuf enum {@code MetaDataOperation}
+   *
+   * <pre>
+   * Enumeration corresponding to DatabaseMetaData operations
+   * </pre>
+   */
+  public enum MetaDataOperation
+      implements com.google.protobuf.ProtocolMessageEnum {
+    /**
+     * <code>GET_ATTRIBUTES = 0;</code>
+     */
+    GET_ATTRIBUTES(0, 0),
+    /**
+     * <code>GET_BEST_ROW_IDENTIFIER = 1;</code>
+     */
+    GET_BEST_ROW_IDENTIFIER(1, 1),
+    /**
+     * <code>GET_CATALOGS = 2;</code>
+     */
+    GET_CATALOGS(2, 2),
+    /**
+     * <code>GET_CLIENT_INFO_PROPERTIES = 3;</code>
+     */
+    GET_CLIENT_INFO_PROPERTIES(3, 3),
+    /**
+     * <code>GET_COLUMN_PRIVILEGES = 4;</code>
+     */
+    GET_COLUMN_PRIVILEGES(4, 4),
+    /**
+     * <code>GET_COLUMNS = 5;</code>
+     */
+    GET_COLUMNS(5, 5),
+    /**
+     * <code>GET_CROSS_REFERENCE = 6;</code>
+     */
+    GET_CROSS_REFERENCE(6, 6),
+    /**
+     * <code>GET_EXPORTED_KEYS = 7;</code>
+     */
+    GET_EXPORTED_KEYS(7, 7),
+    /**
+     * <code>GET_FUNCTION_COLUMNS = 8;</code>
+     */
+    GET_FUNCTION_COLUMNS(8, 8),
+    /**
+     * <code>GET_FUNCTIONS = 9;</code>
+     */
+    GET_FUNCTIONS(9, 9),
+    /**
+     * <code>GET_IMPORTED_KEYS = 10;</code>
+     */
+    GET_IMPORTED_KEYS(10, 10),
+    /**
+     * <code>GET_INDEX_INFO = 11;</code>
+     */
+    GET_INDEX_INFO(11, 11),
+    /**
+     * <code>GET_PRIMARY_KEYS = 12;</code>
+     */
+    GET_PRIMARY_KEYS(12, 12),
+    /**
+     * <code>GET_PROCEDURE_COLUMNS = 13;</code>
+     */
+    GET_PROCEDURE_COLUMNS(13, 13),
+    /**
+     * <code>GET_PROCEDURES = 14;</code>
+     */
+    GET_PROCEDURES(14, 14),
+    /**
+     * <code>GET_PSEUDO_COLUMNS = 15;</code>
+     */
+    GET_PSEUDO_COLUMNS(15, 15),
+    /**
+     * <code>GET_SCHEMAS = 16;</code>
+     */
+    GET_SCHEMAS(16, 16),
+    /**
+     * <code>GET_SCHEMAS_WITH_ARGS = 17;</code>
+     */
+    GET_SCHEMAS_WITH_ARGS(17, 17),
+    /**
+     * <code>GET_SUPER_TABLES = 18;</code>
+     */
+    GET_SUPER_TABLES(18, 18),
+    /**
+     * <code>GET_SUPER_TYPES = 19;</code>
+     */
+    GET_SUPER_TYPES(19, 19),
+    /**
+     * <code>GET_TABLE_PRIVILEGES = 20;</code>
+     */
+    GET_TABLE_PRIVILEGES(20, 20),
+    /**
+     * <code>GET_TABLES = 21;</code>
+     */
+    GET_TABLES(21, 21),
+    /**
+     * <code>GET_TABLE_TYPES = 22;</code>
+     */
+    GET_TABLE_TYPES(22, 22),
+    /**
+     * <code>GET_TYPE_INFO = 23;</code>
+     */
+    GET_TYPE_INFO(23, 23),
+    /**
+     * <code>GET_UDTS = 24;</code>
+     */
+    GET_UDTS(24, 24),
+    /**
+     * <code>GET_VERSION_COLUMNS = 25;</code>
+     */
+    GET_VERSION_COLUMNS(25, 25),
+    UNRECOGNIZED(-1, -1),
+    ;
+
+    /**
+     * <code>GET_ATTRIBUTES = 0;</code>
+     */
+    public static final int GET_ATTRIBUTES_VALUE = 0;
+    /**
+     * <code>GET_BEST_ROW_IDENTIFIER = 1;</code>
+     */
+    public static final int GET_BEST_ROW_IDENTIFIER_VALUE = 1;
+    /**
+     * <code>GET_CATALOGS = 2;</code>
+     */
+    public static final int GET_CATALOGS_VALUE = 2;
+    /**
+     * <code>GET_CLIENT_INFO_PROPERTIES = 3;</code>
+     */
+    public static final int GET_CLIENT_INFO_PROPERTIES_VALUE = 3;
+    /**
+     * <code>GET_COLUMN_PRIVILEGES = 4;</code>
+     */
+    public static final int GET_COLUMN_PRIVILEGES_VALUE = 4;
+    /**
+     * <code>GET_COLUMNS = 5;</code>
+     */
+    public static final int GET_COLUMNS_VALUE = 5;
+    /**
+     * <code>GET_CROSS_REFERENCE = 6;</code>
+     */
+    public static final int GET_CROSS_REFERENCE_VALUE = 6;
+    /**
+     * <code>GET_EXPORTED_KEYS = 7;</code>
+     */
+    public static final int GET_EXPORTED_KEYS_VALUE = 7;
+    /**
+     * <code>GET_FUNCTION_COLUMNS = 8;</code>
+     */
+    public static final int GET_FUNCTION_COLUMNS_VALUE = 8;
+    /**
+     * <code>GET_FUNCTIONS = 9;</code>
+     */
+    public static final int GET_FUNCTIONS_VALUE = 9;
+    /**
+     * <code>GET_IMPORTED_KEYS = 10;</code>
+     */
+    public static final int GET_IMPORTED_KEYS_VALUE = 10;
+    /**
+     * <code>GET_INDEX_INFO = 11;</code>
+     */
+    public static final int GET_INDEX_INFO_VALUE = 11;
+    /**
+     * <code>GET_PRIMARY_KEYS = 12;</code>
+     */
+    public static final int GET_PRIMARY_KEYS_VALUE = 12;
+    /**
+     * <code>GET_PROCEDURE_COLUMNS = 13;</code>
+     */
+    public static final int GET_PROCEDURE_COLUMNS_VALUE = 13;
+    /**
+     * <code>GET_PROCEDURES = 14;</code>
+     */
+    public static final int GET_PROCEDURES_VALUE = 14;
+    /**
+     * <code>GET_PSEUDO_COLUMNS = 15;</code>
+     */
+    public static final int GET_PSEUDO_COLUMNS_VALUE = 15;
+    /**
+     * <code>GET_SCHEMAS = 16;</code>
+     */
+    public static final int GET_SCHEMAS_VALUE = 16;
+    /**
+     * <code>GET_SCHEMAS_WITH_ARGS = 17;</code>
+     */
+    public static final int GET_SCHEMAS_WITH_ARGS_VALUE = 17;
+    /**
+     * <code>GET_SUPER_TABLES = 18;</code>
+     */
+    public static final int GET_SUPER_TABLES_VALUE = 18;
+    /**
+     * <code>GET_SUPER_TYPES = 19;</code>
+     */
+    public static final int GET_SUPER_TYPES_VALUE = 19;
+    /**
+     * <code>GET_TABLE_PRIVILEGES = 20;</code>
+     */
+    public static final int GET_TABLE_PRIVILEGES_VALUE = 20;
+    /**
+     * <code>GET_TABLES = 21;</code>
+     */
+    public static final int GET_TABLES_VALUE = 21;
+    /**
+     * <code>GET_TABLE_TYPES = 22;</code>
+     */
+    public static final int GET_TABLE_TYPES_VALUE = 22;
+    /**
+     * <code>GET_TYPE_INFO = 23;</code>
+     */
+    public static final int GET_TYPE_INFO_VALUE = 23;
+    /**
+     * <code>GET_UDTS = 24;</code>
+     */
+    public static final int GET_UDTS_VALUE = 24;
+    /**
+     * <code>GET_VERSION_COLUMNS = 25;</code>
+     */
+    public static final int GET_VERSION_COLUMNS_VALUE = 25;
+
+
+    public final int getNumber() {
+      if (index == -1) {
+        throw new java.lang.IllegalArgumentException(
+            "Can't get the number of an unknown enum value.");
+      }
+      return value;
+    }
+
+    public static MetaDataOperation valueOf(int value) {
+      switch (value) {
+        case 0: return GET_ATTRIBUTES;
+        case 1: return GET_BEST_ROW_IDENTIFIER;
+        case 2: return GET_CATALOGS;
+        case 3: return GET_CLIENT_INFO_PROPERTIES;
+        case 4: return GET_COLUMN_PRIVILEGES;
+        case 5: return GET_COLUMNS;
+        case 6: return GET_CROSS_REFERENCE;
+        case 7: return GET_EXPORTED_KEYS;
+        case 8: return GET_FUNCTION_COLUMNS;
+        case 9: return GET_FUNCTIONS;
+        case 10: return GET_IMPORTED_KEYS;
+        case 11: return GET_INDEX_INFO;
+        case 12: return GET_PRIMARY_KEYS;
+        case 13: return GET_PROCEDURE_COLUMNS;
+        case 14: return GET_PROCEDURES;
+        case 15: return GET_PSEUDO_COLUMNS;
+        case 16: return GET_SCHEMAS;
+        case 17: return GET_SCHEMAS_WITH_ARGS;
+        case 18: return GET_SUPER_TABLES;
+        case 19: return GET_SUPER_TYPES;
+        case 20: return GET_TABLE_PRIVILEGES;
+        case 21: return GET_TABLES;
+        case 22: return GET_TABLE_TYPES;
+        case 23: return GET_TYPE_INFO;
+        case 24: return GET_UDTS;
+        case 25: return GET_VERSION_COLUMNS;
+        default: return null;
+      }
+    }
+
+    public static com.google.protobuf.Internal.EnumLiteMap<MetaDataOperation>
+        internalGetValueMap() {
+      return internalValueMap;
+    }
+    private static final com.google.protobuf.Internal.EnumLiteMap<
+        MetaDataOperation> internalValueMap =
+          new com.google.protobuf.Internal.EnumLiteMap<MetaDataOperation>() {
+            public MetaDataOperation findValueByNumber(int number) {
+              return MetaDataOperation.valueOf(number);
+            }
+          };
+
+    public final com.google.protobuf.Descriptors.EnumValueDescriptor
+        getValueDescriptor() {
+      return getDescriptor().getValues().get(index);
+    }
+    public final com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptorForType() {
+      return getDescriptor();
+    }
+    public static final com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptor() {
+      return org.apache.calcite.avatica.proto.Common.getDescriptor().getEnumTypes().get(3);
+    }
+
+    private static final MetaDataOperation[] VALUES = values();
+
+    public static MetaDataOperation valueOf(
+        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+      if (desc.getType() != getDescriptor()) {
+        throw new java.lang.IllegalArgumentException(
+          "EnumValueDescriptor is not for this type.");
+      }
+      if (desc.getIndex() == -1) {
+        return UNRECOGNIZED;
+      }
+      return VALUES[desc.getIndex()];
+    }
+
+    private final int index;
+    private final int value;
+
+    private MetaDataOperation(int index, int value) {
+      this.index = index;
+      this.value = value;
+    }
+
+    // @@protoc_insertion_point(enum_scope:MetaDataOperation)
+  }
+
+  /**
+   * Protobuf enum {@code StateType}
+   */
+  public enum StateType
+      implements com.google.protobuf.ProtocolMessageEnum {
+    /**
+     * <code>SQL = 0;</code>
+     */
+    SQL(0, 0),
+    /**
+     * <code>METADATA = 1;</code>
+     */
+    METADATA(1, 1),
+    UNRECOGNIZED(-1, -1),
+    ;
+
+    /**
+     * <code>SQL = 0;</code>
+     */
+    public static final int SQL_VALUE = 0;
+    /**
+     * <code>METADATA = 1;</code>
+     */
+    public static final int METADATA_VALUE = 1;
+
+
+    public final int getNumber() {
+      if (index == -1) {
+        throw new java.lang.IllegalArgumentException(
+            "Can't get the number of an unknown enum value.");
+      }
+      return value;
+    }
+
+    public static StateType valueOf(int value) {
+      switch (value) {
+        case 0: return SQL;
+        case 1: return METADATA;
+        default: return null;
+      }
+    }
+
+    public static com.google.protobuf.Internal.EnumLiteMap<StateType>
+        internalGetValueMap() {
+      return internalValueMap;
+    }
+    private static final com.google.protobuf.Internal.EnumLiteMap<
+        StateType> internalValueMap =
+          new com.google.protobuf.Internal.EnumLiteMap<StateType>() {
+            public StateType findValueByNumber(int number) {
+              return StateType.valueOf(number);
+            }
+          };
+
+    public final com.google.protobuf.Descriptors.EnumValueDescriptor
+        getValueDescriptor() {
+      return getDescriptor().getValues().get(index);
+    }
+    public final com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptorForType() {
+      return getDescriptor();
+    }
+    public static final com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptor() {
+      return org.apache.calcite.avatica.proto.Common.getDescriptor().getEnumTypes().get(4);
+    }
+
+    private static final StateType[] VALUES = values();
+
+    public static StateType valueOf(
+        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+      if (desc.getType() != getDescriptor()) {
+        throw new java.lang.IllegalArgumentException(
+          "EnumValueDescriptor is not for this type.");
+      }
+      if (desc.getIndex() == -1) {
+        return UNRECOGNIZED;
+      }
+      return VALUES[desc.getIndex()];
+    }
+
+    private final int index;
+    private final int value;
+
+    private StateType(int index, int value) {
+      this.index = index;
+      this.value = value;
+    }
+
+    // @@protoc_insertion_point(enum_scope:StateType)
+  }
+
+  public interface ConnectionPropertiesOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:ConnectionProperties)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <code>optional bool is_dirty = 1;</code>
+     */
+    boolean getIsDirty();
+
+    /**
+     * <code>optional bool auto_commit = 2;</code>
+     */
+    boolean getAutoCommit();
+
+    /**
+     * <code>optional bool has_auto_commit = 7;</code>
+     *
+     * <pre>
+     * field is a Boolean, need to discern null and default value
+     * </pre>
+     */
+    boolean getHasAutoCommit();
+
+    /**
+     * <code>optional bool read_only = 3;</code>
+     */
+    boolean getReadOnly();
+
+    /**
+     * <code>optional bool has_read_only = 8;</code>
+     *
+     * <pre>
+     * field is a Boolean, need to discern null and default value
+     * </pre>
+     */
+    boolean getHasReadOnly();
+
+    /**
+     * <code>optional uint32 transaction_isolation = 4;</code>
+     */
+    int getTransactionIsolation();
+
+    /**
+     * <code>optional string catalog = 5;</code>
+     */
+    java.lang.String getCatalog();
+    /**
+     * <code>optional string catalog = 5;</code>
+     */
+    com.google.protobuf.ByteString
+        getCatalogBytes();
+
+    /**
+     * <code>optional string schema = 6;</code>
+     */
+    java.lang.String getSchema();
+    /**
+     * <code>optional string schema = 6;</code>
+     */
+    com.google.protobuf.ByteString
+        getSchemaBytes();
+  }
+  /**
+   * Protobuf type {@code ConnectionProperties}
+   *
+   * <pre>
+   * Details about a connection
+   * </pre>
+   */
+  public  static final class ConnectionProperties extends
+      com.google.protobuf.GeneratedMessage implements
+      // @@protoc_insertion_point(message_implements:ConnectionProperties)
+      ConnectionPropertiesOrBuilder {
+    // Use ConnectionProperties.newBuilder() to construct.
+    private ConnectionProperties(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
+      super(builder);
+    }
+    private ConnectionProperties() {
+      isDirty_ = false;
+      autoCommit_ = false;
+      hasAutoCommit_ = false;
+      readOnly_ = false;
+      hasReadOnly_ = false;
+      transactionIsolation_ = 0;
+      catalog_ = "";
+      schema_ = "";
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
+    }
+    private ConnectionProperties(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
+      this();
+      int mutable_bitField0_ = 0;
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            default: {
+              if (!input.skipField(tag)) {
+                done = true;
+              }
+              break;
+            }
+            case 8: {
+
+              isDirty_ = input.readBool();
+              break;
+            }
+            case 16: {
+
+              autoCommit_ = input.readBool();
+              break;
+            }
+            case 24: {
+
+              readOnly_ = input.readBool();
+              break;
+            }
+            case 32: {
+
+              transactionIsolation_ = input.readUInt32();
+              break;
+            }
+            case 42: {
+              String s = input.readStringRequireUtf8();
+
+              catalog_ = s;
+              break;
+            }
+            case 50: {
+              String s = input.readStringRequireUtf8();
+
+              schema_ = s;
+              break;
+            }
+            case 56: {
+
+              hasAutoCommit_ = input.readBool();
+              break;
+            }
+            case 64: {
+
+              hasReadOnly_ = input.readBool();
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw new RuntimeException(e.setUnfinishedMessage(this));
+      } catch (java.io.IOException e) {
+        throw new RuntimeException(
+            new com.google.protobuf.InvalidProtocolBufferException(
+                e.getMessage()).setUnfinishedMessage(this));
+      } finally {
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return org.apache.calcite.avatica.proto.Common.internal_static_ConnectionProperties_descriptor;
+    }
+
+    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return org.apache.calcite.avatica.proto.Common.internal_static_ConnectionProperties_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              org.apache.calcite.avatica.proto.Common.ConnectionProperties.class, org.apache.calcite.avatica.proto.Common.ConnectionProperties.Builder.class);
+    }
+
+    public static final int IS_DIRTY_FIELD_NUMBER = 1;
+    private boolean isDirty_;
+    /**
+     * <code>optional bool is_dirty = 1;</code>
+     */
+    public boolean getIsDirty() {
+      return isDirty_;
+    }
+
+    public static final int AUTO_COMMIT_FIELD_NUMBER = 2;
+    private boolean autoCommit_;
+    /**
+     * <code>optional bool auto_commit = 2;</code>
+     */
+    public boolean getAutoCommit() {
+      return autoCommit_;
+    }
+
+    public static final int HAS_AUTO_COMMIT_FIELD_NUMBER = 7;
+    private boolean hasAutoCommit_;
+    /**
+     * <code>optional bool has_auto_commit = 7;</code>
+     *
+     * <pre>
+     * field is a Boolean, need to discern null and default value
+     * </pre>
+     */
+    public boolean getHasAutoCommit() {
+      return hasAutoCommit_;
+    }
+
+    public static final int READ_ONLY_FIELD_NUMBER = 3;
+    private boolean readOnly_;
+    /**
+     * <code>optional bool read_only = 3;</code>
+     */
+    public boolean getReadOnly() {
+      return readOnly_;
+    }
+
+    public static final int HAS_READ_ONLY_FIELD_NUMBER = 8;
+    private boolean hasReadOnly_;
+    /**
+     * <code>optional bool has_read_only = 8;</code>
+     *
+     * <pre>
+     * field is a Boolean, need to discern null and default value
+     * </pre>
+     */
+    public boolean getHasReadOnly() {
+      return hasReadOnly_;
+    }
+
+    public static final int TRANSACTION_ISOLATION_FIELD_NUMBER = 4;
+    private int transactionIsolation_;
+    /**
+     * <code>optional uint32 transaction_isolation = 4;</code>
+     */
+    public int getTransactionIsolation() {
+      return transactionIsolation_;
+    }
+
+    public static final int CATALOG_FIELD_NUMBER = 5;
+    private volatile java.lang.Object catalog_;
+    /**
+     * <code>optional string catalog = 5;</code>
+     */
+    public java.lang.String getCatalog() {
+      java.lang.Object ref = catalog_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        catalog_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>optional string catalog = 5;</code>
+     */
+    public com.google.protobuf.ByteString
+        getCatalogBytes() {
+      java.lang.Object ref = catalog_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        catalog_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int SCHEMA_FIELD_NUMBER = 6;
+    private volatile java.lang.Object schema_;
+    /**
+     * <code>optional string schema = 6;</code>
+     */
+    public java.lang.String getSchema() {
+      java.lang.Object ref = schema_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        schema_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>optional string schema = 6;</code>
+     */
+    public com.google.protobuf.ByteString
+        getSchemaBytes() {
+      java.lang.Object ref = schema_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        schema_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    private byte memoizedIsInitialized = -1;
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (isDirty_ != false) {
+        output.writeBool(1, isDirty_);
+      }
+      if (autoCommit_ != false) {
+        output.writeBool(2, autoCommit_);
+      }
+      if (readOnly_ != false) {
+        output.writeBool(3, readOnly_);
+      }
+      if (transactionIsolation_ != 0) {
+        output.writeUInt32(4, transactionIsolation_);
+      }
+      if (!getCatalogBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessage.writeString(output, 5, catalog_);
+      }
+      if (!getSchemaBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessage.writeString(output, 6, schema_);
+      }
+      if (hasAutoCommit_ != false) {
+        output.writeBool(7, hasAutoCommit_);
+      }
+      if (hasReadOnly_ != false) {
+        output.writeBool(8, hasReadOnly_);
+      }
+    }
+
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (isDirty_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(1, isDirty_);
+      }
+      if (autoCommit_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(2, autoCommit_);
+      }
+      if (readOnly_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(3, readOnly_);
+      }
+      if (transactionIsolation_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeUInt32Size(4, transactionIsolation_);
+      }
+      if (!getCatalogBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessage.computeStringSize(5, catalog_);
+      }
+      if (!getSchemaBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessage.computeStringSize(6, schema_);
+      }
+      if (hasAutoCommit_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(7, hasAutoCommit_);
+      }
+      if (hasReadOnly_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(8, hasReadOnly_);
+      }
+      memoizedSize = size;
+      return size;
+    }
+
+    private static final long serialVersionUID = 0L;
+    public static org.apache.calcite.avatica.proto.Common.ConnectionProperties parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static org.apache.calcite.avatica.proto.Common.ConnectionProperties parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static org.apache.calcite.avatica.proto.Common.ConnectionProperties parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static org.apache.calcite.avatica.proto.Common.ConnectionProperties parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static org.apache.calcite.avatica.proto.Common.ConnectionProperties parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input);
+    }
+    public static org.apache.calcite.avatica.proto.Common.ConnectionProperties parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input, extensionRegistry);
+    }
+    public static org.apache.calcite.avatica.proto.Common.ConnectionProperties parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return PARSER.parseDelimitedFrom(input);
+    }
+    public static org.apache.calcite.avatica.proto.Common.ConnectionProperties parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return PARSER.parseDelimitedFrom(input, extensionRegistry);
+    }
+    public static org.apache.calcite.avatica.proto.Common.ConnectionProperties parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input);
+    }
+    public static org.apache.calcite.avatica.proto.Common.ConnectionProperties parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input, extensionRegistry);
+    }
+
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(org.apache.calcite.avatica.proto.Common.ConnectionProperties prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code ConnectionProperties}
+     *
+     * <pre>
+     * Details about a connection
+     * </pre>
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:ConnectionProperties)
+        org.apache.calcite.avatica.proto.Common.ConnectionPropertiesOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return org.apache.calcite.avatica.proto.Common.internal_static_ConnectionProperties_descriptor;
+      }
+
+      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return org.apache.calcite.avatica.proto.Common.internal_static_ConnectionProperties_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                org.apache.calcite.avatica.proto.Common.ConnectionProperties.class, org.apache.calcite.avatica.proto.Common.ConnectionProperties.Builder.class);
+      }
+
+      // Construct using org.apache.calcite.avatica.proto.Common.ConnectionProperties.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+        }
+      }
+      public Builder clear() {
+        super.clear();
+        isDirty_ = false;
+
+        autoCommit_ = false;
+
+        hasAutoCommit_ = false;
+
+        readOnly_ = false;
+
+        hasReadOnly_ = false;
+
+        transactionIsolation_ = 0;
+
+        catalog_ = "";
+
+        schema_ = "";
+
+        return this;
+      }
+
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return org.apache.calcite.avatica.proto.Common.internal_static_ConnectionProperties_descriptor;
+      }
+
+      public org.apache.calcite.avatica.proto.Common.ConnectionProperties getDefaultInstanceForType() {
+        return org.apache.calcite.avatica.proto.Common.ConnectionProperties.getDefaultInstance();
+      }
+
+      public org.apache.calcite.avatica.proto.Common.ConnectionProperties build() {
+        org.apache.calcite.avatica.proto.Common.ConnectionProperties result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      public org.apache.calcite.avatica.proto.Common.ConnectionProperties buildPartial() {
+        org.apache.calcite.avatica.proto.Common.ConnectionProperties result = new org.apache.calcite.avatica.proto.Common.ConnectionProperties(this);
+        result.isDirty_ = isDirty_;
+        result.autoCommit_ = autoCommit_;
+        result.hasAutoCommit_ = hasAutoCommit_;
+        result.readOnly_ = readOnly_;
+        result.hasReadOnly_ = hasReadOnly_;
+        result.transactionIsolation_ = transactionIsolation_;
+        result.catalog_ = catalog_;
+        result.schema_ = schema_;
+        onBuilt();
+        return result;
+      }
+
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof org.apache.calcite.avatica.proto.Common.ConnectionProperties) {
+          return mergeFrom((org.apache.calcite.avatica.proto.Common.ConnectionProperties)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(org.apache.calcite.avatica.proto.Common.ConnectionProperties other) {
+        if (other == org.apache.calcite.avatica.proto.Common.ConnectionProperties.getDefaultInstance()) return this;
+        if (other.getIsDirty() != false) {
+          setIsDirty(other.getIsDirty());
+        }
+        if (other.getAutoCommit() != false) {
+          setAutoCommit(other.getAutoCommit());
+        }
+        if (other.getHasAutoCommit() != false) {
+          setHasAutoCommit(other.getHasAutoCommit());
+        }
+        if (other.getReadOnly() != false) {
+          setReadOnly(other.getReadOnly());
+        }
+        if (other.getHasReadOnly() != false) {
+          setHasReadOnly(other.getHasReadOnly());
+        }
+        if (other.getTransactionIsolation() != 0) {
+          setTransactionIsolation(other.getTransactionIsolation());
+        }
+        if (!other.getCatalog().isEmpty()) {
+          catalog_ = other.catalog_;
+          onChanged();
+        }
+        if (!other.getSchema().isEmpty()) {
+          schema_ = other.schema_;
+          onChanged();
+        }
+        onChanged();
+        return this;
+      }
+
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        org.apache.calcite.avatica.proto.Common.ConnectionProperties parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (org.apache.calcite.avatica.proto.Common.ConnectionProperties) e.getUnfinishedMessage();
+          throw e;
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private boolean isDirty_ ;
+      /**
+       * <code>optional bool is_dirty = 1;</code>
+       */
+      public boolean getIsDirty() {
+        return isDirty_;
+      }
+      /**
+       * <code>optional bool is_dirty = 1;</code>
+       */
+      public Builder setIsDirty(boolean value) {
+        
+        isDirty_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional bool is_dirty = 1;</code>
+       */
+      public Builder clearIsDirty() {
+        
+        isDirty_ = false;
+        onChanged();
+        return this;
+      }
+
+      private boolean autoCommit_ ;
+      /**
+       * <code>optional bool auto_commit = 2;</code>
+       */
+      public boolean getAutoCommit() {
+        return autoCommit_;
+      }
+      /**
+       * <code>optional bool auto_commit = 2;</code>
+       */
+      public Builder setAutoCommit(boolean value) {
+        
+        autoCommit_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional bool auto_commit = 2;</code>
+       */
+      public Builder clearAutoCommit() {
+        
+        autoCommit_ = false;
+        onChanged();
+        return this;
+      }
+
+      private boolean hasAutoCommit_ ;
+      /**
+       * <code>optional bool has_auto_commit = 7;</code>
+       *
+       * <pre>
+       * field is a Boolean, need to discern null and default value
+       * </pre>
+       */
+      public boolean getHasAutoCommit() {
+        return hasAutoCommit_;
+      }
+      /**
+       * <code>optional bool has_auto_commit = 7;</code>
+       *
+       * <pre>
+       * field is a Boolean, need to discern null and default value
+       * </pre>
+       */
+      public Builder setHasAutoCommit(boolean value) {
+        
+        hasAutoCommit_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional bool has_auto_commit = 7;</code>
+       *
+       * <pre>
+       * field is a Boolean, need to discern null and default value
+       * </pre>
+       */
+      public Builder clearHasAutoCommit() {
+        
+        hasAutoCommit_ = false;
+        onChanged();
+        return this;
+      }
+
+      private boolean readOnly_ ;
+      /**
+       * <code>optional bool read_only = 3;</code>
+       */
+      public boolean getReadOnly() {
+        return readOnly_;
+      }
+      /**
+       * <code>optional bool read_only = 3;</code>
+       */
+      public Builder setReadOnly(boolean value) {
+        
+        readOnly_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional bool read_only = 3;</code>
+       */
+      public Builder clearReadOnly() {
+        
+        readOnly_ = false;
+        onChanged();
+        return this;
+      }
+
+      private boolean hasReadOnly_ ;
+      /**
+       * <code>optional bool has_read_only = 8;</code>
+       *
+       * <pre>
+       * field is a Boolean, need to discern null and default value
+       * </pre>
+       */
+      public boolean getHasReadOnly() {
+        return hasReadOnly_;
+      }
+      /**
+       * <code>optional bool has_read_only = 8;</code>
+       *
+       * <pre>
+       * field is a Boolean, need to discern null and default value
+       * </pre>
+       */
+      public Builder setHasReadOnly(boolean value) {
+        
+        hasReadOnly_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional bool has_read_only = 8;</code>
+       *
+       * <pre>
+       * field is a Boolean, need to discern null and default value
+       * </pre>
+       */
+      public Builder clearHasReadOnly() {
+        
+        hasReadOnly_ = false;
+        onChanged();
+        return this;
+      }
+
+      private int transactionIsolation_ ;
+      /**
+       * <code>optional uint32 transaction_isolation = 4;</code>
+       */
+      public int getTransactionIsolation() {
+        return transactionIsolation_;
+      }
+      /**
+       * <code>optional uint32 transaction_isolation = 4;</code>
+       */
+      public Builder setTransactionIsolation(int value) {
+        
+        transactionIsolation_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional uint32 transaction_isolation = 4;</code>
+       */
+      public Builder clearTransactionIsolation() {
+        
+        transactionIsolation_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object catalog_ = "";
+      /**
+       * <code>optional string catalog = 5;</code>
+       */
+      public java.lang.String getCatalog() {
+        java.lang.Object ref = catalog_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          catalog_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>optional string catalog = 5;</code>
+       */
+      public com.google.protobuf.ByteString
+          getCatalogBytes() {
+        java.lang.Object ref = catalog_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          catalog_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>optional string catalog = 5;</code>
+       */
+      public Builder setCatalog(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        catalog_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional string catalog = 5;</code>
+       */
+      public Builder clearCatalog() {
+        
+        catalog_ = getDefaultInstance().getCatalog();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional string catalog = 5;</code>
+       */
+      public Builder setCatalogBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        catalog_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object schema_ = "";
+      /**
+       * <code>optional string schema = 6;</code>
+       */
+      public java.lang.String getSchema() {
+        java.lang.Object ref = schema_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          schema_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>optional string schema = 6;</code>
+       */
+      public com.google.protobuf.ByteString
+          getSchemaBytes() {
+        java.lang.Object ref = schema_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          schema_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>optional string schema = 6;</code>
+       */
+      public Builder setSchema(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        schema_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional string schema = 6;</code>
+       */
+      public Builder clearSchema() {
+        
+        schema_ = getDefaultInstance().getSchema();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional string schema = 6;</code>
+       */
+      public Builder setSchemaBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        schema_ = value;
+        onChanged();
+        return this;
+      }
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return this;
+      }
+
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return this;
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:ConnectionProperties)
+    }
+
+    // @@protoc_insertion_point(class_scope:ConnectionProperties)
+    private static final org.apache.calcite.avatica.proto.Common.ConnectionProperties DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new org.apache.calcite.avatica.proto.Common.ConnectionProperties();
+    }
+
+    public static org.apache.calcite.avatica.proto.Common.ConnectionProperties getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<ConnectionProperties>
+        PARSER = new com.google.protobuf.AbstractParser<ConnectionProperties>() {
+      public ConnectionProperties parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        try {
+          return new ConnectionProperties(input, extensionRegistry);
+        } catch (RuntimeException e) {
+          if (e.getCause() instanceof
+              com.google.protobuf.InvalidProtocolBufferException) {
+            throw (com.google.protobuf.InvalidProtocolBufferException)
+                e.getCause();
+          }
+          throw e;
+        }
+      }
+    };
+
+    public static com.google.protobuf.Parser<ConnectionProperties> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<ConnectionProperties> getParserForType() {
+      return PARSER;
+    }
+
+    public org.apache.calcite.avatica.proto.Common.ConnectionProperties getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  public interface StatementHandleOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:StatementHandle)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <code>optional string connection_id = 1;</code>
+     */
+    java.lang.String getConnectionId();
+    /**
+     * <code>optional string connection_id = 1;</code>
+     */
+    com.google.protobuf.ByteString
+        getConnectionIdBytes();
+
+    /**
+     * <code>optional uint32 id = 2;</code>
+     */
+    int getId();
+
+    /**
+     * <code>optional .Signature signature = 3;</code>
+     */
+    boolean hasSignature();
+    /**
+     * <code>optional .Signature signature = 3;</code>
+     */
+    org.apache.calcite.avatica.proto.Common.Signature getSignature();
+    /**
+     * <code>optional .Signature signature = 3;</code>
+     */
+    org.apache.calcite.avatica.proto.Common.SignatureOrBuilder getSignatureOrBuilder();
+  }
+  /**
+   * Protobuf type {@code StatementHandle}
+   *
+   * <pre>
+   * Statement handle
+   * </pre>
+   */
+  public  static final class StatementHandle extends
+      com.google.protobuf.GeneratedMessage implements
+      // @@protoc_insertion_point(message_implements:StatementHandle)
+      StatementHandleOrBuilder {
+    // Use StatementHandle.newBuilder() to construct.
+    private StatementHandle(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
+      super(builder);
+    }
+    private StatementHandle() {
+      connectionId_ = "";
+      id_ = 0;
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
+    }
+    private StatementHandle(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
+      this();
+      int mutable_bitField0_ = 0;
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            default: {
+              if (!input.skipField(tag)) {
+                done = true;
+              }
+              break;
+            }
+            case 10: {
+              String s = input.readStringRequireUtf8();
+
+              connectionId_ = s;
+              break;
+            }
+            case 16: {
+
+              id_ = input.readUInt32();
+              break;
+            }
+            case 26: {
+              org.apache.calcite.avatica.proto.Common.Signature.Builder subBuilder = null;
+              if (signature_ != null) {
+                subBuilder = signature_.toBuilder();
+              }
+              signature_ = input.readMessage(org.apache.calcite.avatica.proto.Common.Signature.parser(), extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(signature_);
+                signature_ = subBuilder.buildPartial();
+              }
+
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw new RuntimeException(e.setUnfinishedMessage(this));
+      } catch (java.io.IOException e) {
+        throw new RuntimeException(
+            new com.google.protobuf.InvalidProtocolBufferException(
+                e.getMessage()).setUnfinishedMessage(this));
+      } finally {
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return org.apache.calcite.avatica.proto.Common.internal_static_StatementHandle_descriptor;
+    }
+
+    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return org.apache.calcite.avatica.proto.Common.internal_static_StatementHandle_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              org.apache.calcite.avatica.proto.Common.StatementHandle.class, org.apache.calcite.avatica.proto.Common.StatementHandle.Builder.class);
+    }
+
+    public static final int CONNECTION_ID_FIELD_NUMBER = 1;
+    private volatile java.lang.Object connectionId_;
+    /**
+     * <code>optional string connection_id = 1;</code>
+     */
+    public java.lang.String getConnectionId() {
+      java.lang.Object ref = connectionId_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        connectionId_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>optional string connection_id = 1;</code>
+     */
+    public com.google.protobuf.ByteString
+        getConnectionIdBytes() {
+      java.lang.Object ref = connectionId_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        connectionId_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int ID_FIELD_NUMBER = 2;
+    private int id_;
+    /**
+     * <code>optional uint32 id = 2;</code>
+     */
+    public int getId() {
+      return id_;
+    }
+
+    public static final int SIGNATURE_FIELD_NUMBER = 3;
+    private org.apache.calcite.avatica.proto.Common.Signature signature_;
+    /**
+     * <code>optional .Signature signature = 3;</code>
+     */
+    public boolean hasSignature() {
+      return signature_ != null;
+    }
+    /**
+     * <code>optional .Signature signature = 3;</code>
+     */
+    public org.apache.calcite.avatica.proto.Common.Signature getSignature() {
+      return signature_ == null ? org.apache.calcite.avatica.proto.Common.Signature.getDefaultInstance() : signature_;
+    }
+    /**
+     * <code>optional .Signature signature = 3;</code>
+     */
+    public org.apache.calcite.avatica.proto.Common.SignatureOrBuilder getSignatureOrBuilder() {
+      return getSignature();
+    }
+
+    private byte memoizedIsInitialized = -1;
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (!getConnectionIdBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessage.writeString(output, 1, connectionId_);
+      }
+      if (id_ != 0) {
+        output.writeUInt32(2, id_);
+      }
+      if (signature_ != null) {
+        output.writeMessage(3, getSignature());
+      }
+    }
+
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (!getConnectionIdBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessage.computeStringSize(1, connectionId_);
+      }
+      if (id_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeUInt32Size(2, id_);
+      }
+      if (signature_ != null) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(3, getSignature());
+      }
+      memoizedSize = size;
+      return size;
+    }
+
+    private static final long serialVersionUID = 0L;
+    public static org.apache.calcite.avatica.proto.Common.StatementHandle parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static org.apache.calcite.avatica.proto.Common.StatementHandle parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static org.apache.calcite.avatica.proto.Common.StatementHandle parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static org.apache.calcite.avatica.proto.Common.StatementHandle parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static org.apache.calcite.avatica.proto.Common.StatementHandle parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input);
+    }
+    public static org.apache.calcite.avatica.proto.Common.StatementHandle parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input, extensionRegistry);
+    }
+    public static org.apache.calcite.avatica.proto.Common.StatementHandle parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return PARSER.parseDelimitedFrom(input);
+    }
+    public static org.apache.calcite.avatica.proto.Common.StatementHandle parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return PARSER.parseDelimitedFrom(input, extensionRegistry);
+    }
+    public static org.apache.calcite.avatica.proto.Common.StatementHandle parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input);
+    }
+    public static org.apache.calcite.avatica.proto.Common.StatementHandle parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input, extensionRegistry);
+    }
+
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(org.apache.calcite.avatica.proto.Common.StatementHandle prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code StatementHandle}
+     *
+     * <pre>
+     * Statement handle
+     * </pre>
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:StatementHandle)
+        org.apache.calcite.avatica.proto.Common.StatementHandleOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return org.apache.calcite.avatica.proto.Common.internal_static_StatementHandle_descriptor;
+      }
+
+      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return org.apache.calcite.avatica.proto.Common.internal_static_StatementHandle_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                org.apache.calcite.avatica.proto.Common.StatementHandle.class, org.apache.calcite.avatica.proto.Common.StatementHandle.Builder.class);
+      }
+
+      // Construct using org.apache.calcite.avatica.proto.Common.StatementHandle.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+        }
+      }
+      public Builder clear() {
+        super.clear();
+        connectionId_ = "";
+
+        id_ = 0;
+
+        if (signatureBuilder_ == null) {
+          signature_ = null;
+        } else {
+          signature_ = null;
+          signatureBuilder_ = null;
+        }
+        return this;
+      }
+
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return org.apache.calcite.avatica.proto.Common.internal_static_StatementHandle_descriptor;
+      }
+
+      public org.apache.calcite.avatica.proto.Common.StatementHandle getDefaultInstanceForType() {
+        return org.apache.calcite.avatica.proto.Common.StatementHandle.getDefaultInstance();
+      }
+
+      public org.apache.calcite.avatica.proto.Common.StatementHandle build() {
+        org.apache.calcite.avatica.proto.Common.StatementHandle result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      public org.apache.calcite.avatica.proto.Common.StatementHandle buildPartial() {
+        org.apache.calcite.avatica.proto.Common.StatementHandle result = new org.apache.calcite.avatica.proto.Common.StatementHandle(this);
+        result.connectionId_ = connectionId_;
+        result.id_ = id_;
+        if (signatureBuilder_ == null) {
+          result.signature_ = signature_;
+        } else {
+          result.signature_ = signatureBuilder_.build();
+        }
+        onBuilt();
+        return result;
+      }
+
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof org.apache.calcite.avatica.proto.Common.StatementHandle) {
+          return mergeFrom((org.apache.calcite.avatica.proto.Common.StatementHandle)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(org.apache.calcite.avatica.proto.Common.StatementHandle other) {
+        if (other == org.apache.calcite.avatica.proto.Common.StatementHandle.getDefaultInstance()) return this;
+        if (!other.getConnectionId().isEmpty()) {
+          connectionId_ = other.connectionId_;
+          onChanged();
+        }
+        if (other.getId() != 0) {
+          setId(other.getId());
+        }
+        if (other.hasSignature()) {
+          mergeSignature(other.getSignature());
+        }
+        onChanged();
+        return this;
+      }
+
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        org.apache.calcite.avatica.proto.Common.StatementHandle parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (org.apache.calcite.avatica.proto.Common.StatementHandle) e.getUnfinishedMessage();
+          throw e;
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private java.lang.Object connectionId_ = "";
+      /**
+       * <code>optional string connection_id = 1;</code>
+       */
+      public java.lang.String getConnectionId() {
+        java.lang.Object ref = connectionId_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          connectionId_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>optional string connection_id = 1;</code>
+       */
+      public com.google.protobuf.ByteString
+          getConnectionIdBytes() {
+        java.lang.Object ref = connectionId_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          connectionId_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>optional string connection_id = 1;</code>
+       */
+      public Builder setConnectionId(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        connectionId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional string connection_id = 1;</code>
+       */
+      public Builder clearConnectionId() {
+        
+        connectionId_ = getDefaultInstance().getConnectionId();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional string connection_id = 1;</code>
+       */
+      public Builder setConnectionIdBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        connectionId_ = value;
+        onChanged();
+        return this;
+      }
+
+      private int id_ ;
+      /**
+       * <code>optional uint32 id = 2;</code>
+       */
+      public int getId() {
+        return id_;
+      }
+      /**
+       * <code>optional uint32 id = 2;</code>
+       */
+      public Builder setId(int value) {
+        
+        id_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional uint32 id = 2;</code>
+       */
+      public Builder clearId() {
+        
+        id_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private org.apache.calcite.avatica.proto.Common.Signature signature_ = null;
+      private com.google.protobuf.SingleFieldBuilder<
+          org.apache.calcite.avatica.proto.Common.Signature, org.apache.calcite.avatica.proto.Common.Signature.Builder, org.apache.calcite.avatica.proto.Common.SignatureOrBuilder> signatureBuilder_;
+      /**
+       * <code>optional .Signature signature = 3;</code>
+       */
+      public boolean hasSignature() {
+        return signatureBuilder_ != null || signature_ != null;
+      }
+      /**
+       * <code>optional .Signature signature = 3;</code>
+       */
+      public org.apache.calcite.avatica.proto.Common.Signature getSignature() {
+        if (signatureBuilder_ == null) {
+          return signature_ == null ? org.apache.calcite.avatica.proto.Common.Signature.getDefaultInstance() : signature_;
+        } else {
+          return signatureBuilder_.getMessage();
+        }
+      }
+      /**
+       * <code>optional .Signature signature = 3;</code>
+       */
+      public Builder setSignature(org.apache.calcite.avatica.proto.Common.Signature value) {
+        if (signatureBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          signature_ = value;
+          onChanged();
+        } else {
+          signatureBuilder_.setMessage(value);
+        }
+
+        return this;
+      }
+      /**
+       * <code>optional .Signature signature = 3;</code>
+       */
+      public Builder setSignature(
+          org.apache.calcite.avatica.proto.Common.Signature.Builder builderForValue) {
+        if (signatureBuilder_ == null) {
+          signature_ = builderForValue.build();
+          onChanged();
+        } else {
+          signatureBuilder_.setMessage(builderForValue.build());
+        }
+
+        return this;
+      }
+      /**
+       * <code>optional .Signature signature = 3;</code>
+       */
+      public Builder mergeSignature(org.apache.calcite.avatica.proto.Common.Signature value) {
+        if (signatureBuilder_ == null) {
+          if (signature_ != null) {
+            signature_ =
+              org.apache.calcite.avatica.proto.Common.Signature.newBuilder(signature_).mergeFrom(value).buildPartial();
+          } else {
+            signature_ = value;
+          }
+          onChanged();
+        } else {
+          signatureBuilder_.mergeFrom(value);
+        }
+
+        return this;
+      }
+      /**
+       * <code>optional .Signature signature = 3;</code>
+       */
+      public Builder clearSignature() {
+        if (signatureBuilder_ == null) {
+          signature_ = null;
+          onChanged();
+        } else {
+          signature_ = null;
+          signatureBuilder_ = null;
+        }
+
+        return this;
+      }
+      /**
+       * <code>optional .Signature signature = 3;</code>
+       */
+      public org.apache.calcite.avatica.proto.Common.Signature.Builder getSignatureBuilder() {
+        
+        onChanged();
+        return getSignatureFieldBuilder().getBuilder();
+      }
+      /**
+       * <code>optional .Signature signature = 3;</code>
+       */
+      public org.apache.calcite.avatica.proto.Common.SignatureOrBuilder getSignatureOrBuilder() {
+        if (signatureBuilder_ != null) {
+          return signatureBuilder_.getMessageOrBuilder();
+        } else {
+          return signature_ == null ?
+              org.apache.calcite.avatica.proto.Common.Signature.getDefaultInstance() : signature_;
+        }
+      }
+      /**
+       * <code>optional .Signature signature = 3;</code>
+       */
+      private com.google.protobuf.SingleFieldBuilder<
+          org.apache.calcite.avatica.proto.Common.Signature, org.apache.calcite.avatica.proto.Common.Signature.Builder, org.apache.calcite.avatica.proto.Common.SignatureOrBuilder> 
+          getSignatureFieldBuilder() {
+        if (signatureBuilder_ == null) {
+          signatureBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+              org.apache.calcite.avatica.proto.Common.Signature, org.apache.calcite.avatica.proto.Common.Signature.Builder, org.apache.calcite.avatica.proto.Common.SignatureOrBuilder>(
+                  getSignature(),
+                  getParentForChildren(),
+                  isClean());
+          signature_ = null;
+        }
+        return signatureBuilder_;
+      }
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return this;
+      }
+
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return this;
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:StatementHandle)
+    }
+
+    // @@protoc_insertion_point(class_scope:StatementHandle)
+    private static final org.apache.calcite.avatica.proto.Common.StatementHandle DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new org.apache.calcite.avatica.proto.Common.StatementHandle();
+    }
+
+    public static org.apache.calcite.avatica.proto.Common.StatementHandle getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<StatementHandle>
+        PARSER = new com.google.protobuf.AbstractParser<StatementHandle>() {
+      public StatementHandle parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        try {
+          return new StatementHandle(input, extensionRegistry);
+        } catch (RuntimeException e) {
+          if (e.getCause() instanceof
+              com.google.protobuf.InvalidProtocolBufferException) {
+            throw (com.google.protobuf.InvalidProtocolBufferException)
+                e.getCause();
+          }
+          throw e;
+        }
+      }
+    };
+
+    public static com.google.protobuf.Parser<StatementHandle> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<StatementHandle> getParserForType() {
+      return PARSER;
+    }
+
+    public org.apache.calcite.avatica.proto.Common.StatementHandle getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  public interface SignatureOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Signature)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <code>repeated .ColumnMetaData columns = 1;</code>
+     */
+    java.util.List<org.apache.calcite.avatica.proto.Common.ColumnMetaData> 
+        getColumnsList();
+    /**
+     * <code>repeated .ColumnMetaData columns = 1;</code>
+     */
+    org.apache.calcite.avatica.proto.Common.ColumnMetaData getColumns(int index);
+    /**
+     * <code>repeated .ColumnMetaData columns = 1;</code>
+     */
+    int getColumnsCount();
+    /**
+     * <code>repeated .ColumnMetaData columns = 1;</code>
+     */
+    java.util.List<? extends org.apache.calcite.avatica.proto.Common.ColumnMetaDataOrBuilder> 
+        getColumnsOrBuilderList();
+    /**
+     * <code>repeated .ColumnMetaData columns = 1;</code>
+     */
+    org.apache.calcite.avatica.proto.Common.ColumnMetaDataOrBuilder getColumnsOrBuilder(
+        int index);
+
+    /**
+     * <code>optional string sql = 2;</code>
+     */
+    java.lang.String getSql();
+    /**
+     * <code>optional string sql = 2;</code>
+     */
+    com.google.protobuf.ByteString
+        getSqlBytes();
+
+    /**
+     * <code>repeated .AvaticaParameter parameters = 3;</code>
+     */
+    java.util.List<org.apache.calcite.avatica.proto.Common.AvaticaParameter> 
+        getParametersList();
+    /**
+     * <code>repeated .AvaticaParameter parameters = 3;</code>
+     */
+    org.apache.calcite.avatica.proto.Common.AvaticaParameter getParameters(int index);
+    /**
+     * <code>repeated .AvaticaParameter parameters = 3;</code>
+     */
+    int getParametersCount();
+    /**
+     * <code>repeated .AvaticaParameter parameters = 3;</code>
+     */
+    java.util.List<? extends org.apache.calcite.avatica.proto.Common.AvaticaParameterOrBuilder> 
+        getParametersOrBuilderList();
+    /**
+     * <code>repeated .AvaticaParameter parameters = 3;</code>
+     */
+    org.apache.calcite.avatica.proto.Common.AvaticaParameterOrBuilder getParametersOrBuilder(
+        int index);
+
+    /**
+     * <code>optional .CursorFactory cursor_factory = 4;</code>
+     */
+    boolean hasCursorFactory();
+    /**
+     * <code>optional .CursorFactory cursor_factory = 4;</code>
+     */
+    org.apache.calcite.avatica.proto.Common.CursorFactory getCursorFactory();
+    /**
+     * <code>optional .CursorFactory cursor_factory = 4;</code>
+     */
+    org.apache.calcite.avatica.proto.Common.CursorFactoryOrBuilder getCursorFactoryOrBuilder();
+
+    /**
+     * <code>optional .StatementType statementType = 5;</code>
+     */
+    int getStatementTypeValue();
+    /**
+     * <code>optional .StatementType statementType = 5;</code>
+     */
+    org.apache.calcite.avatica.proto.Common.StatementType getStatementType();
+  }
+  /**
+   * Protobuf type {@code Signature}
+   *
+   * <pre>
+   * Results of preparing a statement
+   * </pre>
+   */
+  public  static final class Signature extends
+      com.google.protobuf.GeneratedMessage implements
+      // @@protoc_insertion_point(message_implements:Signature)
+      SignatureOrBuilder {
+    // Use Signature.newBuilder() to construct.
+    private Signature(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
+      super(builder);
+    }
+    private Signature() {
+      columns_ = java.util.Collections.emptyList();
+      sql_ = "";
+      parameters_ = java.util.Collections.emptyList();
+      statementType_ = 0;
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownF

<TRUNCATED>