Gleb Kanterov created BEAM-7609:
-----------------------------------

             Summary: SqlTransform#getSchema for "SELECT DISTINCT + JOIN" has 
invalid field names
                 Key: BEAM-7609
                 URL: https://issues.apache.org/jira/browse/BEAM-7609
             Project: Beam
          Issue Type: Bug
          Components: dsl-sql
    Affects Versions: 2.13.0
            Reporter: Gleb Kanterov
            Assignee: Andrew Pilloud


Works in sqlline shell:
{code}
Welcome to Beam SQL 2.14.0-SNAPSHOT (based on sqlline version 1.4.0)
0: BeamSQL> CREATE EXTERNAL TABLE s1 (id BIGINT) TYPE 'test';
No rows affected (0.507 seconds)
0: BeamSQL> CREATE EXTERNAL TABLE s2 (id BIGINT) TYPE 'test';
No rows affected (0.004 seconds)
0: BeamSQL> SELECT DISTINCT s1.id as lhs, s2.id as rhs FROM s1 JOIN s2 USING 
(id);
+---------------------+---------------------+
|         lhs         |         rhs         |
+---------------------+---------------------+
+---------------------+---------------------+
No rows selected (2.568 seconds)
{code}

But doesn't work in the test:

{code}
    Schema inputSchema = Schema.of(
        Schema.Field.of("id", Schema.FieldType.INT32));

    PCollection<Row> i1 = p.apply(Create.of(ImmutableList.<Row>of())
        .withCoder(SchemaCoder.of(inputSchema)));

    PCollection<Row> i2 = p.apply(Create.of(ImmutableList.<Row>of())
        .withCoder(SchemaCoder.of(inputSchema)));

    Schema outputSchema = PCollectionTuple
        .of("i1", i1)
        .and("i2", i2)
        .apply(SqlTransform.query("SELECT DISTINCT s1.id as lhs, s2.id as rhs 
FROM i1 JOIN i2 USING (id)"))
        .getSchema();

    assertEquals(ImmutableList.of("lhs", "rhs"), outputSchema.getFieldNames());
{code}





--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to