@Override public SchemaPath deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { return parseFromString(jp.getText()); } }
@Test public void testUnIndexedEndingWithArray() { SchemaPath schemaPath = SchemaPath.parseFromString("`a`.`b`[0]"); assertEquals("Schema path should match", SchemaPath.parseFromString("`a`.`b`"), schemaPath.getUnIndexed()); }
@Test public void testUnIndexedArrayInTheMiddle() { SchemaPath schemaPath = SchemaPath.parseFromString("`a`.`b`[0].`c`.`d`"); assertEquals("Schema path should match", SchemaPath.parseFromString("`a`.`b`.`c`.`d`"), schemaPath.getUnIndexed()); }
@Test public void testUnIndexedMultipleArrays() { SchemaPath schemaPath = SchemaPath.parseFromString("`a`.`b`[0][1].`c`.`d`[2][0]"); assertEquals("Schema path should match", SchemaPath.parseFromString("`a`.`b`.`c`.`d`"), schemaPath.getUnIndexed()); }
@Test public void testUnIndexedWithOutArray() { SchemaPath oneElementSchema = SchemaPath.parseFromString("`a`"); assertEquals("Schema path should match", oneElementSchema, oneElementSchema.getUnIndexed()); SchemaPath severalElementsSchema = SchemaPath.parseFromString("`a`.`b`.`c`"); assertEquals("Schema path should match", severalElementsSchema, severalElementsSchema.getUnIndexed()); }
@Test public void simeTests() { String[] pathStrs = {"a", "a.b", "a.b.c", "a[1].b[2].c", "a[0][1][2][3].b"}; FieldPath[] fieldPaths = new FieldPath[pathStrs.length]; SchemaPath[] schemaPaths = new SchemaPath[pathStrs.length]; // build for (int i = 0; i < pathStrs.length; i++) { String path = pathStrs[i]; fieldPaths[i] = FieldPath.parseFrom(path); schemaPaths[i] = SchemaPath.parseFromString(path); } //verify for (int i = 0; i < pathStrs.length; i++) { FieldPath fp = FieldPathHelper.schemaPath2FieldPath(schemaPaths[i]); assertEquals(fieldPaths[i], fp); SchemaPath sp = FieldPathHelper.fieldPath2SchemaPath(fieldPaths[i]); assertEquals(schemaPaths[i], sp); } }
@Override public SchemaPath deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { return parseFromString(jp.getText()); } }
@Override public Object deserializeKey(String key, com.fasterxml.jackson.databind.DeserializationContext ctxt) { // key string should contain '`' char if the field was serialized as SchemaPath object if (key.contains("`")) { return new Key(SchemaPath.parseFromString(key)); } return new Key(key.split("\\.")); } }
public static RelDataTypeField findField(String fieldName, RelDataType rowType) { final String rootPart = SchemaPath.parseFromString(fieldName).getRootSegmentPath(); for (RelDataTypeField f : rowType.getFieldList()) { if (rootPart.equalsIgnoreCase(f.getName())) { return f; } } return null; }
builder.add(SchemaPath.STAR_COLUMN); } else { builder.add(SchemaPath.parseFromString(decodedString));
final List<SchemaPath> columns = Lists.newArrayList(); for (RelDataTypeField f : fields) { SchemaPath path = SchemaPath.parseFromString(f.getName()); rowfields.add(new RelDataTypeFieldImpl( path.getRootSegmentPath(), rowfields.size(),
SchemaPath.parseFromString(fieldName).getRootSegmentPath(), fields.size(), typeFactory.createSqlType(SqlTypeName.ANY)));