更新时间:2024-06-20 GMT+08:00
分享

GAUSS-01291 -- GAUSS-01300

GAUSS-01291: "cannot use aggregate in index predicate"

SQLSTATE: 42803

错误原因:表达式索引中不能使用聚集操作。

解决办法:请勿在表达式索引中使用聚集操作。

GAUSS-01292: "functions in index predicate must be marked IMMUTABLE"

SQLSTATE: 42P17

错误原因:表达式索引中不能使用易变函数。

解决办法:保证表达式索引中的函数为不变函数。

GAUSS-01293: "cannot use subquery in index expression"

SQLSTATE: 0A000

错误原因:表达式索引中不能使用子查询。

解决办法:请勿在表达式索引中使用子查询。

GAUSS-01294: "cannot use aggregate function in index expression"

SQLSTATE: 42803

错误原因:表达式索引中不能使用聚集操作。

解决办法:请勿在表达式索引中使用聚集操作。

GAUSS-01295: "functions in index expression must be marked IMMUTABLE"

SQLSTATE: 42P17

错误原因:表达式索引中的函数必须不能变化。

解决办法:保证表达式索引中的函数为不变函数。

GAUSS-01296: "could not determine which collation to use for index expression"

SQLSTATE: 42P22

错误原因:无法决定在表达式索引中使用哪种排序方式。

解决办法:需要在创建表达式索引时指定排序方式。

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
postgres=# create table t8 (a text collate "C", b text collate case_insensitive);
NOTICE:  The 'DISTRIBUTE BY' clause is not specified. Using round-robin as the distribution mode by default.
HINT:  Please use 'DISTRIBUTE BY' clause to specify suitable data distribution column.
CREATE TABLE
postgres=# select collation for(ifnull(a,b)) from t8;
 pg_collation_for
------------------

(1 row)
postgres=# create index t8_idx on t8(ifnull(a,b));
ERROR:  could not determine which collation to use for index expression
HINT:  Use the COLLATE clause to set the collation explicitly.

GAUSS-01297: "operator %s is not commutative"

SQLSTATE: 42809

错误原因:操作符不可交换。

解决办法:排他约束中必须使用可交换操作符。

GAUSS-01298: "cache lookup failed for opfamily %u"

SQLSTATE: XX000

错误原因:系统内部错误。

解决办法:请联系技术支持工程师提供技术支持。

GAUSS-01299: "operator %s is not a member of operator family '%s'"

SQLSTATE: 42809

错误原因:操作符不在期望的操作符家族之列。

解决办法:排除操作符必须和索引约束有关。

GAUSS-01300: "access method '%s' does not support ASC/DESC options"

SQLSTATE: 0A000

错误原因:索引处理方法不支持ASC/DESC选项。

解决办法:列存不支持ASC/DESC选项,不建议使用索引列自定义排序。

相关文档