This is an automated email from the ASF dual-hosted git repository. srowen pushed a commit to branch branch-3.0 in repository https://gitbox.apache.org/repos/asf/spark.git
The following commit(s) were added to refs/heads/branch-3.0 by this push: new 7ddbc76 [SPARK-31419][SQL][DOCS] Document Table-valued Function and Inline Table 7ddbc76 is described below commit 7ddbc76158c4fe1a48cb0c99e102b173355055c8 Author: Huaxin Gao <huax...@us.ibm.com> AuthorDate: Sun Apr 12 23:39:27 2020 -0500 [SPARK-31419][SQL][DOCS] Document Table-valued Function and Inline Table ### What changes were proposed in this pull request? Document Table-valued Function and Inline Table ### Why are the changes needed? To make SQL Reference complete ### Does this PR introduce any user-facing change? Yes <img width="1050" alt="Screen Shot 2020-04-11 at 5 34 25 PM" src="https://user-images.githubusercontent.com/13592258/79057852-cedff880-7c1a-11ea-9e1e-7882594ab573.png"> <img width="1050" alt="Screen Shot 2020-04-11 at 5 34 46 PM" src="https://user-images.githubusercontent.com/13592258/79057854-d4d5d980-7c1a-11ea-94cc-92ef1121fa43.png"> <img width="1050" alt="Screen Shot 2020-04-10 at 7 36 00 PM" src="https://user-images.githubusercontent.com/13592258/79033391-c2986480-7b62-11ea-9d0a-6c60de823256.png"> <img width="1051" alt="Screen Shot 2020-04-10 at 7 36 21 PM" src="https://user-images.githubusercontent.com/13592258/79033392-c5935500-7b62-11ea-88d4-e7d7812a7add.png"> <img width="1051" alt="Screen Shot 2020-04-11 at 5 09 48 PM" src="https://user-images.githubusercontent.com/13592258/79057555-6ba09700-7c17-11ea-9683-16bbde63a529.png"> Also, linked the newly added pages to select statement <img width="1050" alt="Screen Shot 2020-04-10 at 3 27 59 PM" src="https://user-images.githubusercontent.com/13592258/79027245-5147ba00-7b40-11ea-9b10-527fd9639958.png"> ### How was this patch tested? Manually build and check Closes #28185 from huaxingao/tvf. Authored-by: Huaxin Gao <huax...@us.ibm.com> Signed-off-by: Sean Owen <sro...@gmail.com> (cherry picked from commit 310bef1ac76f48bffcae8e46eb7766a84cb9ef6b) Signed-off-by: Sean Owen <sro...@gmail.com> --- docs/_data/menu-sql.yaml | 4 + docs/sql-ref-syntax-qry-select-inline-table.md | 84 ++++++++++++++++ docs/sql-ref-syntax-qry-select-tvf.md | 131 +++++++++++++++++++++++++ docs/sql-ref-syntax-qry-select.md | 6 +- 4 files changed, 222 insertions(+), 3 deletions(-) diff --git a/docs/_data/menu-sql.yaml b/docs/_data/menu-sql.yaml index 75efb30..b8c6e50 100644 --- a/docs/_data/menu-sql.yaml +++ b/docs/_data/menu-sql.yaml @@ -162,6 +162,10 @@ url: sql-ref-syntax-qry-select-setops.html - text: TABLESAMPLE url: sql-ref-syntax-qry-sampling.html + - text: Table-valued Function + url: sql-ref-syntax-qry-select-tvf.html + - text: Inline Table + url: sql-ref-syntax-qry-select-inline-table.html - text: EXPLAIN url: sql-ref-syntax-qry-explain.html - text: Auxiliary Statements diff --git a/docs/sql-ref-syntax-qry-select-inline-table.md b/docs/sql-ref-syntax-qry-select-inline-table.md new file mode 100644 index 0000000..7a53285 --- /dev/null +++ b/docs/sql-ref-syntax-qry-select-inline-table.md @@ -0,0 +1,84 @@ +--- +layout: global +title: Inline Table +displayTitle: Inline Table +license: | + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--- + +### Description + +An inline table is a temporary table created using a VALUES clause. + +### Syntax + +{% highlight sql %} +VALUES ( expression [ , ... ] ) [ table_alias ] +{% endhighlight %} + +### Parameters + +<dl> + <dt><code><em>expression</em></code></dt> + <dd> + Specifies a combination of one or more values, operators and SQL functions that results in a value. + </dd> +</dl> +<dl> + <dt><code><em>table_alias</em></code></dt> + <dd> + Specifies a temporary name with an optional column name list. <br><br> + <b>Syntax:</b> + <code> + [ AS ] table_name [ ( column_name [ , ... ] ) ] + </code> + </dd> +</dl> + +### Examples + +{% highlight sql %} +-- single row, without a table alias +SELECT * FROM VALUES ("one", 1); + +----+----+ + |col1|col2| + +----+----+ + | one| 1| + +----+----+ + +-- three rows with a table alias +SELECT * FROM VALUES ("one", 1), ("two", 2), ("three", null) AS data(a, b); + +-----+----+ + | a| b| + +-----+----+ + | one| 1| + | two| 2| + |three|null| + +-----+----+ + +-- complex types with a table alias +SELECT * FROM VALUES ("one", array(0, 1)), ("two", array(2, 3)) AS data(a, b); + +---+------+ + | a| b| + +---+------+ + |one|[0, 1]| + |two|[2, 3]| + +---+------+ +{% endhighlight %} + +### Related Statement + + * [SELECT](sql-ref-syntax-qry-select.html) diff --git a/docs/sql-ref-syntax-qry-select-tvf.md b/docs/sql-ref-syntax-qry-select-tvf.md new file mode 100644 index 0000000..bbfd870 --- /dev/null +++ b/docs/sql-ref-syntax-qry-select-tvf.md @@ -0,0 +1,131 @@ +--- +layout: global +title: Table-valued Functions (TVF) +displayTitle: Table-valued Functions (TVF) +license: | + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--- + +### Description + +A table-valued function (TVF) is a function that returns a relation or a set of rows. + +### Syntax + +{% highlight sql %} +function_name ( expression [ , ... ] ) [ table_alias ] +{% endhighlight %} + +### Parameters + +<dl> + <dt><code><em>expression</em></code></dt> + <dd> + Specifies a combination of one or more values, operators and SQL functions that results in a value. + </dd> +</dl> +<dl> + <dt><code><em>table_alias</em></code></dt> + <dd> + Specifies a temporary name with an optional column name list. <br><br> + <b>Syntax:</b> + <code> + [ AS ] table_name [ ( column_name [ , ... ] ) ] + </code> + </dd> +</dl> + +### Supported Table-valued Functions + +<table class="table"> + <thead> + <tr><th style="width:25%">Function</th><th>Argument Type(s)</th><th>Description</th></tr> + </thead> + <tr> + <td><b> range </b>( <i>end</i> )</td> + <td> Long </td> + <td>Creates a table with a single <code>LongType</code> column named <code>id</code>, containing rows in a range from 0 to <code>end</code> (exclusive) with step value 1.</td> + </tr> + <tr> + <td><b> range </b>( <i> start, end</i> )</td> + <td> Long, Long </td> + <td width="60%">Creates a table with a single <code>LongType</code> column named <code>id</code>, containing rows in a range from <code>start</code> to <code>end</code> (exclusive) with step value 1.</td> + </tr> + <tr> + <td><b> range </b>( <i> start, end, step</i> )</td> + <td> Long, Long, Long </td> + <td width="60%">Creates a table with a single <code>LongType</code> column named <code>id</code>, containing rows in a range from <code>start</code> to <code>end</code> (exclusive) with <code>step</code> value.</td> + </tr> + <tr> + <td><b> range </b>( <i> start, end, step, numPartitions</i> )</td> + <td> Long, Long, Long, Int </td> + <td width="60%">Creates a table with a single <code>LongType</code> column named <code>id</code>, containing rows in a range from <code>start</code> to <code>end</code> (exclusive) with <code>step</code> value, with partition number <code>numPartitions</code> specified. </td> + </tr> +</table> + +### Examples + +{% highlight sql %} +-- range call with end +SELECT * FROM range(6 + cos(3)); + +---+ + | id| + +---+ + | 0| + | 1| + | 2| + | 3| + | 4| + +---+ + +-- range call with start and end +SELECT * FROM range(5, 10); + +---+ + | id| + +---+ + | 5| + | 6| + | 7| + | 8| + | 9| + +---+ + +-- range call with numPartitions +SELECT * FROM range(0, 10, 2, 200); + +---+ + | id| + +---+ + | 0| + | 2| + | 4| + | 6| + | 8| + +---+ + +-- range call with a table alias +SELECT * FROM range(5, 8) AS test; + +---+ + | id| + +---+ + | 5| + | 6| + | 7| + +---+ +{% endhighlight %} + +### Related Statement + + * [SELECT](sql-ref-syntax-qry-select.html) diff --git a/docs/sql-ref-syntax-qry-select.md b/docs/sql-ref-syntax-qry-select.md index f1585df..8ecc2c6 100644 --- a/docs/sql-ref-syntax-qry-select.md +++ b/docs/sql-ref-syntax-qry-select.md @@ -78,9 +78,9 @@ SELECT [ hints , ... ] [ ALL | DISTINCT ] { named_expression [ , ... ] } Specifies a source of input for the query. It can be one of the following: <ol> <li>Table relation</li> - <li>Join relation</li> - <li>Table valued function</li> - <li>Inlined table</li> + <li><a href="sql-ref-syntax-qry-select-join.html">Join relation</a></li> + <li><a href="sql-ref-syntax-qry-select-tvf.html">Table-value function</a></li> + <li><a href="sql-ref-syntax-qry-select-inline-table.html">Inline table</a></li> <li>Subquery</li> </ol> </dd> --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@spark.apache.org For additional commands, e-mail: commits-h...@spark.apache.org