Github user fhueske commented on a diff in the pull request:

    https://github.com/apache/flink/pull/1867#discussion_r59224953
  
    --- Diff: docs/apis/batch/libs/table.md ---
    @@ -408,3 +428,132 @@ Here, `literal` is a valid Java literal and `field 
reference` specifies a column
     column names follow Java identifier syntax.
     
     Only the types `LONG` and `STRING` can be casted to `DATE` and vice versa. 
A `LONG` casted to `DATE` must be a milliseconds timestamp. A `STRING` casted 
to `DATE` must have the format "`yyyy-MM-dd HH:mm:ss.SSS`", "`yyyy-MM-dd`", 
"`HH:mm:ss`", or a milliseconds timestamp. By default, all timestamps refer to 
the UTC timezone beginning from January 1, 1970, 00:00:00 in milliseconds.
    +
    +{% top %}
    +
    +SQL
    +----
    +The Table API also supports embedded SQL queries.
    +In order to use a `Table` or `DataSet` in a SQL query, it has to be 
registered in the `TableEnvironment`, using a unique name.
    +A registered `Table` can be retrieved back from the `TableEnvironment` 
using the `scan` method:
    +
    +<div class="codetabs" markdown="1">
    +<div data-lang="java" markdown="1">
    +{% highlight java %}
    +ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
    +// create a Table environment
    +TableEnvironment tableEnv = new TableEnvironment();
    +// reset the translation context: this will erase existing registered 
Tables
    +TranslationContext.reset();
    +// read a DataSet from an external source
    +DataSet<Tuple2<Integer, Long>> ds = env.readTextFile(...);
    +// register the DataSet under the name "MyTable"
    +tableEnv.registerDataSet("MyTable", ds);
    +// retrieve "MyTable" into a new Table
    +Table t = tableEnv.scan("MyTable");
    +{% endhighlight %}
    +</div>
    +
    +<div data-lang="scala" markdown="1">
    +{% highlight scala %}
    +val env = ExecutionEnvironment.getExecutionEnvironment
    +// create a Table environment
    +val tEnv = new TableEnvironment
    +// reset the translation context: this will erase existing registered 
Tables
    +TranslationContext.reset()
    +// read a DataSet from an external source
    +val ds = env.readTextFile(...)
    +// register the DataSet under the name "MyTable"
    +tEnv.registerDataSet("MyTable", ds)
    +// retrieve "MyTable" into a new Table
    +val t = tEnv.scan("MyTable")
    +{% endhighlight %}
    +</div>
    +</div>
    +
    +*Note: Table names are not allowed to follow the `^_DataSetTable_[0-9]+` 
pattern, as this is reserved for internal use only.*
    +
    +When registering a `DataSet`, one can also give names to the `Table` 
columns. For example, if "MyTable" has three columns, `user`, `product`, and 
`order`, we can give them names upon registering the `DataSet` as shown below:
    +
    +<div class="codetabs" markdown="1">
    +<div data-lang="java" markdown="1">
    +{% highlight java %}
    +// register the DataSet under the name "MyTable" with columns user, 
product, and order
    +tableEnv.registerDataSet("MyTable", ds, "user, product, order");
    +{% endhighlight %}
    +</div>
    +
    +<div data-lang="scala" markdown="1">
    +{% highlight scala %}
    +// register the DataSet under the name "MyTable" with columns user, 
product, and order
    +tEnv.registerDataSet("MyTable", ds, 'user, 'product, 'order)
    +{% endhighlight %}
    +</div>
    +</div>
    +
    +A `Table` can be registered in a similar way:
    +
    +<div class="codetabs" markdown="1">
    +<div data-lang="java" markdown="1">
    +{% highlight java %}
    +// read a DataSet from an external source
    +DataSet<Tuple2<Integer, Long>> ds = env.readTextFile(...);
    +// create a Table from the DataSet with columns user, product, and order
    +Table t = tableEnv.fromDataSet(ds).as("user, product, order");
    +// register the Table under the name "MyTable"
    +tableEnv.registerTable("MyTable", t);
    +{% endhighlight %}
    +</div>
    +
    +<div data-lang="scala" markdown="1">
    +{% highlight scala %}
    +// read a DataSet from an external source and
    +// create a Table from the DataSet with columns user, product, and order
    +val t = env.readTextFile(...).as('user, 'product, 'order)
    +// register the Table under the name "MyTable"
    +tEnv.registerTable("MyTable", t)
    +{% endhighlight %}
    +</div>
    +</div>
    +
    +After registering a `Table` or `DataSet`, one can use them in SQL queries. 
A SQL query is executed using the `sql` method of the `TableEnvironment`.
    --- End diff --
    
    A SQL query is executed -> A SQL query is defined
    
    Execution happens later when the program is executed 
(ExecutionEnvironment.execute/print/collect). 


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to