You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flink.apache.org by "Fabian Hueske (JIRA)" <ji...@apache.org> on 2016/11/16 23:07:59 UTC

[jira] [Created] (FLINK-5084) Replace Java Table API integration tests by unit tests

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)