aboutsummaryrefslogtreecommitdiff
path: root/src/backend/commands
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/commands')
-rw-r--r--src/backend/commands/opclasscmds.c34
1 files changed, 17 insertions, 17 deletions
diff --git a/src/backend/commands/opclasscmds.c b/src/backend/commands/opclasscmds.c
index 2c325badf94..8546366ee06 100644
--- a/src/backend/commands/opclasscmds.c
+++ b/src/backend/commands/opclasscmds.c
@@ -1242,25 +1242,25 @@ assignProcTypes(OpFamilyMember *member, Oid amoid, Oid typeoid,
}
/*
- * btree comparison procs must be 2-arg procs returning int4. btree
- * sortsupport procs must take internal and return void. btree in_range
- * procs must be 5-arg procs returning bool. btree equalimage procs must
- * take 1 arg and return bool. hash support proc 1 must be a 1-arg proc
- * returning int4, while proc 2 must be a 2-arg proc returning int8.
- * Otherwise we don't know.
+ * Ordering comparison procs must be 2-arg procs returning int4. Ordering
+ * sortsupport procs must take internal and return void. Ordering
+ * in_range procs must be 5-arg procs returning bool. Ordering equalimage
+ * procs must take 1 arg and return bool. Hashing support proc 1 must be
+ * a 1-arg proc returning int4, while proc 2 must be a 2-arg proc
+ * returning int8. Otherwise we don't know.
*/
- else if (amoid == BTREE_AM_OID)
+ else if (GetIndexAmRoutineByAmId(amoid, false)->amcanorder)
{
if (member->number == BTORDER_PROC)
{
if (procform->pronargs != 2)
ereport(ERROR,
(errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
- errmsg("btree comparison functions must have two arguments")));
+ errmsg("ordering comparison functions must have two arguments")));
if (procform->prorettype != INT4OID)
ereport(ERROR,
(errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
- errmsg("btree comparison functions must return integer")));
+ errmsg("ordering comparison functions must return integer")));
/*
* If lefttype/righttype isn't specified, use the proc's input
@@ -1277,11 +1277,11 @@ assignProcTypes(OpFamilyMember *member, Oid amoid, Oid typeoid,
procform->proargtypes.values[0] != INTERNALOID)
ereport(ERROR,
(errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
- errmsg("btree sort support functions must accept type \"internal\"")));
+ errmsg("ordering sort support functions must accept type \"internal\"")));
if (procform->prorettype != VOIDOID)
ereport(ERROR,
(errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
- errmsg("btree sort support functions must return void")));
+ errmsg("ordering sort support functions must return void")));
/*
* Can't infer lefttype/righttype from proc, so use default rule
@@ -1292,11 +1292,11 @@ assignProcTypes(OpFamilyMember *member, Oid amoid, Oid typeoid,
if (procform->pronargs != 5)
ereport(ERROR,
(errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
- errmsg("btree in_range functions must have five arguments")));
+ errmsg("ordering in_range functions must have five arguments")));
if (procform->prorettype != BOOLOID)
ereport(ERROR,
(errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
- errmsg("btree in_range functions must return boolean")));
+ errmsg("ordering in_range functions must return boolean")));
/*
* If lefttype/righttype isn't specified, use the proc's input
@@ -1312,11 +1312,11 @@ assignProcTypes(OpFamilyMember *member, Oid amoid, Oid typeoid,
if (procform->pronargs != 1)
ereport(ERROR,
(errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
- errmsg("btree equal image functions must have one argument")));
+ errmsg("ordering equal image functions must have one argument")));
if (procform->prorettype != BOOLOID)
ereport(ERROR,
(errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
- errmsg("btree equal image functions must return boolean")));
+ errmsg("ordering equal image functions must return boolean")));
/*
* pg_amproc functions are indexed by (lefttype, righttype), but
@@ -1329,10 +1329,10 @@ assignProcTypes(OpFamilyMember *member, Oid amoid, Oid typeoid,
if (member->lefttype != member->righttype)
ereport(ERROR,
(errcode(ERRCODE_INVALID_OBJECT_DEFINITION),
- errmsg("btree equal image functions must not be cross-type")));
+ errmsg("ordering equal image functions must not be cross-type")));
}
}
- else if (amoid == HASH_AM_OID)
+ else if (GetIndexAmRoutineByAmId(amoid, false)->amcanhash)
{
if (member->number == HASHSTANDARD_PROC)
{