Fabian Hueske created FLINK-5084:
------------------------------------

             Summary: Replace Java Table API integration tests by unit tests
                 Key: FLINK-5084
                 URL: https://issues.apache.org/jira/browse/FLINK-5084
             Project: Flink
          Issue Type: Task
          Components: Table API & SQL
            Reporter: Fabian Hueske
            Priority: Minor


The Java Table API is a wrapper on top of the Scala Table API. 
Instead of operating directly with Expressions like the Scala API, the Java API 
accepts a String parameter which is parsed into Expressions.

We could therefore replace the Java Table API ITCases by tests that check that 
the parsing step produces a valid logical plan.

This could be done by creating two {{Table}} objects for an identical query 
once with the Scala Expression API and one with the Java String API and 
comparing the logical plans of both {{Table}} objects. Basically something like 
the following:

{code}
val ds1 = CollectionDataSets.getSmall3TupleDataSet(env).toTable(tEnv, 'a, 'b, 
'c)
val ds2 = CollectionDataSets.get5TupleDataSet(env).toTable(tEnv, 'd, 'e, 'f, 
'g, 'h)

val joinT1 = ds1.join(ds2).where('b === 'e).select('c, 'g)
val joinT2 = ds1.join(ds2).where("b = e").select("c, g")

val lPlan1 = joinT1.logicalPlan
val lPlan2 = joinT2.logicalPlan

Assert.assertEquals("Logical Plans do not match", lPlan1, lPlan2)
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to