use of io.crate.analyze.symbol.Field in project crate by crate.
the class FieldProviderTest method testColumnSchemaResolver.
@Test
public void testColumnSchemaResolver() throws Exception {
AnalyzedRelation barT = new DummyRelation("\"Name\"");
FieldProvider<Field> resolver = new FullQualifedNameFieldProvider(ImmutableMap.of(newQN("\"Bar\""), barT));
Field field = resolver.resolveField(newQN("\"Foo\".\"Bar\".\"Name\""), Operation.READ);
assertThat(field.relation(), equalTo(barT));
}
use of io.crate.analyze.symbol.Field in project crate by crate.
the class FieldProviderTest method testRelationFromTwoTablesWithSameNameDifferentSchemaIsAmbiguous.
@Test
public void testRelationFromTwoTablesWithSameNameDifferentSchemaIsAmbiguous() throws Exception {
// select t.name from custom.t.name, doc.t.name
expectedException.expect(AmbiguousColumnException.class);
expectedException.expectMessage("Column \"name\" is ambiguous");
FieldProvider<Field> resolver = new FullQualifedNameFieldProvider(ImmutableMap.<QualifiedName, AnalyzedRelation>of(new QualifiedName(Arrays.asList("custom", "t")), new DummyRelation("name"), new QualifiedName(Arrays.asList("doc", "t")), new DummyRelation("name")));
resolver.resolveField(new QualifiedName(Arrays.asList("t", "name")), Operation.READ);
}
use of io.crate.analyze.symbol.Field in project crate by crate.
the class FieldProviderTest method testRelationOutputFromAlias.
@Test
public void testRelationOutputFromAlias() throws Exception {
// t.name from doc.foo t
AnalyzedRelation relation = new DummyRelation("name");
FieldProvider<Field> resolver = new FullQualifedNameFieldProvider(ImmutableMap.of(new QualifiedName(Arrays.asList("t")), relation));
Field field = resolver.resolveField(newQN("t.name"), Operation.READ);
assertThat(field.relation(), equalTo(relation));
assertThat(field.path().outputName(), is("name"));
}
use of io.crate.analyze.symbol.Field in project crate by crate.
the class FieldProviderTest method testRelationOutputFromSchemaTableColumnName.
@Test
public void testRelationOutputFromSchemaTableColumnName() throws Exception {
// doc.t.name from t.name
AnalyzedRelation relation = new DummyRelation("name");
FieldProvider<Field> resolver = new FullQualifedNameFieldProvider(ImmutableMap.of(newQN("doc.t"), relation));
Field field = resolver.resolveField(newQN("doc.t.name"), Operation.INSERT);
assertThat(field.relation(), equalTo(relation));
assertThat(field.path().outputName(), is("name"));
}
use of io.crate.analyze.symbol.Field in project crate by crate.
the class FieldProviderTest method testTooManyParts.
@Test
public void testTooManyParts() throws Exception {
expectedException.expect(IllegalArgumentException.class);
FieldProvider<Field> resolver = new FullQualifedNameFieldProvider(dummySources);
resolver.resolveField(new QualifiedName(Arrays.asList("a", "b", "c", "d")), Operation.READ);
}
Aggregations