本文整理汇总了Java中org.apache.calcite.avatica.remote.TypedValue类的典型用法代码示例。如果您正苦于以下问题:Java TypedValue类的具体用法?Java TypedValue怎么用?Java TypedValue使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
TypedValue类属于org.apache.calcite.avatica.remote包,在下文中一共展示了TypedValue类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: executeBatchProtobuf
import org.apache.calcite.avatica.remote.TypedValue; //导入依赖的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);
}
}
示例2: parseColumn
import org.apache.calcite.avatica.remote.TypedValue; //导入依赖的package包/类
static void parseColumn(Common.Row.Builder rowBuilder, Object column) {
final Common.ColumnValue.Builder columnBuilder = Common.ColumnValue.newBuilder();
if (column instanceof List) {
columnBuilder.setHasArrayValue(true);
List<?> list = (List<?>) column;
// Add each element in the list/array to the column's value
for (Object listItem : list) {
final Common.TypedValue scalarListItem = serializeScalar(listItem);
columnBuilder.addArrayValue(scalarListItem);
// Add the deprecated 'value' repeated attribute for backwards compat
columnBuilder.addValue(scalarListItem);
}
} else {
// The default value, but still explicit.
columnBuilder.setHasArrayValue(false);
// Only one value for this column, a scalar.
final Common.TypedValue scalarVal = serializeScalar(column);
columnBuilder.setScalarValue(scalarVal);
// Add the deprecated 'value' repeated attribute for backwards compat
columnBuilder.addValue(scalarVal);
}
// Add value to row
rowBuilder.addValue(columnBuilder.build());
}
示例3: testExecuteRequestWithNumberParameter
import org.apache.calcite.avatica.remote.TypedValue; //导入依赖的package包/类
@Test public void testExecuteRequestWithNumberParameter() {
final List<TypedValue> expectedParameterValues = new ArrayList<>();
final Service service = new ParameterValuesCheckingService(expectedParameterValues);
final JsonService jsonService = new LocalJsonService(service);
final JsonHandler jsonHandler = new JsonHandler(jsonService, NoopMetricsSystem.getInstance());
final List<TypedValue> parameterValues = Arrays.asList(
TypedValue.create("NUMBER", new BigDecimal("123")),
TypedValue.create("STRING", "calcite"));
jsonHandler.apply(
"{'request':'execute',"
+ "'parameterValues':[{'type':'NUMBER','value':123},"
+ "{'type':'STRING','value':'calcite'}]}");
assertThat(expectedParameterValues.size(), is(2));
assertThat(expectedParameterValues.get(0), is(parameterValues.get(0)));
assertThat(expectedParameterValues.get(1), is(parameterValues.get(1)));
}
示例4: getParameterValues
import org.apache.calcite.avatica.remote.TypedValue; //导入依赖的package包/类
@Override
protected List<TypedValue> getParameterValues() {
if (parameters.isEmpty()) {
return Collections.emptyList();
}
if (parameters.lastKey() != parameters.size()) {
throw new IndexOutOfBoundsException(
String.format("Number of specified parameters [%d] is lower than the last key [%d]",
parameters.size(), parameters.lastKey()));
}
final List<TypedValue> list = new ArrayList<>(parameters.values());
if (logger.isDebugEnabled()) {
for (TypedValue tv : list) {
logger.debug("[TypedValue] type: {} value: {}", tv.type, tv.value);
}
}
return list;
}
示例5: substitutePlaceholders
import org.apache.calcite.avatica.remote.TypedValue; //导入依赖的package包/类
private static String substitutePlaceholders(List<String> queryParts, List<TypedValue> parameterValues) {
final int parametersSize = parameterValues.size();
final int queryPartsSize = queryParts.size();
if (queryPartsSize - 1 != parametersSize) {
throw new AtsdRuntimeException(String.format("Number of specified values [%d] does not match the number of placeholder occurrences [%d]",
parametersSize, queryPartsSize - 1));
}
if (queryPartsSize == 1) {
return queryParts.get(0);
}
final StringBuilder buffer = new StringBuilder();
for (int i = 0; i < parametersSize; i++) {
buffer.append(queryParts.get(i));
appendTypedValue(parameterValues.get(i), buffer);
}
buffer.append(queryParts.get(parametersSize));
final String result = buffer.toString();
log.debug("[substitutePlaceholders] {}", result);
return result;
}
示例6: appendTypedValue
import org.apache.calcite.avatica.remote.TypedValue; //导入依赖的package包/类
private static void appendTypedValue(TypedValue parameterValue, StringBuilder buffer) {
Object value = parameterValue.value;
if (value == null) {
buffer.append("NULL");
return;
}
switch(parameterValue.type) {
case STRING:
buffer.append('\'').append(value).append('\'');
break;
case JAVA_SQL_TIMESTAMP:
case JAVA_UTIL_DATE:
buffer.append('\'').append(TIMESTAMP_PRINTER.format(value)).append('\'');
break;
case OBJECT:
appendObjectValue(value, buffer);
break;
default:
buffer.append(value);
}
}
示例7: prepareValues
import org.apache.calcite.avatica.remote.TypedValue; //导入依赖的package包/类
private static List<Object> prepareValues(List<TypedValue> parameterValues) {
if (parameterValues.isEmpty()) {
return Collections.emptyList();
}
List<Object> result = new ArrayList<>(parameterValues.size());
for (TypedValue parameterValue : parameterValues) {
Object value = parameterValue.value;
if (value instanceof Number || value instanceof String) {
result.add(value);
} else if (value instanceof Date) {
result.add(TIMESTAMP_PRINTER.format((Date) value));
} else {
result.add(value == null ? null : String.valueOf(value));
}
}
log.debug("[preparedValues] {}", result);
return result;
}
示例8: enumerable
import org.apache.calcite.avatica.remote.TypedValue; //导入依赖的package包/类
public <T> Enumerable<T> enumerable(Meta.StatementHandle handle,
CalcitePrepare.CalciteSignature<T> signature) throws SQLException {
Map<String, Object> map = Maps.newLinkedHashMap();
AvaticaStatement statement = lookupStatement(handle);
final List<TypedValue> parameterValues =
TROJAN.getParameterValues(statement);
if (MetaImpl.checkParameterValueHasNull(parameterValues)) {
throw new SQLException("exception while executing query: unbound parameter");
}
for (Ord<TypedValue> o : Ord.zip(parameterValues)) {
map.put("?" + o.i, o.e.toLocal());
}
map.putAll(signature.internalParameters);
final DataContext dataContext = createDataContext(map);
return signature.enumerable(dataContext);
}
示例9: execute
import org.apache.calcite.avatica.remote.TypedValue; //导入依赖的package包/类
@Override public ExecuteResult execute(StatementHandle h,
List<TypedValue> parameterValues, int maxRowsInFirstFrame)
throws NoSuchStatementException {
final CalciteConnectionImpl calciteConnection = getConnection();
CalciteServerStatement stmt = calciteConnection.server.getStatement(h);
final Signature signature = stmt.getSignature();
MetaResultSet metaResultSet;
if (signature.statementType.canUpdate()) {
final Iterable<Object> iterable =
_createIterable(h, signature, parameterValues, null);
final Iterator<Object> iterator = iterable.iterator();
stmt.setResultSet(iterator);
metaResultSet = MetaResultSet.count(h.connectionId, h.id,
((Number) iterator.next()).intValue());
} else {
// Don't populate the first frame.
// It's not worth saving a round-trip, since we're local.
final Meta.Frame frame =
new Meta.Frame(0, false, Collections.emptyList());
metaResultSet =
MetaResultSet.create(h.connectionId, h.id, false, signature, frame);
}
return new ExecuteResult(ImmutableList.of(metaResultSet));
}
示例10: getBoundParameterValues
import org.apache.calcite.avatica.remote.TypedValue; //导入依赖的package包/类
/** Returns a list of bound parameter values.
*
* <p>If any of the parameters have not been bound, throws.
* If parameters have been bound to null, the value in the list is null.
*/
protected List<TypedValue> getBoundParameterValues() throws SQLException {
final List<TypedValue> parameterValues = getParameterValues();
for (Object parameterValue : parameterValues) {
if (parameterValue == null) {
throw new SQLException("unbound parameter");
}
}
return parameterValues;
}
示例11: createIterable
import org.apache.calcite.avatica.remote.TypedValue; //导入依赖的package包/类
@Override public Iterable<Object> createIterable(StatementHandle handle, QueryState state,
Signature signature, List<TypedValue> parameterValues, Frame firstFrame) {
// `parameterValues` is intentionally unusued (in method signature for historic reasons)
// Left to preserve API compatibility with Calcite
if (firstFrame != null && firstFrame.done) {
return firstFrame.rows;
}
AvaticaStatement stmt;
try {
stmt = connection.lookupStatement(handle);
} catch (SQLException e) {
throw new RuntimeException(e);
}
return new FetchIterable(stmt, state, firstFrame);
}
示例12: checkParameterValueHasNull
import org.apache.calcite.avatica.remote.TypedValue; //导入依赖的package包/类
/** Returns whether a list of parameter values has any null elements. */
public static boolean checkParameterValueHasNull(List<TypedValue> parameterValues) {
for (TypedValue x : parameterValues) {
if (x == null) {
return true;
}
}
return false;
}
示例13: execute
import org.apache.calcite.avatica.remote.TypedValue; //导入依赖的package包/类
/**
* Executes this result set. (Not a JDBC method.)
*
* <p>Note that execute cannot occur in the constructor, because the
* constructor occurs while the statement is locked, to make sure that
* execute/cancel don't happen at the same time.</p>
*
* @see org.apache.calcite.avatica.AvaticaConnection.Trojan#execute(AvaticaResultSet)
*
* @throws SQLException if execute fails for some reason.
*/
protected AvaticaResultSet execute() throws SQLException {
final Iterable<Object> iterable1 =
statement.connection.meta.createIterable(statement.handle, state, signature,
Collections.<TypedValue>emptyList(), firstFrame);
this.cursor = MetaImpl.createCursor(signature.cursorFactory, iterable1);
this.accessorList =
cursor.createAccessors(columnMetaDataList, localCalendar, this);
this.row = -1;
this.afterLast = false;
return this;
}
示例14: serializeScalar
import org.apache.calcite.avatica.remote.TypedValue; //导入依赖的package包/类
static Common.TypedValue serializeScalar(Object element) {
final Common.TypedValue.Builder valueBuilder = Common.TypedValue.newBuilder();
// Let TypedValue handle the serialization for us.
TypedValue.toProto(valueBuilder, element);
return valueBuilder.build();
}
示例15: parseOldStyleColumn
import org.apache.calcite.avatica.remote.TypedValue; //导入依赖的package包/类
/**
* For Calcite 1.5, we made the mistake of using array length to determine when the value for a
* column is a scalar or an array. This method performs the old parsing for backwards
* compatibility.
*
* @param column The protobuf ColumnValue object
* @return The parsed value for this column
*/
static Object parseOldStyleColumn(Common.ColumnValue column) {
if (column.getValueCount() > 1) {
List<Object> array = new ArrayList<>(column.getValueCount());
for (Common.TypedValue columnValue : column.getValueList()) {
array.add(deserializeScalarValue(columnValue));
}
return array;
} else {
return deserializeScalarValue(column.getValue(0));
}
}