public static Object getJsonObjectValue(Type valueType, ConnectorSession session, Block block, int position) { Object objectValue = valueType.getObjectValue(session, block, position); if (objectValue instanceof SqlDecimal) { objectValue = ((SqlDecimal) objectValue).toBigDecimal(); } return objectValue; } }
public static Object getJsonObjectValue(Type valueType, ConnectorSession session, Block block, int position) { Object objectValue = valueType.getObjectValue(session, block, position); if (objectValue instanceof SqlDecimal) { objectValue = ((SqlDecimal) objectValue).toBigDecimal(); } return objectValue; } }
private static void assertBlockEquals(Type type, Block actual, Block expected) { for (int position = 0; position < actual.getPositionCount(); position++) { assertEquals(type.getObjectValue(SESSION, actual, position), type.getObjectValue(SESSION, expected, position)); } } }
private static OptionalDouble getDoubleValue(ConnectorSession session, Type type, Block block) { return block.isNull(0) ? OptionalDouble.empty() : OptionalDouble.of(((Number) type.getObjectValue(session, block, 0)).doubleValue()); }
@Override public Object getObjectValue(ConnectorSession session, Block block, int position) { if (block.isNull(position)) { return null; } Block arrayBlock = getObject(block, position); List<Object> values = new ArrayList<>(arrayBlock.getPositionCount()); for (int i = 0; i < arrayBlock.getPositionCount(); i++) { values.add(fields.get(i).getType().getObjectValue(session, arrayBlock, i)); } return Collections.unmodifiableList(values); }
public static List<Object> toValues(Type type, Iterable<Block> blocks) { List<Object> values = new ArrayList<>(); for (Block block : blocks) { for (int position = 0; position < block.getPositionCount(); position++) { values.add(type.getObjectValue(SESSION, block, position)); } } return Collections.unmodifiableList(values); }
public static Object getOnlyValue(Type type, Block block) { assertEquals(block.getPositionCount(), 1, "Block positions"); return type.getObjectValue(SESSION, block, 0); }
public static List<Object> toValues(Type type, Iterable<Block> blocks) { List<Object> values = new ArrayList<>(); for (Block block : blocks) { for (int position = 0; position < block.getPositionCount(); position++) { values.add(type.getObjectValue(SESSION, block, position)); } } return Collections.unmodifiableList(values); }
private static Object decodeObject(Type type, Block block, int position) { if (block.isNull(position)) { return null; } return type.getObjectValue(SESSION, block, position); } }
private static Map toMapValue(Block mapBlock, Type keyType, Type valueType) { Map<Object, Object> map = new HashMap<>(mapBlock.getPositionCount() * 2); for (int i = 0; i < mapBlock.getPositionCount(); i += 2) { map.put(keyType.getObjectValue(SESSION, mapBlock, i), valueType.getObjectValue(SESSION, mapBlock, i + 1)); } return Collections.unmodifiableMap(map); }
private static Object toTypeObjectValue(Session session, Type type, Object value) { BlockBuilder blockBuilder = type.createBlockBuilder(null, 1); writeNativeValue(type, blockBuilder, value); return type.getObjectValue(session.toConnectorSession(), blockBuilder, 0); } }
public static List<Object> toValues(Type type, Block block) { List<Object> values = new ArrayList<>(); for (int position = 0; position < block.getPositionCount(); position++) { values.add(type.getObjectValue(SESSION, block, position)); } return Collections.unmodifiableList(values); }
private static Object toTypeObjectValue(Session session, Type type, Object value) { BlockBuilder blockBuilder = type.createBlockBuilder(null, 1); writeNativeValue(type, blockBuilder, value); return type.getObjectValue(session.toConnectorSession(), blockBuilder, 0); } }
private static Map toMapValue(Block mapBlock, Type keyType, Type valueType) { Map<Object, Object> map = new HashMap<>(mapBlock.getPositionCount() * 2); for (int i = 0; i < mapBlock.getPositionCount(); i += 2) { map.put(keyType.getObjectValue(SESSION, mapBlock, i), valueType.getObjectValue(SESSION, mapBlock, i + 1)); } return Collections.unmodifiableMap(map); }
private static SortedMap<Integer, Object> indexObjectValues(Type type, Block block) { SortedMap<Integer, Object> values = new TreeMap<>(); for (int position = 0; position < block.getPositionCount(); position++) { values.put(position, type.getObjectValue(SESSION, block, position)); } return unmodifiableSortedMap(values); } }
private static List toRowValue(Block rowBlock, List<Type> fieldTypes) { List<Object> values = new ArrayList<>(rowBlock.getPositionCount()); for (int i = 0; i < rowBlock.getPositionCount(); i++) { values.add(fieldTypes.get(i).getObjectValue(SESSION, rowBlock, i)); } return Collections.unmodifiableList(values); }
private static List toRowValue(Block rowBlock, List<Type> fieldTypes) { List<Object> values = new ArrayList<>(rowBlock.getPositionCount()); for (int i = 0; i < rowBlock.getPositionCount(); i++) { values.add(fieldTypes.get(i).getObjectValue(SESSION, rowBlock, i)); } return Collections.unmodifiableList(values); }
public static void assertBlockEquals(Type type, Block actual, Block expected) { assertEquals(actual.getPositionCount(), expected.getPositionCount()); for (int position = 0; position < actual.getPositionCount(); position++) { assertEquals(type.getObjectValue(SESSION, actual, position), type.getObjectValue(SESSION, expected, position)); } }
private Object selectSingleValue(Operator operator, Type type) { Page output = getAtMostOnePage(operator, SOURCE_PAGE); assertNotNull(output); assertEquals(output.getPositionCount(), 1); assertEquals(output.getChannelCount(), 1); Block block = output.getBlock(0); assertEquals(block.getPositionCount(), 1); return type.getObjectValue(session.toConnectorSession(), block, 0); }
public static Object evaluatePropertyValue(Expression expression, Type expectedType, Session session, Metadata metadata, List<Expression> parameters) { Expression rewritten = ExpressionTreeRewriter.rewriteWith(new ParameterRewriter(parameters), expression); Object value = evaluateConstantExpression(rewritten, expectedType, metadata, session, parameters); // convert to object value type of SQL type BlockBuilder blockBuilder = expectedType.createBlockBuilder(null, 1); writeNativeValue(expectedType, blockBuilder, value); Object objectValue = expectedType.getObjectValue(session.toConnectorSession(), blockBuilder, 0); if (objectValue == null) { throw new PrestoException(INVALID_SESSION_PROPERTY, "Session property value must not be null"); } return objectValue; }