Search in sources :

Example 1 with AvaticaParameter

use of org.apache.calcite.avatica.AvaticaParameter in project calcite by apache.

the class CalcitePrepareImpl method prepare2_.

<T> CalciteSignature<T> prepare2_(Context context, Query<T> query, Type elementType, long maxRowCount, CalciteCatalogReader catalogReader, RelOptPlanner planner) {
    final JavaTypeFactory typeFactory = context.getTypeFactory();
    final EnumerableRel.Prefer prefer;
    if (elementType == Object[].class) {
        prefer = EnumerableRel.Prefer.ARRAY;
    } else {
        prefer = EnumerableRel.Prefer.CUSTOM;
    }
    final Convention resultConvention = enableBindable ? BindableConvention.INSTANCE : EnumerableConvention.INSTANCE;
    final CalcitePreparingStmt preparingStmt = new CalcitePreparingStmt(this, context, catalogReader, typeFactory, context.getRootSchema(), prefer, planner, resultConvention, createConvertletTable());
    final RelDataType x;
    final Prepare.PreparedResult preparedResult;
    final Meta.StatementType statementType;
    if (query.sql != null) {
        final CalciteConnectionConfig config = context.config();
        final SqlParser.ConfigBuilder parserConfig = createParserConfig().setQuotedCasing(config.quotedCasing()).setUnquotedCasing(config.unquotedCasing()).setQuoting(config.quoting()).setConformance(config.conformance()).setCaseSensitive(config.caseSensitive());
        final SqlParserImplFactory parserFactory = config.parserFactory(SqlParserImplFactory.class, null);
        if (parserFactory != null) {
            parserConfig.setParserFactory(parserFactory);
        }
        SqlParser parser = createParser(query.sql, parserConfig);
        SqlNode sqlNode;
        try {
            sqlNode = parser.parseStmt();
            statementType = getStatementType(sqlNode.getKind());
        } catch (SqlParseException e) {
            throw new RuntimeException("parse failed: " + e.getMessage(), e);
        }
        Hook.PARSE_TREE.run(new Object[] { query.sql, sqlNode });
        if (sqlNode.getKind().belongsTo(SqlKind.DDL)) {
            executeDdl(context, sqlNode);
            return new CalciteSignature<>(query.sql, ImmutableList.<AvaticaParameter>of(), ImmutableMap.<String, Object>of(), null, ImmutableList.<ColumnMetaData>of(), Meta.CursorFactory.OBJECT, null, ImmutableList.<RelCollation>of(), -1, null, Meta.StatementType.OTHER_DDL);
        }
        final SqlValidator validator = createSqlValidator(context, catalogReader);
        validator.setIdentifierExpansion(true);
        validator.setDefaultNullCollation(config.defaultNullCollation());
        preparedResult = preparingStmt.prepareSql(sqlNode, Object.class, validator, true);
        switch(sqlNode.getKind()) {
            case INSERT:
            case DELETE:
            case UPDATE:
            case EXPLAIN:
                // FIXME: getValidatedNodeType is wrong for DML
                x = RelOptUtil.createDmlRowType(sqlNode.getKind(), typeFactory);
                break;
            default:
                x = validator.getValidatedNodeType(sqlNode);
        }
    } else if (query.queryable != null) {
        x = context.getTypeFactory().createType(elementType);
        preparedResult = preparingStmt.prepareQueryable(query.queryable, x);
        statementType = getStatementType(preparedResult);
    } else {
        assert query.rel != null;
        x = query.rel.getRowType();
        preparedResult = preparingStmt.prepareRel(query.rel);
        statementType = getStatementType(preparedResult);
    }
    final List<AvaticaParameter> parameters = new ArrayList<>();
    final RelDataType parameterRowType = preparedResult.getParameterRowType();
    for (RelDataTypeField field : parameterRowType.getFieldList()) {
        RelDataType type = field.getType();
        parameters.add(new AvaticaParameter(false, getPrecision(type), getScale(type), getTypeOrdinal(type), getTypeName(type), getClassName(type), field.getName()));
    }
    RelDataType jdbcType = makeStruct(typeFactory, x);
    final List<List<String>> originList = preparedResult.getFieldOrigins();
    final List<ColumnMetaData> columns = getColumnMetaDataList(typeFactory, x, jdbcType, originList);
    Class resultClazz = null;
    if (preparedResult instanceof Typed) {
        resultClazz = (Class) ((Typed) preparedResult).getElementType();
    }
    final Meta.CursorFactory cursorFactory = preparingStmt.resultConvention == BindableConvention.INSTANCE ? Meta.CursorFactory.ARRAY : Meta.CursorFactory.deduce(columns, resultClazz);
    // noinspection unchecked
    final Bindable<T> bindable = preparedResult.getBindable(cursorFactory);
    return new CalciteSignature<>(query.sql, parameters, preparingStmt.internalParameters, jdbcType, columns, cursorFactory, context.getRootSchema(), preparedResult instanceof Prepare.PreparedResultImpl ? ((Prepare.PreparedResultImpl) preparedResult).collations : ImmutableList.<RelCollation>of(), maxRowCount, bindable, statementType);
}
Also used : Meta(org.apache.calcite.avatica.Meta) ArrayList(java.util.ArrayList) RelDataType(org.apache.calcite.rel.type.RelDataType) AvaticaParameter(org.apache.calcite.avatica.AvaticaParameter) Typed(org.apache.calcite.runtime.Typed) SqlValidator(org.apache.calcite.sql.validate.SqlValidator) JavaTypeFactory(org.apache.calcite.adapter.java.JavaTypeFactory) CalcitePrepare(org.apache.calcite.jdbc.CalcitePrepare) SqlParserImplFactory(org.apache.calcite.sql.parser.SqlParserImplFactory) ArrayList(java.util.ArrayList) ImmutableIntList(org.apache.calcite.util.ImmutableIntList) List(java.util.List) ImmutableList(com.google.common.collect.ImmutableList) ColumnMetaData(org.apache.calcite.avatica.ColumnMetaData) EnumerableRel(org.apache.calcite.adapter.enumerable.EnumerableRel) SqlNode(org.apache.calcite.sql.SqlNode) SqlParseException(org.apache.calcite.sql.parser.SqlParseException) CalciteConnectionConfig(org.apache.calcite.config.CalciteConnectionConfig) SqlParser(org.apache.calcite.sql.parser.SqlParser) BindableConvention(org.apache.calcite.interpreter.BindableConvention) Convention(org.apache.calcite.plan.Convention) EnumerableConvention(org.apache.calcite.adapter.enumerable.EnumerableConvention) RelDataTypeField(org.apache.calcite.rel.type.RelDataTypeField) RelCollation(org.apache.calcite.rel.RelCollation)

Example 2 with AvaticaParameter

use of org.apache.calcite.avatica.AvaticaParameter in project calcite-avatica by apache.

the class ProtobufTranslationImplTest method getResponses.

/**
 * Generates a collection of Responses whose serialization will be tested.
 */
private static List<Response> getResponses() {
    final RpcMetadataResponse rpcMetadata = new RpcMetadataResponse("localhost:8765");
    LinkedList<Response> responses = new LinkedList<>();
    // Nested classes (Signature, ColumnMetaData, CursorFactory, etc) are implicitly getting tested)
    // Stub out the metadata for a row
    ScalarType arrayComponentType = ColumnMetaData.scalar(Types.INTEGER, "integer", Rep.INTEGER);
    ColumnMetaData arrayColumnMetaData = getArrayColumnMetaData(arrayComponentType, 2, "counts");
    List<ColumnMetaData> columns = Arrays.asList(MetaImpl.columnMetaData("str", 0, String.class, true), MetaImpl.columnMetaData("count", 1, Integer.class, true), arrayColumnMetaData);
    List<AvaticaParameter> params = Arrays.asList(new AvaticaParameter(false, 10, 0, Types.VARCHAR, "VARCHAR", String.class.getName(), "str"));
    Meta.CursorFactory cursorFactory = Meta.CursorFactory.create(Style.LIST, Object.class, Arrays.asList("str", "count", "counts"));
    // The row values
    List<Object> rows = new ArrayList<>();
    rows.add(new Object[] { "str_value1", 50, Arrays.asList(1, 2, 3) });
    rows.add(new Object[] { "str_value2", 100, Arrays.asList(1) });
    // Create the signature and frame using the metadata and values
    Signature signature = Signature.create(columns, "sql", params, cursorFactory, Meta.StatementType.SELECT);
    Frame frame = Frame.create(Integer.MAX_VALUE, true, rows);
    // And then create a ResultSetResponse
    ResultSetResponse results1 = new ResultSetResponse("connectionId", Integer.MAX_VALUE, true, signature, frame, Long.MAX_VALUE, rpcMetadata);
    responses.add(results1);
    responses.add(new CloseStatementResponse(rpcMetadata));
    ConnectionPropertiesImpl connProps = new ConnectionPropertiesImpl(false, true, Integer.MAX_VALUE, "catalog", "schema");
    responses.add(new ConnectionSyncResponse(connProps, rpcMetadata));
    responses.add(new OpenConnectionResponse(rpcMetadata));
    responses.add(new CloseConnectionResponse(rpcMetadata));
    responses.add(new CreateStatementResponse("connectionId", Integer.MAX_VALUE, rpcMetadata));
    Map<Meta.DatabaseProperty, Object> propertyMap = new HashMap<>();
    for (Meta.DatabaseProperty prop : Meta.DatabaseProperty.values()) {
        propertyMap.put(prop, prop.defaultValue);
    }
    responses.add(new DatabasePropertyResponse(propertyMap, rpcMetadata));
    responses.add(new ExecuteResponse(Arrays.asList(results1, results1, results1), false, rpcMetadata));
    responses.add(new FetchResponse(frame, false, false, rpcMetadata));
    responses.add(new FetchResponse(frame, true, true, rpcMetadata));
    responses.add(new FetchResponse(frame, false, true, rpcMetadata));
    responses.add(new PrepareResponse(new Meta.StatementHandle("connectionId", Integer.MAX_VALUE, signature), rpcMetadata));
    StringWriter sw = new StringWriter();
    new Exception().printStackTrace(new PrintWriter(sw));
    responses.add(new ErrorResponse(Collections.singletonList(sw.toString()), "Test Error Message", ErrorResponse.UNKNOWN_ERROR_CODE, ErrorResponse.UNKNOWN_SQL_STATE, AvaticaSeverity.WARNING, rpcMetadata));
    // No more results, statement not missing
    responses.add(new SyncResultsResponse(false, false, rpcMetadata));
    // Missing statement, no results
    responses.add(new SyncResultsResponse(false, true, rpcMetadata));
    // More results, no missing statement
    responses.add(new SyncResultsResponse(true, false, rpcMetadata));
    // Some tests to make sure ErrorResponse doesn't fail.
    responses.add(new ErrorResponse((List<String>) null, null, 0, null, null, null));
    responses.add(new ErrorResponse(Arrays.asList("stacktrace1", "stacktrace2"), null, 0, null, null, null));
    responses.add(new CommitResponse());
    responses.add(new RollbackResponse());
    long[] updateCounts = new long[] { 1, 0, 1, 1 };
    responses.add(new ExecuteBatchResponse("connectionId", 12345, updateCounts, false, rpcMetadata));
    return responses;
}
Also used : Meta(org.apache.calcite.avatica.Meta) Frame(org.apache.calcite.avatica.Meta.Frame) HashMap(java.util.HashMap) ScalarType(org.apache.calcite.avatica.ColumnMetaData.ScalarType) ArrayList(java.util.ArrayList) DatabasePropertyResponse(org.apache.calcite.avatica.remote.Service.DatabasePropertyResponse) RpcMetadataResponse(org.apache.calcite.avatica.remote.Service.RpcMetadataResponse) ConnectionPropertiesImpl(org.apache.calcite.avatica.ConnectionPropertiesImpl) RollbackResponse(org.apache.calcite.avatica.remote.Service.RollbackResponse) AvaticaParameter(org.apache.calcite.avatica.AvaticaParameter) CloseConnectionResponse(org.apache.calcite.avatica.remote.Service.CloseConnectionResponse) CloseStatementResponse(org.apache.calcite.avatica.remote.Service.CloseStatementResponse) StringWriter(java.io.StringWriter) ExecuteBatchResponse(org.apache.calcite.avatica.remote.Service.ExecuteBatchResponse) ResultSetResponse(org.apache.calcite.avatica.remote.Service.ResultSetResponse) OpenConnectionResponse(org.apache.calcite.avatica.remote.Service.OpenConnectionResponse) List(java.util.List) ArrayList(java.util.ArrayList) LinkedList(java.util.LinkedList) ColumnMetaData(org.apache.calcite.avatica.ColumnMetaData) PrintWriter(java.io.PrintWriter) CreateStatementResponse(org.apache.calcite.avatica.remote.Service.CreateStatementResponse) SyncResultsResponse(org.apache.calcite.avatica.remote.Service.SyncResultsResponse) PrepareResponse(org.apache.calcite.avatica.remote.Service.PrepareResponse) ExecuteResponse(org.apache.calcite.avatica.remote.Service.ExecuteResponse) CommitResponse(org.apache.calcite.avatica.remote.Service.CommitResponse) FetchResponse(org.apache.calcite.avatica.remote.Service.FetchResponse) LinkedList(java.util.LinkedList) IOException(java.io.IOException) ErrorResponse(org.apache.calcite.avatica.remote.Service.ErrorResponse) CloseConnectionResponse(org.apache.calcite.avatica.remote.Service.CloseConnectionResponse) PrepareResponse(org.apache.calcite.avatica.remote.Service.PrepareResponse) FetchResponse(org.apache.calcite.avatica.remote.Service.FetchResponse) RpcMetadataResponse(org.apache.calcite.avatica.remote.Service.RpcMetadataResponse) ExecuteBatchResponse(org.apache.calcite.avatica.remote.Service.ExecuteBatchResponse) DatabasePropertyResponse(org.apache.calcite.avatica.remote.Service.DatabasePropertyResponse) OpenConnectionResponse(org.apache.calcite.avatica.remote.Service.OpenConnectionResponse) RollbackResponse(org.apache.calcite.avatica.remote.Service.RollbackResponse) CloseStatementResponse(org.apache.calcite.avatica.remote.Service.CloseStatementResponse) Response(org.apache.calcite.avatica.remote.Service.Response) CreateStatementResponse(org.apache.calcite.avatica.remote.Service.CreateStatementResponse) ErrorResponse(org.apache.calcite.avatica.remote.Service.ErrorResponse) ConnectionSyncResponse(org.apache.calcite.avatica.remote.Service.ConnectionSyncResponse) ResultSetResponse(org.apache.calcite.avatica.remote.Service.ResultSetResponse) ExecuteResponse(org.apache.calcite.avatica.remote.Service.ExecuteResponse) SyncResultsResponse(org.apache.calcite.avatica.remote.Service.SyncResultsResponse) CommitResponse(org.apache.calcite.avatica.remote.Service.CommitResponse) Signature(org.apache.calcite.avatica.Meta.Signature) ConnectionSyncResponse(org.apache.calcite.avatica.remote.Service.ConnectionSyncResponse)

Example 3 with AvaticaParameter

use of org.apache.calcite.avatica.AvaticaParameter in project druid by druid-io.

the class DruidStatement method prepare.

public DruidStatement prepare(final String query, final long maxRowCount, final AuthenticationResult authenticationResult) {
    synchronized (lock) {
        try {
            ensure(State.NEW);
            sqlLifecycle.initialize(query, queryContext);
            sqlLifecycle.validateAndAuthorize(authenticationResult);
            this.authenticationResult = authenticationResult;
            PrepareResult prepareResult = sqlLifecycle.prepare();
            this.maxRowCount = maxRowCount;
            this.query = query;
            List<AvaticaParameter> params = new ArrayList<>();
            final RelDataType parameterRowType = prepareResult.getParameterRowType();
            for (RelDataTypeField field : parameterRowType.getFieldList()) {
                RelDataType type = field.getType();
                params.add(createParameter(field, type));
            }
            this.signature = Meta.Signature.create(createColumnMetaData(prepareResult.getRowType()), query, params, Meta.CursorFactory.ARRAY, // We only support SELECT
            Meta.StatementType.SELECT);
            this.state = State.PREPARED;
        } catch (Throwable t) {
            return closeAndPropagateThrowable(t);
        }
        return this;
    }
}
Also used : PrepareResult(org.apache.druid.sql.calcite.planner.PrepareResult) RelDataTypeField(org.apache.calcite.rel.type.RelDataTypeField) ArrayList(java.util.ArrayList) RelDataType(org.apache.calcite.rel.type.RelDataType) AvaticaParameter(org.apache.calcite.avatica.AvaticaParameter)

Example 4 with AvaticaParameter

use of org.apache.calcite.avatica.AvaticaParameter in project calcite-avatica by apache.

the class ProtobufTranslationImplTest method getRequests.

/**
 * Generates a collection of Requests whose serialization will be tested.
 */
private static List<Request> getRequests() {
    LinkedList<Request> requests = new LinkedList<>();
    requests.add(new CatalogsRequest());
    requests.add(new DatabasePropertyRequest());
    requests.add(new SchemasRequest("connectionId", "catalog", "schemaPattern"));
    requests.add(new TablesRequest("connectionId", "catalog", "schemaPattern", "tableNamePattern", Arrays.asList("STRING", "BOOLEAN", "INT")));
    requests.add(new TableTypesRequest());
    requests.add(new ColumnsRequest("connectionId", "catalog", "schemaPattern", "tableNamePattern", "columnNamePattern"));
    requests.add(new TypeInfoRequest());
    requests.add(new PrepareAndExecuteRequest("connectionId", Integer.MAX_VALUE, "sql", Long.MAX_VALUE));
    requests.add(new PrepareRequest("connectionId", "sql", Long.MAX_VALUE));
    List<TypedValue> paramValues = Arrays.asList(TypedValue.create(Rep.BOOLEAN.name(), Boolean.TRUE), TypedValue.create(Rep.STRING.name(), "string"));
    FetchRequest fetchRequest = new FetchRequest("connectionId", Integer.MAX_VALUE, Long.MAX_VALUE, Integer.MAX_VALUE);
    requests.add(fetchRequest);
    requests.add(new CreateStatementRequest("connectionId"));
    requests.add(new CloseStatementRequest("connectionId", Integer.MAX_VALUE));
    Map<String, String> info = new HashMap<>();
    info.put("param1", "value1");
    info.put("param2", "value2");
    requests.add(new OpenConnectionRequest("connectionId", info));
    requests.add(new CloseConnectionRequest("connectionId"));
    requests.add(new ConnectionSyncRequest("connectionId", new ConnectionPropertiesImpl(Boolean.FALSE, Boolean.FALSE, Integer.MAX_VALUE, "catalog", "schema")));
    requests.add(new SyncResultsRequest("connectionId", 12345, getSqlQueryState(), 150));
    requests.add(new SyncResultsRequest("connectionId2", 54321, getMetadataQueryState1(), 0));
    requests.add(new SyncResultsRequest("connectionId3", 5, getMetadataQueryState2(), 10));
    requests.add(new CommitRequest("connectionId"));
    requests.add(new RollbackRequest("connectionId"));
    // ExecuteBatchRequest omitted because of the special protobuf conversion it does
    List<String> commands = Arrays.asList("command1", "command2", "command3");
    requests.add(new PrepareAndExecuteBatchRequest("connectionId", 12345, commands));
    List<ColumnMetaData> columns = Collections.emptyList();
    List<AvaticaParameter> params = Collections.emptyList();
    Meta.CursorFactory cursorFactory = Meta.CursorFactory.create(Style.LIST, Object.class, Collections.<String>emptyList());
    Signature signature = Signature.create(columns, "sql", params, cursorFactory, Meta.StatementType.SELECT);
    Meta.StatementHandle handle = new Meta.StatementHandle("1234", 1, signature);
    requests.add(new ExecuteRequest(handle, Arrays.<TypedValue>asList((TypedValue) null), 10));
    requests.add(new ExecuteRequest(handle, Arrays.asList(TypedValue.EXPLICIT_NULL), 10));
    return requests;
}
Also used : PrepareAndExecuteBatchRequest(org.apache.calcite.avatica.remote.Service.PrepareAndExecuteBatchRequest) Meta(org.apache.calcite.avatica.Meta) HashMap(java.util.HashMap) DatabasePropertyRequest(org.apache.calcite.avatica.remote.Service.DatabasePropertyRequest) SchemasRequest(org.apache.calcite.avatica.remote.Service.SchemasRequest) ConnectionPropertiesImpl(org.apache.calcite.avatica.ConnectionPropertiesImpl) OpenConnectionRequest(org.apache.calcite.avatica.remote.Service.OpenConnectionRequest) RollbackRequest(org.apache.calcite.avatica.remote.Service.RollbackRequest) SyncResultsRequest(org.apache.calcite.avatica.remote.Service.SyncResultsRequest) AvaticaParameter(org.apache.calcite.avatica.AvaticaParameter) TablesRequest(org.apache.calcite.avatica.remote.Service.TablesRequest) TableTypesRequest(org.apache.calcite.avatica.remote.Service.TableTypesRequest) ExecuteRequest(org.apache.calcite.avatica.remote.Service.ExecuteRequest) PrepareAndExecuteRequest(org.apache.calcite.avatica.remote.Service.PrepareAndExecuteRequest) FetchRequest(org.apache.calcite.avatica.remote.Service.FetchRequest) PrepareAndExecuteRequest(org.apache.calcite.avatica.remote.Service.PrepareAndExecuteRequest) CloseStatementRequest(org.apache.calcite.avatica.remote.Service.CloseStatementRequest) ColumnMetaData(org.apache.calcite.avatica.ColumnMetaData) PrepareRequest(org.apache.calcite.avatica.remote.Service.PrepareRequest) CommitRequest(org.apache.calcite.avatica.remote.Service.CommitRequest) ExecuteRequest(org.apache.calcite.avatica.remote.Service.ExecuteRequest) TablesRequest(org.apache.calcite.avatica.remote.Service.TablesRequest) CloseStatementRequest(org.apache.calcite.avatica.remote.Service.CloseStatementRequest) FetchRequest(org.apache.calcite.avatica.remote.Service.FetchRequest) PrepareRequest(org.apache.calcite.avatica.remote.Service.PrepareRequest) CreateStatementRequest(org.apache.calcite.avatica.remote.Service.CreateStatementRequest) CloseConnectionRequest(org.apache.calcite.avatica.remote.Service.CloseConnectionRequest) CatalogsRequest(org.apache.calcite.avatica.remote.Service.CatalogsRequest) SyncResultsRequest(org.apache.calcite.avatica.remote.Service.SyncResultsRequest) Request(org.apache.calcite.avatica.remote.Service.Request) ConnectionSyncRequest(org.apache.calcite.avatica.remote.Service.ConnectionSyncRequest) SchemasRequest(org.apache.calcite.avatica.remote.Service.SchemasRequest) TableTypesRequest(org.apache.calcite.avatica.remote.Service.TableTypesRequest) DatabasePropertyRequest(org.apache.calcite.avatica.remote.Service.DatabasePropertyRequest) PrepareAndExecuteBatchRequest(org.apache.calcite.avatica.remote.Service.PrepareAndExecuteBatchRequest) TypeInfoRequest(org.apache.calcite.avatica.remote.Service.TypeInfoRequest) CommitRequest(org.apache.calcite.avatica.remote.Service.CommitRequest) PrepareAndExecuteRequest(org.apache.calcite.avatica.remote.Service.PrepareAndExecuteRequest) OpenConnectionRequest(org.apache.calcite.avatica.remote.Service.OpenConnectionRequest) ColumnsRequest(org.apache.calcite.avatica.remote.Service.ColumnsRequest) RollbackRequest(org.apache.calcite.avatica.remote.Service.RollbackRequest) LinkedList(java.util.LinkedList) CloseConnectionRequest(org.apache.calcite.avatica.remote.Service.CloseConnectionRequest) TypeInfoRequest(org.apache.calcite.avatica.remote.Service.TypeInfoRequest) CreateStatementRequest(org.apache.calcite.avatica.remote.Service.CreateStatementRequest) Signature(org.apache.calcite.avatica.Meta.Signature) ConnectionSyncRequest(org.apache.calcite.avatica.remote.Service.ConnectionSyncRequest) CatalogsRequest(org.apache.calcite.avatica.remote.Service.CatalogsRequest) ColumnsRequest(org.apache.calcite.avatica.remote.Service.ColumnsRequest)

Aggregations

AvaticaParameter (org.apache.calcite.avatica.AvaticaParameter)4 ArrayList (java.util.ArrayList)3 ColumnMetaData (org.apache.calcite.avatica.ColumnMetaData)3 Meta (org.apache.calcite.avatica.Meta)3 HashMap (java.util.HashMap)2 LinkedList (java.util.LinkedList)2 List (java.util.List)2 ConnectionPropertiesImpl (org.apache.calcite.avatica.ConnectionPropertiesImpl)2 Signature (org.apache.calcite.avatica.Meta.Signature)2 ImmutableList (com.google.common.collect.ImmutableList)1 IOException (java.io.IOException)1 PrintWriter (java.io.PrintWriter)1 StringWriter (java.io.StringWriter)1 EnumerableConvention (org.apache.calcite.adapter.enumerable.EnumerableConvention)1 EnumerableRel (org.apache.calcite.adapter.enumerable.EnumerableRel)1 JavaTypeFactory (org.apache.calcite.adapter.java.JavaTypeFactory)1 ScalarType (org.apache.calcite.avatica.ColumnMetaData.ScalarType)1 Frame (org.apache.calcite.avatica.Meta.Frame)1 CatalogsRequest (org.apache.calcite.avatica.remote.Service.CatalogsRequest)1 CloseConnectionRequest (org.apache.calcite.avatica.remote.Service.CloseConnectionRequest)1