【问题标题】:Phoenix sqlline can not query system table SYSTEM.FUNCTIONPhoenix sqlline 无法查询系统表SYSTEM.FUNCTION
【发布时间】:2016-08-08 06:17:09
【问题描述】:

我知道 Apache Phoenix 会将所有函数元数据存储在 SYSTEM.FUNCTION 中,但是当我使用以下语句执行查询时,它会抛出异常。

0: jdbc:phoenix:10.1.226.15:2181> select * from SYSTEM.FUNCTION;
Error: ERROR 604 (42P00): Syntax error. Mismatched input. Expecting "NAME", got "FUNCTION" at line 1, column 22. (state=42P00,code=604)
org.apache.phoenix.exception.PhoenixParserException: ERROR 604 (42P00): Syntax error. Mismatched input. Expecting "NAME", got "FUNCTION" at line 1, column 22.
    at org.apache.phoenix.exception.PhoenixParserException.newException(PhoenixParserException.java:33)

0: jdbc:phoenix:10.1.226.15:2181> select * from FUNCTION;
Error: ERROR 601 (42P00): Syntax error. Encountered "FUNCTION" at line 1, column 15. (state=42P00,code=601)
org.apache.phoenix.exception.PhoenixParserException: ERROR 601 (42P00): Syntax error. Encountered "FUNCTION" at line 1, column 15.

SYSTEM模式中存在表FUNCTION,但不能查询,另一方面,SYSTEM模式中的表CATALOG我可以执行语句并检索正确的数据。

0: jdbc:phoenix:10.1.226.15:2181> !tables
+------------------------------------------+------------------------------------------+------------------------------------------+------------------------------------------+------------------------------------+
|                TABLE_CAT                 |               TABLE_SCHEM                |                TABLE_NAME                |                TABLE_TYPE                |                 REMARKS            |
+------------------------------------------+------------------------------------------+------------------------------------------+------------------------------------------+------------------------------------+
|                                          | SYSTEM                                   | CATALOG                                  | SYSTEM TABLE                             |                                    |
|                                          | SYSTEM                                   | FUNCTION                                 | SYSTEM TABLE                             |                                    |
|                                          | SYSTEM                                   | SEQUENCE                                 | SYSTEM TABLE                             |                                    |
|                                          | SYSTEM                                   | STATS                                    | SYSTEM TABLE                             |                                    |
+------------------------------------------+------------------------------------------+------------------------------------------+------------------------------------------+------------------------------------+



0: jdbc:phoenix:10.1.226.15:2181> select * from system.catalog;
+------------------------------------------+------------------------------------------+------------------------------------------+------------------------------------------+------------------------------------+
|                TENANT_ID                 |               TABLE_SCHEM                |                TABLE_NAME                |               COLUMN_NAME                |              COLUMN_FAMILY         |
+------------------------------------------+------------------------------------------+------------------------------------------+------------------------------------------+------------------------------------+
|                                          | SYSTEM                                   | CATALOG                                  |                                          |                                    |
|                                          | SYSTEM                                   | CATALOG                                  | ARRAY_SIZE                               | 0                                  |
|                                          | SYSTEM                                   | CATALOG                                  | BUFFER_LENGTH                            | 0                                  |
....

谁能解释一下原因?

【问题讨论】:

    标签: phoenix sqlline


    【解决方案1】:

    functionselect 一样,是保留关键字。如果您想引用该表,请将其括在引号中(它也会区分大小写)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-20
      • 1970-01-01
      • 2011-03-15
      • 1970-01-01
      相关资源
      最近更新 更多