diff --git a/docs/sql-ref-ansi-compliance.md b/docs/sql-ref-ansi-compliance.md index 3a0c2c123d81..259dd977fe99 100644 --- a/docs/sql-ref-ansi-compliance.md +++ b/docs/sql-ref-ansi-compliance.md @@ -27,35 +27,10 @@ The casting behaviours are defined as store assignment rules in the standard. When `spark.sql.storeAssignmentPolicy` is set to `ANSI`, Spark SQL complies with the ANSI store assignment rules. This is a separate configuration because its default value is `ANSI`, while the configuration `spark.sql.ansi.enabled` is disabled by default. -
| Property Name | Default | Meaning | Since Version |
|---|---|---|---|
spark.sql.ansi.enabled |
- false | -- (Experimental) When true, Spark tries to conform to the ANSI SQL specification: - 1. Spark will throw a runtime exception if an overflow occurs in any operation on integral/decimal field. - 2. Spark will forbid using the reserved keywords of ANSI SQL as identifiers in the SQL parser. - | -3.0.0 | -
spark.sql.storeAssignmentPolicy |
- ANSI | -- (Experimental) When inserting a value into a column with different data type, Spark will perform type coercion. - Currently, we support 3 policies for the type coercion rules: ANSI, legacy and strict. With ANSI policy, - Spark performs the type coercion as per ANSI SQL. In practice, the behavior is mostly the same as PostgreSQL. - It disallows certain unreasonable type conversions such as converting string to int or double to boolean. - With legacy policy, Spark allows the type coercion as long as it is a valid Cast, which is very loose. - e.g. converting string to int or double to boolean is allowed. - It is also the only behavior in Spark 2.x and it is compatible with Hive. - With strict policy, Spark doesn't allow any possible precision loss or data truncation in type coercion, - e.g. converting double to int or decimal to double is not allowed. - | -3.0.0 | -
| Keyword | Spark SQL | SQL-2011 | |
|---|---|---|---|
| ANSI mode | default mode | ||
| ADD | non-reserved | non-reserved | non-reserved |
| AFTER | non-reserved | non-reserved | non-reserved |
| ALL | reserved | non-reserved | reserved |
| ALTER | non-reserved | non-reserved | reserved |
| ANALYZE | non-reserved | non-reserved | non-reserved |
| AND | reserved | non-reserved | reserved |
| ANTI | reserved | strict-non-reserved | non-reserved |
| ANY | reserved | non-reserved | reserved |
| ARCHIVE | non-reserved | non-reserved | non-reserved |
| ARRAY | non-reserved | non-reserved | reserved |
| AS | reserved | non-reserved | reserved |
| ASC | non-reserved | non-reserved | non-reserved |
| AT | non-reserved | non-reserved | reserved |
| AUTHORIZATION | reserved | non-reserved | reserved |
| BETWEEN | non-reserved | non-reserved | reserved |
| BOTH | reserved | non-reserved | reserved |
| BUCKET | non-reserved | non-reserved | non-reserved |
| BUCKETS | non-reserved | non-reserved | non-reserved |
| BY | non-reserved | non-reserved | reserved |
| CACHE | non-reserved | non-reserved | non-reserved |
| CASCADE | non-reserved | non-reserved | reserved |
| CASE | reserved | non-reserved | reserved |
| CAST | reserved | non-reserved | reserved |
| CHANGE | non-reserved | non-reserved | non-reserved |
| CHECK | reserved | non-reserved | reserved |
| CLEAR | non-reserved | non-reserved | non-reserved |
| CLUSTER | non-reserved | non-reserved | non-reserved |
| CLUSTERED | non-reserved | non-reserved | non-reserved |
| CODEGEN | non-reserved | non-reserved | non-reserved |
| COLLATE | reserved | non-reserved | reserved |
| COLLECTION | non-reserved | non-reserved | non-reserved |
| COLUMN | reserved | non-reserved | reserved |
| COLUMNS | non-reserved | non-reserved | non-reserved |
| COMMENT | non-reserved | non-reserved | non-reserved |
| COMMIT | non-reserved | non-reserved | reserved |
| COMPACT | non-reserved | non-reserved | non-reserved |
| COMPACTIONS | non-reserved | non-reserved | non-reserved |
| COMPUTE | non-reserved | non-reserved | non-reserved |
| CONCATENATE | non-reserved | non-reserved | non-reserved |
| CONSTRAINT | reserved | non-reserved | reserved |
| COST | non-reserved | non-reserved | non-reserved |
| CREATE | reserved | non-reserved | reserved |
| CROSS | reserved | strict-non-reserved | reserved |
| CUBE | non-reserved | non-reserved | reserved |
| CURRENT | non-reserved | non-reserved | reserved |
| CURRENT_DATE | reserved | non-reserved | reserved |
| CURRENT_TIME | reserved | non-reserved | reserved |
| CURRENT_TIMESTAMP | reserved | non-reserved | reserved |
| CURRENT_USER | reserved | non-reserved | reserved |
| DATA | non-reserved | non-reserved | non-reserved |
| DATABASE | non-reserved | non-reserved | non-reserved |
| DATABASES | non-reserved | non-reserved | non-reserved |
| DAY | reserved | non-reserved | reserved |
| DBPROPERTIES | non-reserved | non-reserved | non-reserved |
| DEFINED | non-reserved | non-reserved | non-reserved |
| DELETE | non-reserved | non-reserved | reserved |
| DELIMITED | non-reserved | non-reserved | non-reserved |
| DESC | non-reserved | non-reserved | non-reserved |
| DESCRIBE | non-reserved | non-reserved | reserved |
| DFS | non-reserved | non-reserved | non-reserved |
| DIRECTORIES | non-reserved | non-reserved | non-reserved |
| DIRECTORY | non-reserved | non-reserved | non-reserved |
| DISTINCT | reserved | non-reserved | reserved |
| DISTRIBUTE | non-reserved | non-reserved | non-reserved |
| DIV | non-reserved | non-reserved | non-reserved |
| DROP | non-reserved | non-reserved | reserved |
| ELSE | reserved | non-reserved | reserved |
| END | reserved | non-reserved | reserved |
| ESCAPE | reserved | non-reserved | reserved |
| ESCAPED | non-reserved | non-reserved | non-reserved |
| EXCEPT | reserved | strict-non-reserved | reserved |
| EXCHANGE | non-reserved | non-reserved | non-reserved |
| EXISTS | non-reserved | non-reserved | reserved |
| EXPLAIN | non-reserved | non-reserved | non-reserved |
| EXPORT | non-reserved | non-reserved | non-reserved |
| EXTENDED | non-reserved | non-reserved | non-reserved |
| EXTERNAL | non-reserved | non-reserved | reserved |
| EXTRACT | non-reserved | non-reserved | reserved |
| FALSE | reserved | non-reserved | reserved |
| FETCH | reserved | non-reserved | reserved |
| FIELDS | non-reserved | non-reserved | non-reserved |
| FILTER | reserved | non-reserved | reserved |
| FILEFORMAT | non-reserved | non-reserved | non-reserved |
| FIRST | non-reserved | non-reserved | non-reserved |
| FOLLOWING | non-reserved | non-reserved | non-reserved |
| FOR | reserved | non-reserved | reserved |
| FOREIGN | reserved | non-reserved | reserved |
| FORMAT | non-reserved | non-reserved | non-reserved |
| FORMATTED | non-reserved | non-reserved | non-reserved |
| FROM | reserved | non-reserved | reserved |
| FULL | reserved | strict-non-reserved | reserved |
| FUNCTION | non-reserved | non-reserved | reserved |
| FUNCTIONS | non-reserved | non-reserved | non-reserved |
| GLOBAL | non-reserved | non-reserved | reserved |
| GRANT | reserved | non-reserved | reserved |
| GROUP | reserved | non-reserved | reserved |
| GROUPING | non-reserved | non-reserved | reserved |
| HAVING | reserved | non-reserved | reserved |
| HOUR | reserved | non-reserved | reserved |
| IF | non-reserved | non-reserved | reserved |
| IGNORE | non-reserved | non-reserved | non-reserved |
| IMPORT | non-reserved | non-reserved | non-reserved |
| IN | reserved | non-reserved | reserved |
| INDEX | non-reserved | non-reserved | non-reserved |
| INDEXES | non-reserved | non-reserved | non-reserved |
| INNER | reserved | strict-non-reserved | reserved |
| INPATH | non-reserved | non-reserved | non-reserved |
| INPUTFORMAT | non-reserved | non-reserved | non-reserved |
| INSERT | non-reserved | non-reserved | reserved |
| INTERSECT | reserved | strict-non-reserved | reserved |
| INTERVAL | non-reserved | non-reserved | reserved |
| INTO | reserved | non-reserved | reserved |
| IS | reserved | non-reserved | reserved |
| ITEMS | non-reserved | non-reserved | non-reserved |
| JOIN | reserved | strict-non-reserved | reserved |
| KEYS | non-reserved | non-reserved | non-reserved |
| LAST | non-reserved | non-reserved | non-reserved |
| LATERAL | non-reserved | non-reserved | reserved |
| LAZY | non-reserved | non-reserved | non-reserved |
| LEADING | reserved | non-reserved | reserved |
| LEFT | reserved | strict-non-reserved | reserved |
| LIKE | non-reserved | non-reserved | reserved |
| LIMIT | non-reserved | non-reserved | non-reserved |
| LINES | non-reserved | non-reserved | non-reserved |
| LIST | non-reserved | non-reserved | non-reserved |
| LOAD | non-reserved | non-reserved | non-reserved |
| LOCAL | non-reserved | non-reserved | reserved |
| LOCATION | non-reserved | non-reserved | non-reserved |
| LOCK | non-reserved | non-reserved | non-reserved |
| LOCKS | non-reserved | non-reserved | non-reserved |
| LOGICAL | non-reserved | non-reserved | non-reserved |
| MACRO | non-reserved | non-reserved | non-reserved |
| MAP | non-reserved | non-reserved | non-reserved |
| MATCHED | non-reserved | non-reserved | non-reserved |
| MERGE | non-reserved | non-reserved | non-reserved |
| MINUS | reserved | strict-non-reserved | non-reserved |
| MINUTE | reserved | non-reserved | reserved |
| MONTH | reserved | non-reserved | reserved |
| MSCK | non-reserved | non-reserved | non-reserved |
| NAMESPACE | non-reserved | non-reserved | non-reserved |
| NAMESPACES | non-reserved | non-reserved | non-reserved |
| NATURAL | reserved | strict-non-reserved | reserved |
| NO | non-reserved | non-reserved | reserved |
| NOT | reserved | non-reserved | reserved |
| NULL | reserved | non-reserved | reserved |
| NULLS | non-reserved | non-reserved | non-reserved |
| OF | non-reserved | non-reserved | reserved |
| ON | reserved | strict-non-reserved | reserved |
| ONLY | reserved | non-reserved | reserved |
| OPTION | non-reserved | non-reserved | non-reserved |
| OPTIONS | non-reserved | non-reserved | non-reserved |
| OR | reserved | non-reserved | reserved |
| ORDER | reserved | non-reserved | reserved |
| OUT | non-reserved | non-reserved | reserved |
| OUTER | reserved | non-reserved | reserved |
| OUTPUTFORMAT | non-reserved | non-reserved | non-reserved |
| OVER | non-reserved | non-reserved | non-reserved |
| OVERLAPS | reserved | non-reserved | reserved |
| OVERLAY | non-reserved | non-reserved | non-reserved |
| OVERWRITE | non-reserved | non-reserved | non-reserved |
| PARTITION | non-reserved | non-reserved | reserved |
| PARTITIONED | non-reserved | non-reserved | non-reserved |
| PARTITIONS | non-reserved | non-reserved | non-reserved |
| PERCENT | non-reserved | non-reserved | non-reserved |
| PIVOT | non-reserved | non-reserved | non-reserved |
| PLACING | non-reserved | non-reserved | non-reserved |
| POSITION | non-reserved | non-reserved | reserved |
| PRECEDING | non-reserved | non-reserved | non-reserved |
| PRIMARY | reserved | non-reserved | reserved |
| PRINCIPALS | non-reserved | non-reserved | non-reserved |
| PROPERTIES | non-reserved | non-reserved | non-reserved |
| PURGE | non-reserved | non-reserved | non-reserved |
| QUERY | non-reserved | non-reserved | non-reserved |
| RANGE | non-reserved | non-reserved | reserved |
| RECORDREADER | non-reserved | non-reserved | non-reserved |
| RECORDWRITER | non-reserved | non-reserved | non-reserved |
| RECOVER | non-reserved | non-reserved | non-reserved |
| REDUCE | non-reserved | non-reserved | non-reserved |
| REFERENCES | reserved | non-reserved | reserved |
| REFRESH | non-reserved | non-reserved | non-reserved |
| RENAME | non-reserved | non-reserved | non-reserved |
| REPAIR | non-reserved | non-reserved | non-reserved |
| REPLACE | non-reserved | non-reserved | non-reserved |
| RESET | non-reserved | non-reserved | non-reserved |
| RESTRICT | non-reserved | non-reserved | non-reserved |
| REVOKE | non-reserved | non-reserved | reserved |
| RIGHT | reserved | strict-non-reserved | reserved |
| RLIKE | non-reserved | non-reserved | non-reserved |
| ROLE | non-reserved | non-reserved | non-reserved |
| ROLES | non-reserved | non-reserved | non-reserved |
| ROLLBACK | non-reserved | non-reserved | reserved |
| ROLLUP | non-reserved | non-reserved | reserved |
| ROW | non-reserved | non-reserved | reserved |
| ROWS | non-reserved | non-reserved | reserved |
| SCHEMA | non-reserved | non-reserved | non-reserved |
| SECOND | reserved | non-reserved | reserved |
| SELECT | reserved | non-reserved | reserved |
| SEMI | reserved | strict-non-reserved | non-reserved |
| SEPARATED | non-reserved | non-reserved | non-reserved |
| SERDE | non-reserved | non-reserved | non-reserved |
| SERDEPROPERTIES | non-reserved | non-reserved | non-reserved |
| SESSION_USER | reserved | non-reserved | reserved |
| SET | non-reserved | non-reserved | reserved |
| SETS | non-reserved | non-reserved | non-reserved |
| SHOW | non-reserved | non-reserved | non-reserved |
| SKEWED | non-reserved | non-reserved | non-reserved |
| SOME | reserved | non-reserved | reserved |
| SORT | non-reserved | non-reserved | non-reserved |
| SORTED | non-reserved | non-reserved | non-reserved |
| START | non-reserved | non-reserved | reserved |
| STATISTICS | non-reserved | non-reserved | non-reserved |
| STORED | non-reserved | non-reserved | non-reserved |
| STRATIFY | non-reserved | non-reserved | non-reserved |
| STRUCT | non-reserved | non-reserved | non-reserved |
| SUBSTR | non-reserved | non-reserved | non-reserved |
| SUBSTRING | non-reserved | non-reserved | non-reserved |
| TABLE | reserved | non-reserved | reserved |
| TABLES | non-reserved | non-reserved | non-reserved |
| TABLESAMPLE | non-reserved | non-reserved | reserved |
| TBLPROPERTIES | non-reserved | non-reserved | non-reserved |
| TEMPORARY | non-reserved | non-reserved | non-reserved |
| TERMINATED | non-reserved | non-reserved | non-reserved |
| THEN | reserved | non-reserved | reserved |
| TO | reserved | non-reserved | reserved |
| TOUCH | non-reserved | non-reserved | non-reserved |
| TRAILING | reserved | non-reserved | reserved |
| TRANSACTION | non-reserved | non-reserved | non-reserved |
| TRANSACTIONS | non-reserved | non-reserved | non-reserved |
| TRANSFORM | non-reserved | non-reserved | non-reserved |
| TRIM | non-reserved | non-reserved | non-reserved |
| TRUE | non-reserved | non-reserved | reserved |
| TRUNCATE | non-reserved | non-reserved | reserved |
| UNARCHIVE | non-reserved | non-reserved | non-reserved |
| UNBOUNDED | non-reserved | non-reserved | non-reserved |
| UNCACHE | non-reserved | non-reserved | non-reserved |
| UNION | reserved | strict-non-reserved | reserved |
| UNIQUE | reserved | non-reserved | reserved |
| UNKNOWN | reserved | non-reserved | reserved |
| UNLOCK | non-reserved | non-reserved | non-reserved |
| UNSET | non-reserved | non-reserved | non-reserved |
| UPDATE | non-reserved | non-reserved | reserved |
| USE | non-reserved | non-reserved | non-reserved |
| USER | reserved | non-reserved | reserved |
| USING | reserved | strict-non-reserved | reserved |
| VALUES | non-reserved | non-reserved | reserved |
| VIEW | non-reserved | non-reserved | non-reserved |
| VIEWS | non-reserved | non-reserved | non-reserved |
| WHEN | reserved | non-reserved | reserved |
| WHERE | reserved | non-reserved | reserved |
| WINDOW | non-reserved | non-reserved | reserved |
| WITH | reserved | non-reserved | reserved |
| YEAR | reserved | non-reserved | reserved |
| Data type | -Value type in Scala | -API to access or create a data type |
|---|---|---|
| ByteType | -Byte | -- ByteType - | -
| ShortType | -Short | -- ShortType - | -
| IntegerType | -Int | -- IntegerType - | -
| LongType | -Long | -- LongType - | -
| FloatType | -Float | -- FloatType - | -
| DoubleType | -Double | -- DoubleType - | -
| DecimalType | -java.math.BigDecimal | -- DecimalType - | -
| StringType | -String | -- StringType - | -
| BinaryType | -Array[Byte] | -- BinaryType - | -
| BooleanType | -Boolean | -- BooleanType - | -
| TimestampType | -java.sql.Timestamp | -- TimestampType - | -
| DateType | -java.sql.Date | -- DateType - | -
| ArrayType | -scala.collection.Seq | -
- ArrayType(elementType, [containsNull]) - Note: The default value of containsNull is true. - |
-
| MapType | -scala.collection.Map | -
- MapType(keyType, valueType, [valueContainsNull]) - Note: The default value of valueContainsNull is true. - |
-
| StructType | -org.apache.spark.sql.Row | -
- StructType(fields) - Note: fields is a Seq of StructFields. Also, two fields with the same - name are not allowed. - |
-
| StructField | -The value type in Scala of the data type of this field - (For example, Int for a StructField with the data type IntegerType) | -
- StructField(name, dataType, [nullable]) - Note: The default value of nullable is true. - |
-
| Data type | -Value type in Java | -API to access or create a data type |
|---|---|---|
| ByteType | -byte or Byte | -- DataTypes.ByteType - | -
| ShortType | -short or Short | -- DataTypes.ShortType - | -
| IntegerType | -int or Integer | -- DataTypes.IntegerType - | -
| LongType | -long or Long | -- DataTypes.LongType - | -
| FloatType | -float or Float | -- DataTypes.FloatType - | -
| DoubleType | -double or Double | -- DataTypes.DoubleType - | -
| DecimalType | -java.math.BigDecimal | -
- DataTypes.createDecimalType() - DataTypes.createDecimalType(precision, scale). - |
-
| StringType | -String | -- DataTypes.StringType - | -
| BinaryType | -byte[] | -- DataTypes.BinaryType - | -
| BooleanType | -boolean or Boolean | -- DataTypes.BooleanType - | -
| TimestampType | -java.sql.Timestamp | -- DataTypes.TimestampType - | -
| DateType | -java.sql.Date | -- DataTypes.DateType - | -
| ArrayType | -java.util.List | -
- DataTypes.createArrayType(elementType) - Note: The value of containsNull will be true - DataTypes.createArrayType(elementType, containsNull). - |
-
| MapType | -java.util.Map | -
- DataTypes.createMapType(keyType, valueType) - Note: The value of valueContainsNull will be true. - DataTypes.createMapType(keyType, valueType, valueContainsNull) - |
-
| StructType | -org.apache.spark.sql.Row | -
- DataTypes.createStructType(fields) - Note: fields is a List or an array of StructFields. - Also, two fields with the same name are not allowed. - |
-
| StructField | -The value type in Java of the data type of this field - (For example, int for a StructField with the data type IntegerType) | -- DataTypes.createStructField(name, dataType, nullable) - | -
| Data type | -Value type in Python | -API to access or create a data type |
|---|---|---|
| ByteType | -
- int or long - Note: Numbers will be converted to 1-byte signed integer numbers at runtime. - Please make sure that numbers are within the range of -128 to 127. - |
- - ByteType() - | -
| ShortType | -
- int or long - Note: Numbers will be converted to 2-byte signed integer numbers at runtime. - Please make sure that numbers are within the range of -32768 to 32767. - |
- - ShortType() - | -
| IntegerType | -int or long | -- IntegerType() - | -
| LongType | -
- long - Note: Numbers will be converted to 8-byte signed integer numbers at runtime. - Please make sure that numbers are within the range of - -9223372036854775808 to 9223372036854775807. - Otherwise, please convert data to decimal.Decimal and use DecimalType. - |
- - LongType() - | -
| FloatType | -
- float - Note: Numbers will be converted to 4-byte single-precision floating - point numbers at runtime. - |
- - FloatType() - | -
| DoubleType | -float | -- DoubleType() - | -
| DecimalType | -decimal.Decimal | -- DecimalType() - | -
| StringType | -string | -- StringType() - | -
| BinaryType | -bytearray | -- BinaryType() - | -
| BooleanType | -bool | -- BooleanType() - | -
| TimestampType | -datetime.datetime | -- TimestampType() - | -
| DateType | -datetime.date | -- DateType() - | -
| ArrayType | -list, tuple, or array | -
- ArrayType(elementType, [containsNull]) - Note: The default value of containsNull is True. - |
-
| MapType | -dict | -
- MapType(keyType, valueType, [valueContainsNull]) - Note: The default value of valueContainsNull is True. - |
-
| StructType | -list or tuple | -
- StructType(fields) - Note: fields is a Seq of StructFields. Also, two fields with the same - name are not allowed. - |
-
| StructField | -The value type in Python of the data type of this field - (For example, Int for a StructField with the data type IntegerType) | -
- StructField(name, dataType, [nullable]) - Note: The default value of nullable is True. - |
-
| Data type | -Value type in R | -API to access or create a data type |
|---|---|---|
| ByteType | -
- integer - Note: Numbers will be converted to 1-byte signed integer numbers at runtime. - Please make sure that numbers are within the range of -128 to 127. - |
- - "byte" - | -
| ShortType | -
- integer - Note: Numbers will be converted to 2-byte signed integer numbers at runtime. - Please make sure that numbers are within the range of -32768 to 32767. - |
- - "short" - | -
| IntegerType | -integer | -- "integer" - | -
| LongType | -
- integer - Note: Numbers will be converted to 8-byte signed integer numbers at runtime. - Please make sure that numbers are within the range of - -9223372036854775808 to 9223372036854775807. - Otherwise, please convert data to decimal.Decimal and use DecimalType. - |
- - "long" - | -
| FloatType | -
- numeric - Note: Numbers will be converted to 4-byte single-precision floating - point numbers at runtime. - |
- - "float" - | -
| DoubleType | -numeric | -- "double" - | -
| DecimalType | -Not supported | -- Not supported - | -
| StringType | -character | -- "string" - | -
| BinaryType | -raw | -- "binary" - | -
| BooleanType | -logical | -- "bool" - | -
| TimestampType | -POSIXct | -- "timestamp" - | -
| DateType | -Date | -- "date" - | -
| ArrayType | -vector or list | -
- list(type="array", elementType=elementType, containsNull=[containsNull]) - Note: The default value of containsNull is TRUE. - |
-
| MapType | -environment | -
- list(type="map", keyType=keyType, valueType=valueType, valueContainsNull=[valueContainsNull]) - Note: The default value of valueContainsNull is TRUE. - |
-
| StructType | -named list | -
- list(type="struct", fields=fields) - Note: fields is a Seq of StructFields. Also, two fields with the same - name are not allowed. - |
-
| StructField | -The value type in R of the data type of this field - (For example, integer for a StructField with the data type IntegerType) | -
- list(name=name, type=dataType, nullable=[nullable]) - Note: The default value of nullable is TRUE. - |
-
| Data type | -SQL name |
|---|---|
| BooleanType | -BOOLEAN | -
| ByteType | -BYTE, TINYINT | -
| ShortType | -SHORT, SMALLINT | -
| IntegerType | -INT, INTEGER | -
| LongType | -LONG, BIGINT | -
| FloatType | -FLOAT, REAL | -
| DoubleType | -DOUBLE | -
| DateType | -DATE | -
| TimestampType | -TIMESTAMP | -
| StringType | -STRING | -
| BinaryType | -BINARY | -
| DecimalType | -DECIMAL, DEC, NUMERIC | -
| CalendarIntervalType | -INTERVAL | -
| ArrayType | -ARRAY<element_type> | -
| StructType | -STRUCT<field1_name: field1_type, field2_name: field2_type, ...> | -
| MapType | -MAP<key_type, value_type> | -
| Id | Name | Age |
|---|---|---|
| 100 | Joe | 30 |
| 200 | Marry | NULL |
| 300 | Mike | 18 |
| 400 | Fred | 50 |
| 500 | Albert | NULL |
| 600 | Michelle | 30 |
| 700 | Dan | 50 |
| Left Operand | -Right Operand | -> | ->= | -= | -< | -<= | -<=> | -
|---|---|---|---|---|---|---|---|
| NULL | -Any value | -NULL | -NULL | -NULL | -NULL | -NULL | -False | -
| Any value | -NULL | -NULL | -NULL | -NULL | -NULL | -NULL | -False | -
| NULL | -NULL | -NULL | -NULL | -NULL | -NULL | -NULL | -True | -
| Left Operand | -Right Operand | -OR | -AND | -
|---|---|---|---|
| True | -NULL | -True | -NULL | -
| False | -NULL | -NULL | -False | -
| NULL | -True | -True | -NULL | -
| NULL | -False | -NULL | -NULL | -
| NULL | -NULL | -NULL | -NULL | -
| operand | -NOT | -
|---|---|
| NULL | -NULL | -
table_alias
[ AS ] table_name [ ( column_name [ , ... ] ) ]
@@ -50,31 +50,12 @@ function_name ( expression [ , ... ] ) [ table_alias ]
### Supported Table-valued Functions
-
-
- Function Argument Type(s) Description
-
-
- range ( end )
- Long
- Creates a table with a single LongType column named id, containing rows in a range from 0 to end (exclusive) with step value 1.
-
-
- range ( start, end )
- Long, Long
- Creates a table with a single LongType column named id, containing rows in a range from start to end (exclusive) with step value 1.
-
-
- range ( start, end, step )
- Long, Long, Long
- Creates a table with a single LongType column named id, containing rows in a range from start to end (exclusive) with step value.
-
-
- range ( start, end, step, numPartitions )
- Long, Long, Long, Int
- Creates a table with a single LongType column named id, containing rows in a range from start to end (exclusive) with step value, with partition number numPartitions specified.
-
-
+|Function|Argument Type(s)|Description|
+|--------|----------------|-----------|
+|**range** ( *end* )|Long|Creates a table with a single *LongType* column named *id*,
containing rows in a range from 0 to *end* (exclusive) with step value 1.|
+|**range** ( *start, end* )|Long, Long|Creates a table with a single *LongType* column named *id*,
containing rows in a range from *start* to *end* (exclusive) with step value 1.|
+|**range** ( *start, end, step* )|Long, Long, Long|Creates a table with a single *LongType* column named *id*,
containing rows in a range from *start* to *end* (exclusive) with *step* value.|
+|**range** ( *start, end, step, numPartitions* )|Long, Long, Long, Int|Creates a table with a single *LongType* column named *id*,
containing rows in a range from *start* to *end* (exclusive) with *step* value, with partition number *numPartitions* specified.|
### Examples