当前位置: 首页>>代码示例>>Java>>正文


Java AvaticaUtils类代码示例

本文整理汇总了Java中org.apache.calcite.avatica.AvaticaUtils的典型用法代码示例。如果您正苦于以下问题:Java AvaticaUtils类的具体用法?Java AvaticaUtils怎么用?Java AvaticaUtils使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


AvaticaUtils类属于org.apache.calcite.avatica包,在下文中一共展示了AvaticaUtils类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: parseDataSource

import org.apache.calcite.avatica.AvaticaUtils; //导入依赖的package包/类
private static DataSource parseDataSource(Map<String, Object> operand) throws IOException {
	final String connection = (String) operand.get("connection");

	Map<String, Object> jdbcConfig;
	if (connection != null) {
		try (InputStream connConfig = ClassLoader.getSystemResourceAsStream(connection)) {
			jdbcConfig = new ObjectMapper().readValue(
					connConfig,
					new TypeReference<Map<String, Object>>(){}
			);
		}
	} else {
		jdbcConfig = operand;
	}

	final String dataSourceName = (String) jdbcConfig.get("dataSource");
	if (dataSourceName != null) {
		return AvaticaUtils.instantiatePlugin(DataSource.class, dataSourceName);
	}

	final String jdbcUrl = (String) jdbcConfig.get("jdbcUrl");
	final String jdbcDriver = (String) jdbcConfig.get("jdbcDriver");
	final String jdbcUser = (String) jdbcConfig.get("jdbcUser");
	final String jdbcPassword = (String) jdbcConfig.get("jdbcPassword");
	return dataSource(jdbcUrl, jdbcDriver, jdbcUser, jdbcPassword);
}
 
开发者ID:tzolov,项目名称:calcite-sql-rewriter,代码行数:27,代码来源:JournalledJdbcSchema.java

示例2: prepareAndExecuteBatch

import org.apache.calcite.avatica.AvaticaUtils; //导入依赖的package包/类
@Override public ExecuteBatchResult prepareAndExecuteBatch(StatementHandle h,
    List<String> sqlCommands) throws NoSuchStatementException {
  try {
    // Get the statement
    final StatementInfo info = statementCache.getIfPresent(h.id);
    if (info == null) {
      throw new NoSuchStatementException(h);
    }

    // addBatch() for each sql command
    final Statement stmt = info.statement;
    for (String sqlCommand : sqlCommands) {
      stmt.addBatch(sqlCommand);
    }

    // Execute the batch and return the results
    return new ExecuteBatchResult(AvaticaUtils.executeLargeBatch(stmt));
  } catch (SQLException e) {
    throw propagate(e);
  }
}
 
开发者ID:apache,项目名称:calcite-avatica,代码行数:22,代码来源:JdbcMeta.java

示例3: executeBatchProtobuf

import org.apache.calcite.avatica.AvaticaUtils; //导入依赖的package包/类
@Override public ExecuteBatchResult executeBatchProtobuf(StatementHandle h,
    List<Requests.UpdateBatch> updateBatches) throws NoSuchStatementException {
  try {
    final StatementInfo info = statementCache.getIfPresent(h.id);
    if (null == info) {
      throw new NoSuchStatementException(h);
    }

    final PreparedStatement preparedStmt = (PreparedStatement) info.statement;
    for (Requests.UpdateBatch update : updateBatches) {
      int i = 1;
      for (Common.TypedValue value : update.getParameterValuesList()) {
        // Use the value and then increment
        preparedStmt.setObject(i++, TypedValue.protoToJdbc(value, calendar));
      }
      preparedStmt.addBatch();
    }
    return new ExecuteBatchResult(AvaticaUtils.executeLargeBatch(preparedStmt));
  } catch (SQLException e) {
    throw propagate(e);
  }
}
 
开发者ID:apache,项目名称:calcite-avatica,代码行数:23,代码来源:JdbcMeta.java

示例4: testRemoteStatementInsert

import org.apache.calcite.avatica.AvaticaUtils; //导入依赖的package包/类
@Test public void testRemoteStatementInsert() throws Exception {
  ConnectionSpec.getDatabaseLock().lock();
  try {
    final String t = AvaticaUtils.unique("TEST_TABLE2");
    AvaticaConnection conn = (AvaticaConnection) DriverManager.getConnection(url);
    Statement statement = conn.createStatement();
    final String create =
        String.format(Locale.ROOT, "create table if not exists %s ("
            + "  id int not null, msg varchar(255) not null)", t);
    int status = statement.executeUpdate(create);
    assertEquals(status, 0);

    statement = conn.createStatement();
    final String update =
        String.format(Locale.ROOT, "insert into %s values ('%d', '%s')",
            t, RANDOM.nextInt(Integer.MAX_VALUE), UUID.randomUUID());
    status = statement.executeUpdate(update);
    assertEquals(status, 1);
  } finally {
    ConnectionSpec.getDatabaseLock().unlock();
  }
}
 
开发者ID:apache,项目名称:calcite-avatica,代码行数:23,代码来源:RemoteMetaTest.java

示例5: getObject

import org.apache.calcite.avatica.AvaticaUtils; //导入依赖的package包/类
@Override public Object getObject() throws SQLException {
  final Object object = super.getObject();
  if (object == null || object instanceof ArrayImpl) {
    return object;
  } else if (object instanceof List) {
    List<?> list = (List<?>) object;
    // Run the array values through the component accessor
    List<Object> convertedValues = new ArrayList<>(list.size());
    for (Object val : list) {
      if (null == val) {
        convertedValues.add(null);
      } else {
        // Set the current value in the SlotGetter so we can use the Accessor to coerce it.
        componentSlotGetter.slot = val;
        convertedValues.add(convertValue());
      }
    }
    return convertedValues;
  }
  // The object can be java array in case of user-provided class for row storage.
  return AvaticaUtils.primitiveList(object);
}
 
开发者ID:apache,项目名称:calcite-avatica,代码行数:23,代码来源:AbstractCursor.java

示例6: apply

import org.apache.calcite.avatica.AvaticaUtils; //导入依赖的package包/类
public ExecuteResponse apply(ExecuteRequest request) {
  try (final Context ignore = executeTimer.start()) {
    try {
      final Meta.ExecuteResult executeResult = meta.execute(request.statementHandle,
          request.parameterValues, AvaticaUtils.toSaturatedInt(request.maxRowCount));

      final List<ResultSetResponse> results = new ArrayList<>(executeResult.resultSets.size());
      for (Meta.MetaResultSet metaResultSet : executeResult.resultSets) {
        results.add(toResponse(metaResultSet));
      }
      return new ExecuteResponse(results, false, serverLevelRpcMetadata);
    } catch (NoSuchStatementException e) {
      return new ExecuteResponse(null, true, serverLevelRpcMetadata);
    }
  }
}
 
开发者ID:apache,项目名称:calcite-avatica,代码行数:17,代码来源:LocalService.java

示例7: testUnique

import org.apache.calcite.avatica.AvaticaUtils; //导入依赖的package包/类
/** Unit test for
 * {@link org.apache.calcite.avatica.AvaticaUtils#unique(java.lang.String)}. */
@Test public void testUnique() {
  // Below, the "probably" comments indicate the strings that will be
  // generated the first time you run the test.
  final Set<String> list = new LinkedHashSet<>();
  list.add(AvaticaUtils.unique("a")); // probably "a"
  assertThat(list.size(), is(1));
  list.add(AvaticaUtils.unique("a")); // probably "a_1"
  assertThat(list.size(), is(2));
  list.add(AvaticaUtils.unique("b")); // probably "b"
  assertThat(list.size(), is(3));
  list.add(AvaticaUtils.unique("a_1")); // probably "a_1_3"
  assertThat(list.size(), is(4));
  list.add(AvaticaUtils.unique("A")); // probably "A"
  assertThat(list.size(), is(5));
  list.add(AvaticaUtils.unique("a")); // probably "a_5"
  assertThat(list.size(), is(6));
}
 
开发者ID:apache,项目名称:calcite-avatica,代码行数:20,代码来源:AvaticaUtilsTest.java

示例8: createResultSet

import org.apache.calcite.avatica.AvaticaUtils; //导入依赖的package包/类
private <E> MetaResultSet createResultSet(Enumerable<E> enumerable,
                                          Class clazz, String... names) {
    final List<ColumnMetaData> columns = new ArrayList<>();
    final List<Field> fields = new ArrayList<>();
    final List<String> fieldNames = new ArrayList<>();
    for (String name : names) {
        final int index = fields.size();
        final String fieldName = AvaticaUtils.toCamelCase(name);
        final Field field;
        try {
            field = clazz.getField(fieldName);
        } catch (NoSuchFieldException e) {
            throw new RuntimeException(e);
        }
        columns.add(columnMetaData(name, index, field.getType()));
        fields.add(field);
        fieldNames.add(fieldName);
    }
    //noinspection unchecked
    final Iterable<Object> iterable = (Iterable<Object>) (Iterable) enumerable;
    return createResultSet(Collections.<String, Object>emptyMap(),
            columns, CursorFactory.record(clazz, fields, fieldNames),
            new Frame(0, true, iterable));
}
 
开发者ID:bitnine-oss,项目名称:octopus,代码行数:25,代码来源:CalciteMetaImpl.java

示例9: createResultSet

import org.apache.calcite.avatica.AvaticaUtils; //导入依赖的package包/类
private <E> MetaResultSet createResultSet(Enumerable<E> enumerable,
    Class clazz, String... names) {
  final List<ColumnMetaData> columns = new ArrayList<>();
  final List<Field> fields = new ArrayList<>();
  final List<String> fieldNames = new ArrayList<>();
  for (String name : names) {
    final int index = fields.size();
    final String fieldName = AvaticaUtils.toCamelCase(name);
    final Field field;
    try {
      field = clazz.getField(fieldName);
    } catch (NoSuchFieldException e) {
      throw new RuntimeException(e);
    }
    columns.add(columnMetaData(name, index, field.getType(), false));
    fields.add(field);
    fieldNames.add(fieldName);
  }
  //noinspection unchecked
  final Iterable<Object> iterable = (Iterable<Object>) (Iterable) enumerable;
  return createResultSet(Collections.<String, Object>emptyMap(),
      columns, CursorFactory.record(clazz, fields, fieldNames),
      new Frame(0, true, iterable));
}
 
开发者ID:qubole,项目名称:quark,代码行数:25,代码来源:QuarkMetaImpl.java

示例10: createResultSet

import org.apache.calcite.avatica.AvaticaUtils; //导入依赖的package包/类
@SuppressWarnings({ "rawtypes", "unchecked" })
private MetaResultSet createResultSet(List iterable, Class clazz, String... names) {
    final List<ColumnMetaData> columns = new ArrayList<ColumnMetaData>();
    final List<Field> fields = new ArrayList<Field>();
    final List<String> fieldNames = new ArrayList<String>();
    for (String name : names) {
        final int index = fields.size();
        final String fieldName = AvaticaUtils.toCamelCase(name);
        final Field field;
        try {
            field = clazz.getField(fieldName);
        } catch (NoSuchFieldException e) {
            throw new RuntimeException(e);
        }
        columns.add(columnMetaData(name, index, field.getType(), true));
        fields.add(field);
        fieldNames.add(fieldName);
    }

    CursorFactory cursorFactory = CursorFactory.record(clazz, fields, fieldNames);
    Signature signature = new Signature(columns, "", null, Collections.<String, Object> emptyMap(), cursorFactory, StatementType.SELECT);
    StatementHandle sh = this.createStatement(connection().handle);
    Frame frame = new Frame(0, true, iterable);

    return MetaResultSet.create(connection().id, sh.id, true, signature, frame);
}
 
开发者ID:apache,项目名称:kylin,代码行数:27,代码来源:KylinMeta.java

示例11: toOp

import org.apache.calcite.avatica.AvaticaUtils; //导入依赖的package包/类
private SqlOperator toOp(String op, Map<String, Object> map) {
  // TODO: build a map, for more efficient lookup
  // TODO: look up based on SqlKind
  final List<SqlOperator> operatorList =
      SqlStdOperatorTable.instance().getOperatorList();
  for (SqlOperator operator : operatorList) {
    if (operator.getName().equals(op)) {
      return operator;
    }
  }
  String class_ = (String) map.get("class");
  if (class_ != null) {
    return AvaticaUtils.instantiatePlugin(SqlOperator.class, class_);
  }
  return null;
}
 
开发者ID:apache,项目名称:calcite,代码行数:17,代码来源:RelJson.java

示例12: visit

import org.apache.calcite.avatica.AvaticaUtils; //导入依赖的package包/类
public void visit(JsonCustomSchema jsonSchema) {
  try {
    final SchemaPlus parentSchema = currentMutableSchema("sub-schema");
    checkRequiredAttributes(jsonSchema, "name", "factory");
    final SchemaFactory schemaFactory =
        AvaticaUtils.instantiatePlugin(SchemaFactory.class,
            jsonSchema.factory);
    final Schema schema =
        schemaFactory.create(
            parentSchema, jsonSchema.name, operandMap(jsonSchema, jsonSchema.operand));
    final SchemaPlus schemaPlus = parentSchema.add(jsonSchema.name, schema);
    populateSchema(jsonSchema, schemaPlus);
  } catch (Exception e) {
    throw new RuntimeException("Error instantiating " + jsonSchema, e);
  }
}
 
开发者ID:apache,项目名称:calcite,代码行数:17,代码来源:ModelHandler.java

示例13: extractUsingArray

import org.apache.calcite.avatica.AvaticaUtils; //导入依赖的package包/类
/**
 * Converts an Array into a List using {@link Array#getArray()}. This implementation assumes
 * a non-nested array. Use {link {@link #extractUsingResultSet(Array, Calendar)} if nested
 * arrays may be possible.
 */
static List<?> extractUsingArray(Array array, Calendar calendar) throws SQLException {
  // No option but to guess as to what the type actually is...
  Object o = array.getArray();
  if (o instanceof List) {
    return (List<?>) o;
  }
  // Assume that it's a Java array.
  return AvaticaUtils.primitiveList(o);
}
 
开发者ID:apache,项目名称:calcite-avatica,代码行数:15,代码来源:JdbcResultSet.java

示例14: setMaxRows

import org.apache.calcite.avatica.AvaticaUtils; //导入依赖的package包/类
/**
 * Sets the provided maximum number of rows on the given statement.
 *
 * @param statement The JDBC Statement to operate on
 * @param maxRowCount The maximum number of rows which should be returned for the query
 */
void setMaxRows(Statement statement, long maxRowCount) throws SQLException {
  // Special handling of maxRowCount as JDBC 0 is unlimited, our meta 0 row
  if (maxRowCount > 0) {
    AvaticaUtils.setLargeMaxRows(statement, maxRowCount);
  } else if (maxRowCount < 0) {
    statement.setMaxRows(0);
  }
}
 
开发者ID:apache,项目名称:calcite-avatica,代码行数:15,代码来源:JdbcMeta.java

示例15: testMalformedRequest

import org.apache.calcite.avatica.AvaticaUtils; //导入依赖的package包/类
@Test public void testMalformedRequest() throws Exception {
  URL url = new URL("http://localhost:" + this.port);

  HttpURLConnection conn = (HttpURLConnection) url.openConnection();
  conn.setRequestMethod("POST");
  conn.setDoInput(true);
  conn.setDoOutput(true);

  try (DataOutputStream wr = new DataOutputStream(conn.getOutputStream())) {
    // Write some garbage data
    wr.write(new byte[] {0, 1, 2, 3, 4, 5, 6, 7});
    wr.flush();
    wr.close();
  }
  final int responseCode = conn.getResponseCode();
  assertEquals(500, responseCode);
  final InputStream inputStream = conn.getErrorStream();
  byte[] responseBytes = AvaticaUtils.readFullyToBytes(inputStream);
  ErrorResponse response;
  switch (this.serialization) {
  case JSON:
    response = JsonService.MAPPER.readValue(responseBytes, ErrorResponse.class);
    assertTrue("Unexpected error message: " + response.errorMessage,
        response.errorMessage.contains("Illegal character"));
    break;
  case PROTOBUF:
    ProtobufTranslation pbTranslation = new ProtobufTranslationImpl();
    Response genericResp = pbTranslation.parseResponse(responseBytes);
    assertTrue("Response was not an ErrorResponse, but was " + genericResp.getClass(),
        genericResp instanceof ErrorResponse);
    response = (ErrorResponse) genericResp;
    assertTrue("Unexpected error message: " + response.errorMessage,
        response.errorMessage.contains("contained an invalid tag"));
    break;
  default:
    fail("Unhandled serialization " + this.serialization);
    throw new RuntimeException();
  }
}
 
开发者ID:apache,项目名称:calcite-avatica,代码行数:40,代码来源:RemoteMetaTest.java


注:本文中的org.apache.calcite.avatica.AvaticaUtils类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。