use of com.hazelcast.sql.impl.extract.QueryTarget in project hazelcast by hazelcast.
the class CsvQueryTargetTest method test_get.
@Test
public void test_get() {
QueryTarget target = new CsvQueryTarget(asList("nonExisting", "string", "boolean", "byte", "short", "int", "long", "float", "double", "decimal", "time", "date", "timestamp", "timestampTz", "object"));
QueryExtractor topExtractor = target.createExtractor(null, OBJECT);
QueryExtractor nonExistingExtractor = target.createExtractor("nonExisting", OBJECT);
QueryExtractor stringExtractor = target.createExtractor("string", VARCHAR);
QueryExtractor booleanExtractor = target.createExtractor("boolean", BOOLEAN);
QueryExtractor byteExtractor = target.createExtractor("byte", TINYINT);
QueryExtractor shortExtractor = target.createExtractor("short", SMALLINT);
QueryExtractor intExtractor = target.createExtractor("int", INT);
QueryExtractor longExtractor = target.createExtractor("long", BIGINT);
QueryExtractor floatExtractor = target.createExtractor("float", REAL);
QueryExtractor doubleExtractor = target.createExtractor("double", DOUBLE);
QueryExtractor decimalExtractor = target.createExtractor("decimal", DECIMAL);
QueryExtractor timeExtractor = target.createExtractor("time", TIME);
QueryExtractor dateExtractor = target.createExtractor("date", DATE);
QueryExtractor timestampExtractor = target.createExtractor("timestamp", TIMESTAMP);
QueryExtractor timestampTzExtractor = target.createExtractor("timestampTz", TIMESTAMP_WITH_TZ_OFFSET_DATE_TIME);
QueryExtractor objectExtractor = target.createExtractor("object", OBJECT);
target.setTarget(new String[] { null, "string", "true", "127", "32767", "2147483647", "9223372036854775807", "1234567890.1", "123451234567890.1", "9223372036854775.123", "12:23:34", "2020-09-09", "2020-09-09T12:23:34.100", "2020-09-09T12:23:34.200Z", "object" }, null);
assertThat(topExtractor.get()).isInstanceOf(String[].class);
assertThat(nonExistingExtractor.get()).isNull();
assertThat(stringExtractor.get()).isEqualTo("string");
assertThat(booleanExtractor.get()).isEqualTo(true);
assertThat(byteExtractor.get()).isEqualTo((byte) 127);
assertThat(shortExtractor.get()).isEqualTo((short) 32767);
assertThat(intExtractor.get()).isEqualTo(2147483647);
assertThat(longExtractor.get()).isEqualTo(9223372036854775807L);
assertThat(floatExtractor.get()).isEqualTo(1234567890.1F);
assertThat(doubleExtractor.get()).isEqualTo(123451234567890.1D);
assertThat(decimalExtractor.get()).isEqualTo(new BigDecimal("9223372036854775.123"));
assertThat(timeExtractor.get()).isEqualTo(LocalTime.of(12, 23, 34));
assertThat(dateExtractor.get()).isEqualTo(LocalDate.of(2020, 9, 9));
assertThat(timestampExtractor.get()).isEqualTo(LocalDateTime.of(2020, 9, 9, 12, 23, 34, 100_000_000));
assertThat(timestampTzExtractor.get()).isEqualTo(OffsetDateTime.of(2020, 9, 9, 12, 23, 34, 200_000_000, UTC));
assertThat(objectExtractor.get()).isNotNull();
}
use of com.hazelcast.sql.impl.extract.QueryTarget in project hazelcast by hazelcast.
the class JsonQueryTargetDescriptorTest method test_create.
@Test
@Parameters({ "true", "false" })
public void test_create(boolean key) {
Extractors extractors = Extractors.newBuilder(SERIALIZATION_SERVICE).build();
JsonQueryTargetDescriptor descriptor = JsonQueryTargetDescriptor.INSTANCE;
// when
QueryTarget target = descriptor.create(SERIALIZATION_SERVICE, extractors, key);
// then
assertThat(target).isInstanceOf(JsonQueryTarget.class);
}
use of com.hazelcast.sql.impl.extract.QueryTarget in project hazelcast by hazelcast.
the class HazelcastJsonQueryTargetTest method test_get.
@Test
@Parameters(method = "values")
public void test_get(Object value) {
Extractors extractors = Extractors.newBuilder(SERIALIZATION_SERVICE).build();
QueryTarget target = new HazelcastJsonQueryTarget(SERIALIZATION_SERVICE, extractors, true);
QueryExtractor topExtractor = target.createExtractor(null, OBJECT);
QueryExtractor nonExistingExtractor = target.createExtractor("nonExisting", OBJECT);
QueryExtractor stringExtractor = target.createExtractor("string", VARCHAR);
QueryExtractor booleanExtractor = target.createExtractor("boolean", BOOLEAN);
QueryExtractor byteExtractor = target.createExtractor("byte", TINYINT);
QueryExtractor shortExtractor = target.createExtractor("short", SMALLINT);
QueryExtractor intExtractor = target.createExtractor("int", INT);
QueryExtractor longExtractor = target.createExtractor("long", BIGINT);
QueryExtractor floatExtractor = target.createExtractor("float", REAL);
QueryExtractor doubleExtractor = target.createExtractor("double", DOUBLE);
QueryExtractor decimalExtractor = target.createExtractor("decimal", DECIMAL);
QueryExtractor timeExtractor = target.createExtractor("time", TIME);
QueryExtractor dateExtractor = target.createExtractor("date", DATE);
QueryExtractor timestampExtractor = target.createExtractor("timestamp", TIMESTAMP);
QueryExtractor timestampZoneExtractor = target.createExtractor("timestampTz", TIMESTAMP_WITH_TZ_OFFSET_DATE_TIME);
QueryExtractor nullExtractor = target.createExtractor("null", OBJECT);
QueryExtractor objectExtractor = target.createExtractor("object", OBJECT);
target.setTarget(value, null);
assertThat(topExtractor.get()).isInstanceOf(HazelcastJsonValue.class);
assertThat(nonExistingExtractor.get()).isNull();
assertThat(stringExtractor.get()).isEqualTo("string");
assertThat(booleanExtractor.get()).isEqualTo(true);
assertThat(byteExtractor.get()).isEqualTo((byte) 127);
assertThat(shortExtractor.get()).isEqualTo((short) 32767);
assertThat(intExtractor.get()).isEqualTo(2147483647);
assertThat(longExtractor.get()).isEqualTo(9223372036854775807L);
assertThat(floatExtractor.get()).isEqualTo(1234567890.1F);
assertThat(doubleExtractor.get()).isEqualTo(123451234567890.1D);
assertThat(decimalExtractor.get()).isEqualTo(new BigDecimal("9223372036854775.123"));
assertThat(timeExtractor.get()).isEqualTo(LocalTime.of(12, 23, 34));
assertThat(dateExtractor.get()).isEqualTo(LocalDate.of(2020, 9, 9));
assertThat(timestampExtractor.get()).isEqualTo(LocalDateTime.of(2020, 9, 9, 12, 23, 34, 100_000_000));
assertThat(timestampZoneExtractor.get()).isEqualTo(OffsetDateTime.of(2020, 9, 9, 12, 23, 34, 200_000_000, UTC));
assertThat(nullExtractor.get()).isNull();
assertThat(objectExtractor.get()).isNotNull();
}
use of com.hazelcast.sql.impl.extract.QueryTarget in project hazelcast by hazelcast.
the class MapScanRow method create.
public static MapScanRow create(QueryTargetDescriptor keyDescriptor, QueryTargetDescriptor valueDescriptor, List<QueryPath> fieldPaths, List<QueryDataType> fieldTypes, Extractors extractors, InternalSerializationService serializationService) {
QueryTarget keyTarget = keyDescriptor.create(serializationService, extractors, true);
QueryTarget valueTarget = valueDescriptor.create(serializationService, extractors, false);
QueryExtractor[] fieldExtractors = new QueryExtractor[fieldPaths.size()];
for (int i = 0; i < fieldPaths.size(); i++) {
QueryPath fieldPath = fieldPaths.get(i);
QueryDataType fieldType = fieldTypes.get(i);
fieldExtractors[i] = createExtractor(keyTarget, valueTarget, fieldPath, fieldType);
}
return new MapScanRow(keyTarget, valueTarget, fieldExtractors);
}
use of com.hazelcast.sql.impl.extract.QueryTarget in project hazelcast by hazelcast.
the class HazelcastJsonQueryTargetDescriptorTest method test_create.
@Test
@Parameters({ "true", "false" })
public void test_create(boolean key) {
Extractors extractors = Extractors.newBuilder(SERIALIZATION_SERVICE).build();
HazelcastJsonQueryTargetDescriptor descriptor = HazelcastJsonQueryTargetDescriptor.INSTANCE;
// when
QueryTarget target = descriptor.create(SERIALIZATION_SERVICE, extractors, key);
// then
assertThat(target).isInstanceOf(HazelcastJsonQueryTarget.class);
}
Aggregations