GAUSS-01441 -- GAUSS-01450
GAUSS-01441: “btree comparison procedures must have two arguments”
SQLSTATE: 42P17
错误原因:CREATE OPERATOR CLASS、ALTER OPERATOR FAMILY … ADD FUNCTION,access_method是btree且指定的函数是btree比较函数,但是参数个数不是2个。
解决办法:CREATE OPERATOR CLASS、ALTER OPERATOR FAMILY … ADD FUNCTION,指定的函数是btree比较函数,则参数个数必须是2个。
GAUSS-01442: “btree comparison procedures must return integer”
SQLSTATE: 42P17
错误原因:CREATE OPERATOR CLASS、ALTER OPERATOR FAMILY … ADD FUNCTION,access_method是btree且指定的函数是btree比较函数,但是返回值类型不是int。
解决办法:CREATE OPERATOR CLASS、ALTER OPERATOR FAMILY … ADD FUNCTION,指定的函数是btree比较函数,则返回值类型必须是int。
GAUSS-01443: “btree sort support procedures must accept type 'internal'”
SQLSTATE: 42P17
错误原因:CREATE OPERATOR CLASS、ALTER OPERATOR FAMILY … ADD FUNCTION,access_method是btree且指定的函数是btree sort support函数,但是参数类型不是internal。
解决办法:CREATE OPERATOR CLASS、ALTER OPERATOR FAMILY … ADD FUNCTION,指定的函数是btree sort support函数,则参数类型必须是internal。
GAUSS-01444: “btree sort support procedures must return void”
SQLSTATE: 42P17
错误原因:CREATE OPERATOR CLASS、ALTER OPERATOR FAMILY … ADD FUNCTION,access_method是btree且指定的函数是btree sort support函数,但是返回值类型不是void。
解决办法:CREATE OPERATOR CLASS、ALTER OPERATOR FAMILY … ADD FUNCTION,指定的函数是btree sort support函数,则返回值类型必须是void。
GAUSS-01446: “hash procedures must return integer”
SQLSTATE: 42P17
错误原因:CREATE OPERATOR CLASS、ALTER OPERATOR FAMILY … ADD FUNCTION,access_method是hash,但是返回值类型不是int。
解决办法:CREATE OPERATOR CLASS、ALTER OPERATOR FAMILY … ADD FUNCTION,access_method是hash,则返回值类型必须是int。
GAUSS-01447: “associated data types must be specified for index support procedure”
SQLSTATE: 42P17
错误原因:CREATE OPERATOR CLASS没有指定合法的FOR TYPE data_type,ALTER OPERATOR FAMILY … ADD OPERATOR没有指定左或右参数类型。
解决办法:CREATE OPERATOR CLASS必须指定合法的FOR TYPE data_type,ALTER OPERATOR FAMILY … ADD OPERATOR须得指定左参数类型或者右参数类型。
GAUSS-01448: “procedure number %d for (%s,%s) appears more than once”
SQLSTATE: 42P17
错误原因:CREATE OPERATOR CLASS、ALTER OPERATOR FAMILY … ADD/DROP procedure,相同的函数出现了多次。
解决办法:CREATE OPERATOR CLASS、ALTER OPERATOR FAMILY … ADD/DROP procedure,确保一个SQL语句中不要出现重复函数。
GAUSS-01449: “operator number %d for (%s,%s) appears more than once”
SQLSTATE: 42P17
错误原因:CREATE OPERATOR CLASS、ALTER OPERATOR FAMILY … ADD/DROP operator,相同的操作符出现了多次。
解决办法:CREATE OPERATOR CLASS、ALTER OPERATOR FAMILY … ADD/DROP operator,确保一个SQL语句中不要出现重复的操作符。
GAUSS-01450: “operator %d(%s,%s) already exists in operator family '%s'”
SQLSTATE: 42710
错误原因:CREATE OPERATOR CLASS、ALTER OPERATOR FAMILY … ADD/DROP operator,已经存在了相同的operator。
解决办法:CREATE OPERATOR CLASS、ALTER OPERATOR FAMILY … ADD/DROP operator之前,确保添加的operator在指定的operator family中尚未存在。