[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 <huaxing@us.ibm.com> Signed-off-by: Sean Owen <srowen@gmail.com>
This commit is contained in:
parent
3bbd80dbc3
commit
310bef1ac7
|
@ -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
|
||||
|
|
84
docs/sql-ref-syntax-qry-select-inline-table.md
Normal file
84
docs/sql-ref-syntax-qry-select-inline-table.md
Normal file
|
@ -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)
|
131
docs/sql-ref-syntax-qry-select-tvf.md
Normal file
131
docs/sql-ref-syntax-qry-select-tvf.md
Normal file
|
@ -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)
|
|
@ -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>
|
||||
|
|
Loading…
Reference in a new issue