apache-hive / 3.1.1 / reference / Supported_Features___Apache_Hive_3.1.html

支持的功能:Apache Hive 3.1

下表涵盖了SQL:2016的所有必需功能以及 Hive 实现的可选功能。

Feature ID Feature Name Implemented Mandatory Comments
E011 数值数据类型 Yes Mandatory
E011-01 INTEGER 和 SMALLINT 数据类型(包括所有拼写) Yes Mandatory
E011-02 REAL,DOUBLE PRECISON 和 FLOAT 数据类型 Yes Mandatory
E011-03 DECIMAL 和 NUMERIC 数据类型 Yes Mandatory
E011-04 Arithmetic operators Yes Mandatory
E011-05 Numeric comparison Yes Mandatory
E011-06 数字数据类型之间的隐式转换 Yes Mandatory
E021 字符串类型 Yes Mandatory
E021-01 CHARACTER 数据类型(包括所有拼写) Partial Mandatory 仅支持 CHAR,不支持 CHARACTER
E021-02 CHARACTER VARYING 数据类型(包括所有拼写) Partial Mandatory 仅支持 VARCHAR,不支持 CHARACTER VARYING 或 CHAR VARYING
E021-03 Character literals Yes Mandatory
E021-04 CHARACTER_LENGTH function Yes Mandatory
E021-05 OCTET_LENGTH function Yes Mandatory
E021-06 SUBSTRING function Partial Mandatory 标准:SUBSTRING(* val * FROM * startpos * [FOR * len *])。Hive:SUBSTRING(* val startpos * [,* len *])
E021-07 Character concatenation Yes Mandatory
E021-08 上,下功能 Yes Mandatory
E021-09 TRIM function Yes Mandatory
E021-10 固定长度和可变长度字符串类型之间的隐式转换 Yes Mandatory
E021-11 POSITION function No Mandatory
E021-12 Character comparison Yes Mandatory
E031 Identifiers Partial Mandatory 未加引号的标识符使用 C 语法([A-Za-z] [A-Za-z0-9 _] *)。带引号的标识符可以包含任何字符。
E031-01 Delimited identifiers Partial Mandatory 用`而不是“进行报价,仅支持列,不支持表,视图等。
E031-02 小写字母标识符 Yes Mandatory
E031-03 Trailing underscore Yes Mandatory
E051 基本查询规范 Yes Mandatory
E051-01 SELECT DISTINCT Yes Mandatory
E051-02 GROUP BY 子句 Yes Mandatory
E051-04 GROUP BY 可以包含不在\ 中的列 Yes Mandatory
E051-05 选择列表项可以重命名 Yes Mandatory
E051-06 HAVING clause Yes Mandatory
E051-07 合格*在选择列表中 Yes Mandatory
E051-08 FROM 子句中的相关名称 Yes Mandatory
E051-09 重命名 FROM 子句中的列 Yes Mandatory
E061 基本谓词和搜索条件 Yes Mandatory
E061-01 Comparison predicate Yes Mandatory
E061-02 BETWEEN predicate Yes Mandatory
E061-03 具有值列表的 IN 谓词 Yes Mandatory
E061-04 LIKE predicate Yes Mandatory
E061-05 LIKE 谓词:ESCAPE 子句 Yes Mandatory
E061-06 NULL predicate Yes Mandatory
E061-07 定量比较谓词 No Mandatory
E061-08 EXISTS predicate Yes Mandatory
E061-09 比较谓词中的子查询 No Mandatory
E061-11 IN 谓词中的子查询 Yes Mandatory
E061-12 量化比较谓词中的子查询 No Mandatory
E061-13 Correlated subqueries Yes Mandatory
E061-14 Search condition Yes Mandatory
E071 基本查询表达式 Yes Mandatory
E071-01 UNION DISTINCT 表运算符 Yes Mandatory
E071-02 UNION ALL 表运算符 Yes Mandatory
E071-03 EXCEPT DISTINCT 表运算符 Yes Mandatory
E071-05 通过表运算符组合的列不必具有完全相同的数据类型。 Yes Mandatory
E071-06 子查询中的表运算符 Yes Mandatory
E081 Basic Privileges Yes Mandatory
E081-01 表级别的 SELECT 特权 Yes Mandatory
E081-02 DELETE privilege Yes Mandatory
E081-03 表级别的 INSERT 特权 Yes Mandatory
E081-04 表级别的 UPDATE 特权 Yes Mandatory
E081-05 列级别的 UPDATE 特权 Yes Mandatory
E081-06 表级别的“参考”特权 No Mandatory
E081-07 列级别的参考权限 No Mandatory
E081-08 附赠选项 Yes Mandatory
E081-09 USAGE privilege No Mandatory
E081-10 EXECUTE privilege No Mandatory
E091 Set functions Yes Mandatory
E091-01 AVG Yes Mandatory
E091-02 COUNT Yes Mandatory
E091-03 MAX Yes Mandatory
E091-04 MIN Yes Mandatory
E091-05 SUM Yes Mandatory
E091-06 ALL quantifier Yes Mandatory
E091-07 DISTINCT quantifier Yes Mandatory
E101 基本数据操作 Yes Mandatory
E101-01 INSERT statement Yes Mandatory
E101-03 搜索的 UPDATE 语句 Yes Mandatory
E101-04 搜索的 DELETE 语句 Yes Mandatory
E111 单行 SELECT 语句 No Mandatory
E121 基本游标支持 No Mandatory
E121-01 DECLARE CURSOR No Mandatory
E121-02 ORDER BY 列不必在选择列表中 No Mandatory
E121-03 ORDER BY 子句中的值表达式 No Mandatory
E121-04 OPEN statement No Mandatory
E121-06 定位的 UPDATE 语句 No Mandatory
E121-07 定位的 DELETE 语句 No Mandatory
E121-08 CLOSE statement No Mandatory
E121-10 FETCH 语句:隐式 NEXT No Mandatory
E121-17 带保持光标 No Mandatory
E131 空值支持(用空值代替值) Yes Mandatory
E141 基本完整性约束 Partial Mandatory 不支持 UNIQUE(VALUE)约束,不支持列列表的 UNIQUE。


不执行唯一约束。
不支持引用期,MATCH 或外键中的触发操作。
不支持 CHECK 约束。
| E141-01 |非空约束|是|强制||
| E141-02 | NOT NULL 列的 UNIQUE 约束|部分|强制|未实施 UNIQUE 约束|
| E141-03 | PRIMARY KEY 约束|部分|必填|未实施主键|
| E141-04 |对于引用删除操作和引用更新操作,默认为 NO ACTION 的基本 FOREIGN KEY 约束。| Partial | Mandatory |不支持引用时间段,MATCH 或触发的操作。
未强制使用外键。
|E141-06|CHECK constraints|Yes|Mandatory||
|E141-07|Column defaults|Yes|Mandatory||
| E141-08 |在 PRIMARY KEY 上推断出 NOT NULL |否|必需|无需使用 PRIMARY KEY 或 UNIQUE 声明 NOT NULL,但是不强制执行非 null。
| E141-10 |外键中的名称可以按任何 Sequences 指定|否|必须||
|E151|Transaction support|No|Mandatory||
|E151-01|COMMIT statement|No|Mandatory||
|E151-02|ROLLBACK statement|No|Mandatory||
| E152 |基本 SET TRANSACTION 语句|否|必填||
| E152-01 | SET TRANSACTION 语句:ISOLATION LEVEL SERIALIZABLE 子句|否|必填||
| E152-02 | SET TRANSACTION 语句:只读和读写子句|否|必填||
| E153 |具有子查询的可更新查询|否|必填||
| E161 |使用前导双减号的 SQLComments|是|强制||
|E171|SQLSTATE support|No|Mandatory||
| F031 |基本模式操作|是|强制||
| F031-01 | CREATE TABLE 语句创建持久基表|是|强制||
| F031-02 | CREATE VIEW 语句|是|必须||
|F031-03|GRANT statement|Yes|Mandatory||
| F031-04 | ALTER TABLE 语句:ADD COLUMN 子句|是|必需||
| F031-13 | DROP TABLE 语句:RESTRICT 子句|是|必需||
| F031-16 | DROP VIEW 语句:RESTRICT 子句|是|必需||
| F031-19 | REVOKE 语句:RESTRICT 子句|否|必须||
| F032 | CASCADE 掉落行为|是|可选||
| F034 |扩展的 REVOKE 语句|是|可选||
| F034-01 | REVOKE 语句由架构对象的所有者以外的其他人执行|是|可选||
| F034-02 | REVOKE 语句:GRANT OPTION FOR 子句|是|可选||
| F034-03 | REVOKE 语句以撤消被授予者所拥有的特权 WITH GRANT OPTION |是|可选||
| F041 |基本联接表|是|必填||
| F041-01 |内部联接(但不一定是 INNER 关键字)|是|必需||
|F041-02|INNER keyword|Yes|Mandatory||
| F041-03 |左外连接|是|必填||
| F041-04 |右外接头|是|必填||
| F041-05 |外部连接可以嵌套|是|强制||
| F041-07 |左或右外部联接中的内部表也可以用于内部联接|是|强制||
| F041-08 |支持所有比较运算符(而不仅仅是=)|是|强制||
| F051 |基本日期和时间|部分|必填|不支持 WITH/OUT TIMEZONE。
TIMESTAMP 不支持精度。
不支持 TIME 类型。
| F051-01 | DATE 数据类型(包括对 DATELiterals 的支持)|部分|必需|间隔与规范语法不匹配|
| F051-02 | TIME 数据类型(包括对 TIMELiterals 的支持),其小数秒精度至少为 0.|否|必需||
| F051-03 | TIMESTAMP 数据类型(包括对 TIMESTAMPLiterals 的支持),其小数秒精度至少为 0 和 6.| Partial | Mandatory |不支持 WITH/OUT TIMEZONE。
不支持精度。
间隔与规范语法不匹配。
| F051-04 | DATE,TIME 和 TIMESTAMP 数据类型的比较谓词|部分|必填|不支持 TIME |
| F051-05 |日期时间类型和字符串类型之间的显式 CAST |部分|必填|不支持 TIME |
|F051-06|CURRENT_DATE|Yes|Mandatory||
|F051-07|LOCALTIME|No|Mandatory||
| F051-08 | LOCALTIMESTAMP | Partial |必填| CURRENT_TIMESTAMP 受支持,不采用 precision 参数
不支持 LOCALTIMESTAMP |
| F052 |间隔和日期时间算术|部分|可选|间隔不作为列类型支持,仅作为查询中的表达式类型支持。
间隔语法与标准语法不同。
| F054 | DATE 类型优先级列表中的 TIMESTAMP |是|可选||
| F081 |视图中的联合和 exception|是|必填||
|F131|Grouped operations|Yes|Mandatory||
| F131-01 |具有分组视图的查询中支持 WHERE,GROUP BY 和 HAVING 子句|是|必填||
| F131-02 |具有分组视图的查询中支持多个表|是|强制||
| F131-03 |设置具有分组视图的查询中支持的功能|是|必需||
| F131-04 |带有 GROUP BY 和 HAVING 子句以及分组视图的子查询|是|必填||
| F131-05 |具有 GROUP BY 和 HAVING 子句以及分组视图的单行 SELECT |是|必填||
| F171 |每个用户有多个架构|是|可选||
| F200 | TRUNCATE TABLE 语句|是|可选||
| F181 |多个模块支持|否|必填||
|F201|CAST function|Yes|Mandatory||
|F221|Explicit defaults|Yes|Mandatory||
|F261|CASE expression|Yes|Mandatory||
|F261-01|Simple CASE|Yes|Mandatory||
|F261-02|Searched CASE|Yes|Mandatory||
|F261-03|NULLIF|Yes|Mandatory||
|F261-04|COALESCE|Yes|Mandatory||
| F302 | INTERSECT 表运算符|是|可选||
| F302-01 | INTERSECT DISTINCT 表运算符|是|可选||
| F302-02 | INTERSECT ALL 表运算符|是|可选||
| F304 | EXCEPT ALL 表运算符|是|可选||
| F311 |模式定义语句|是|强制||
|F311-01|CREATE SCHEMA|Yes|Mandatory||
| F311-02 |用于持久基表的创建表|部分|必需|在架构创建过程中不创建架构元素创建,必须在单独的语句中完成|
| F311-03 | CREATE VIEW | Partial | Mandatory |在架构创建过程中不创建架构元素,必须在单独的语句中完成|
| F311-04 |创建视图:带检查选项|否|必填||
| F311-05 | GRANT 语句|部分|必填|不创建架构元素作为架构创建的一部分,必须在单独的语句中完成|
|F312|MERGE statement|Yes|Optional||
| F313 |增强的 MERGE 语句|是|可选||
| F314 |带有 DELETE 分支的 MERGE 语句|是|可选||
| F321 |用户授权|部分|可选|对 CURRENT_USER 功能的支持,其余|
| F381 |扩展的模式操作|部分|可选|不支持范围。
不支持 ALTER 例程。
| F381-01 | ALTER TABLE 语句:ALTER COLUMN 子句| Partial | Optional |语法非标准。
不支持范围。
不支持身份。
不支持列生成。
| F381-02 | ALTER TABLE 语句:ADD CONSTRAINT 子句|部分|可选|与上面创建约束的限制相同|
| F381-03 | ALTER TABLE 语句:DROP CONSTRAINT 子句|部分|可选|与上面创建约束的限制相同|
| F382 |更改列数据类型|部分|可选|语法非标准|
| F383 |设置列不为空子句|部分|可选|语法非标准|
|F391|Long identifiers|Yes|Optional||
| F401 |扩展的联接表|部分|可选|不支持自然联接|
| F401-02 | FULL OUTER JOIN |是|可选||
|F401-04|CROSS JOIN|Yes|Optional||
| F471 |标量子查询值|是|必填||
| F481 |扩展的 NULL 谓词|是|必填||
| F531 |临时表|部分|可选|不支持 GLOBAL/LOCAL 范围。
不支持 DECLARE TEMPORARY TABLE。
| F555 |增强秒精度|是|可选||
| F763 | CURRENT_SCHEMA |部分|可选| CURRENT_DATABASE,等效|
|F812|Basic flagging|No|Mandatory||
| F841 | LIKE_REGEX 谓词|部分|可选|改用 RLIKE |
| F847 |非恒定正则表达式|是|可选||
| F850 |顶层\ in<query expression> |是|可选||
| F851 |<order by clause>在子查询中|是|可选||
| F852 |视图中的最高\ |是|可选||
| F855 |在\ 中嵌套\ |是|可选||
| F856 |在\ 中嵌套\ |是|可选||
| F857 |顶层\ in<query expression> |是|可选||
| F858 |<fetch first clause>在子查询中|是|可选||
| F859 |视图中的最高\ |是|可选||
| S011 |不同的数据类型|否|必填||
| S091 |基本数组支持|部分|可选|语法非标准。
没有声明最大基数的选项。
大小而不是基数。|
| S091-01 |内置数据类型的数组|部分|可选|语法非标准|
| S091-03 |数组表达式|部分|可选|支持数组元素引用和基数(尽管语法是非标准的)
不支持数组串联,修剪或最大基数|
| T021 | BINARY 和 VARBINARY 类型|部分|可选| BINARY,尽管它的作用类似于 VARBINARY,但不接受长度参数。
不支持叠加,修饰,位置或类似。
| T031 | BOOLEAN 数据类型|是|可选||
| T041 |基本 LOB 数据类型支持|部分|可选| BINARY 用作 BLOB(无大小限制)
STRING 充当 CLOB
Non-standard syntax|
| T041-01 | BLOB 数据类型|部分|可选| BINARY 用作 BLOB,非标准语法|
| T041-02 | CLOB 数据类型|部分|可选| STRING 用作 CLOB,非标准语法|
| T041-03 | LOB 数据类型的位置,长度,下限,修剪,上,下限|部分|可选|无位置
LOWER,UPPER 仅适用于 STRING |
| T041-04 | LOB 类型的并置|是|可选||
| T042 |扩展的 LOB 数据类型支持|部分|可选|支持 BINARY 和 STRING 的 Broadcast。
支持“喜欢 STRING”。
不支持所有其他高级选项。
| T051 |行类型|部分|可选|称为 STRUCT,而不是 ROW |
| T071 | BIGINT 数据类型|是|可选||
| T121 |在查询表达式中具有(不包括 RECURSIVE)|是|可选||
| T321 |基本的 SQL 调用例程|否|必需||
| T321-01 |无重载的用户定义函数|否|必填||
| T321-02 |用户定义的存储过程,没有重载|否|必填||
|T321-03|Function invocation|No|Mandatory||
|T321-04|CALL statement|No|Mandatory||
|T321-05|RETURN statement|No|Mandatory||
|T331|Basic roles|Yes|Optional||
|T351|Bracketed comments|Yes|Optional||
| T431 |扩展的分组功能|是|可选||
| T433 |多参数分组功能|是|可选||
| T441 | ABS 和 MOD 功能|是|可选||
| T501 |增强的 EXISTS 谓词|是|可选||
| T581 |正则表达式子字符串函数|是|可选||
| T591 |可能为空列的唯一约束|是|可选||
| T611 |基本 OLAP 操作|是|可选||
| T612 |高级 OLAP 操作|部分|可选||
|T613|Sampling|Yes|Optional||
|T614|NTILE function|Yes|Optional||
| T615 | LEAD 和 LAG 功能|是|可选||
| T617 | FIRST_VALUE 和 LAST_VALUE 函数|是|可选||
| T621 |增强的数字功能|是|可选||
| T622 |三角函数|部分|可选|没有 sinh,cosh,tanh |
| T623 |常规对数函数|是|可选||
| T624 |常用对数函数|是|可选||
| T631 | IN 具有一个列表元素的谓词|是|强制|