This is an automated email from the ASF dual-hosted git repository.

wenchen 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 cec09b0  [SPARK-31502][SQL][DOCS] Document identifier in SQL Reference
cec09b0 is described below

commit cec09b05f822da54bf78a6682fe9c0fba7896ef0
Author: Huaxin Gao <[email protected]>
AuthorDate: Fri Apr 24 08:05:27 2020 +0000

    [SPARK-31502][SQL][DOCS] Document identifier in SQL Reference
    
    ### What changes were proposed in this pull request?
    Document identifier in SQL Reference
    
    ### Why are the changes needed?
    make SQL Reference complete
    
    ### Does this PR introduce any user-facing change?
    Yes
    <img width="1049" alt="Screen Shot 2020-04-23 at 11 14 10 PM" 
src="https://user-images.githubusercontent.com/13592258/80180695-2f2a4f00-85b8-11ea-819b-f96872956d05.png";>
    
    <img width="1050" alt="Screen Shot 2020-04-23 at 11 32 32 PM" 
src="https://user-images.githubusercontent.com/13592258/80182062-e6c06080-85ba-11ea-9502-1c38358c97c9.png";>
    
    ### How was this patch tested?
    Manually build and check
    
    Closes #28277 from huaxingao/identifier.
    
    Authored-by: Huaxin Gao <[email protected]>
    Signed-off-by: Wenchen Fan <[email protected]>
    (cherry picked from commit b14b980ab86a5e68e0affa62a875e2db6812ed2e)
    Signed-off-by: Wenchen Fan <[email protected]>
---
 docs/_data/menu-sql.yaml   |  2 ++
 docs/sql-ref-identifier.md | 80 ++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 82 insertions(+)

diff --git a/docs/_data/menu-sql.yaml b/docs/_data/menu-sql.yaml
index 5d8c265..26cca61 100644
--- a/docs/_data/menu-sql.yaml
+++ b/docs/_data/menu-sql.yaml
@@ -78,6 +78,8 @@
   subitems:
     - text: Data Types
       url: sql-ref-datatypes.html
+    - text: Identifiers
+      url: sql-ref-identifier.html
     - text: Literals
       url: sql-ref-literals.html
     - text: Null Semantics
diff --git a/docs/sql-ref-identifier.md b/docs/sql-ref-identifier.md
new file mode 100644
index 0000000..89cde21
--- /dev/null
+++ b/docs/sql-ref-identifier.md
@@ -0,0 +1,80 @@
+---
+layout: global
+title: Identifiers
+displayTitle: Identifiers
+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 identifier is a string used to identify a database object such as a table, 
view, schema, column, etc. Spark SQL has regular identifiers and delimited 
identifiers, which are enclosed within backticks. Both regular identifiers and 
delimited identifiers are case-insensitive.
+
+### Syntax
+
+#### Regular Identifier
+
+{% highlight sql %}
+{ letter | digit | '_' } [ , ... ]
+{% endhighlight %}
+Note: If `spark.sql.ansi.enabled` is set to true, ANSI SQL reserved keywords 
cannot be used as identifiers. For more details, please refer to [ANSI 
Compliance](sql-ref-ansi-compliance.html).
+
+#### Delimited Identifier
+
+{% highlight sql %}
+`c [ ... ]`
+{% endhighlight %}
+
+### Parameters
+
+<dl>
+  <dt><code><em>letter</em></code></dt>
+  <dd>
+    Any letter from A-Z or a-z.
+  </dd>
+</dl>
+<dl>
+  <dt><code><em>digit</em></code></dt>
+  <dd>
+    Any numeral from 0 to 9.
+  </dd>
+</dl>
+<dl>
+  <dt><code><em>c</em></code></dt>
+  <dd>
+    Any character from the character set. Use <code>`</code> to escape special 
characters (e.g., <code>`</code>).
+  </dd>
+</dl>
+
+### Examples
+
+{% highlight sql %}
+-- This CREATE TABLE fails with ParseException because of the illegal 
identifier name a.b
+CREATE TABLE test (a.b int);
+org.apache.spark.sql.catalyst.parser.ParseException:
+no viable alternative at input 'CREATE TABLE test (a.'(line 1, pos 20)
+
+-- This CREATE TABLE works
+CREATE TABLE test (`a.b` int);
+
+-- This CREATE TABLE fails with ParseException because special character ` is 
not escaped
+CREATE TABLE test1 (`a`b` int);
+org.apache.spark.sql.catalyst.parser.ParseException:
+no viable alternative at input 'CREATE TABLE test (`a`b`'(line 1, pos 23)
+
+-- This CREATE TABLE works
+CREATE TABLE test (`a``b` int);
+{% endhighlight %}


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to