@@ -1242,25 +1242,25 @@ assignProcTypes(OpFamilyMember *member, Oid amoid, Oid typeoid,
12421242 }
12431243
12441244 /*
1245- * btree comparison procs must be 2-arg procs returning int4. btree
1246- * sortsupport procs must take internal and return void. btree in_range
1247- * procs must be 5-arg procs returning bool. btree equalimage procs must
1248- * take 1 arg and return bool. hash support proc 1 must be a 1-arg proc
1249- * returning int4, while proc 2 must be a 2-arg proc returning int8.
1250- * Otherwise we don't know.
1245+ * Ordering comparison procs must be 2-arg procs returning int4. Ordering
1246+ * sortsupport procs must take internal and return void. Ordering
1247+ * in_range procs must be 5-arg procs returning bool. Ordering equalimage
1248+ * procs must take 1 arg and return bool. Hashing support proc 1 must be
1249+ * a 1-arg proc returning int4, while proc 2 must be a 2-arg proc
1250+ * returning int8. Otherwise we don't know.
12511251 */
1252- else if (amoid == BTREE_AM_OID )
1252+ else if (GetIndexAmRoutineByAmId ( amoid , false) -> amcanorder )
12531253 {
12541254 if (member -> number == BTORDER_PROC )
12551255 {
12561256 if (procform -> pronargs != 2 )
12571257 ereport (ERROR ,
12581258 (errcode (ERRCODE_INVALID_OBJECT_DEFINITION ),
1259- errmsg ("btree comparison functions must have two arguments" )));
1259+ errmsg ("ordering comparison functions must have two arguments" )));
12601260 if (procform -> prorettype != INT4OID )
12611261 ereport (ERROR ,
12621262 (errcode (ERRCODE_INVALID_OBJECT_DEFINITION ),
1263- errmsg ("btree comparison functions must return integer" )));
1263+ errmsg ("ordering comparison functions must return integer" )));
12641264
12651265 /*
12661266 * If lefttype/righttype isn't specified, use the proc's input
@@ -1277,11 +1277,11 @@ assignProcTypes(OpFamilyMember *member, Oid amoid, Oid typeoid,
12771277 procform -> proargtypes .values [0 ] != INTERNALOID )
12781278 ereport (ERROR ,
12791279 (errcode (ERRCODE_INVALID_OBJECT_DEFINITION ),
1280- errmsg ("btree sort support functions must accept type \"internal\"" )));
1280+ errmsg ("ordering sort support functions must accept type \"internal\"" )));
12811281 if (procform -> prorettype != VOIDOID )
12821282 ereport (ERROR ,
12831283 (errcode (ERRCODE_INVALID_OBJECT_DEFINITION ),
1284- errmsg ("btree sort support functions must return void" )));
1284+ errmsg ("ordering sort support functions must return void" )));
12851285
12861286 /*
12871287 * Can't infer lefttype/righttype from proc, so use default rule
@@ -1292,11 +1292,11 @@ assignProcTypes(OpFamilyMember *member, Oid amoid, Oid typeoid,
12921292 if (procform -> pronargs != 5 )
12931293 ereport (ERROR ,
12941294 (errcode (ERRCODE_INVALID_OBJECT_DEFINITION ),
1295- errmsg ("btree in_range functions must have five arguments" )));
1295+ errmsg ("ordering in_range functions must have five arguments" )));
12961296 if (procform -> prorettype != BOOLOID )
12971297 ereport (ERROR ,
12981298 (errcode (ERRCODE_INVALID_OBJECT_DEFINITION ),
1299- errmsg ("btree in_range functions must return boolean" )));
1299+ errmsg ("ordering in_range functions must return boolean" )));
13001300
13011301 /*
13021302 * If lefttype/righttype isn't specified, use the proc's input
@@ -1312,11 +1312,11 @@ assignProcTypes(OpFamilyMember *member, Oid amoid, Oid typeoid,
13121312 if (procform -> pronargs != 1 )
13131313 ereport (ERROR ,
13141314 (errcode (ERRCODE_INVALID_OBJECT_DEFINITION ),
1315- errmsg ("btree equal image functions must have one argument" )));
1315+ errmsg ("ordering equal image functions must have one argument" )));
13161316 if (procform -> prorettype != BOOLOID )
13171317 ereport (ERROR ,
13181318 (errcode (ERRCODE_INVALID_OBJECT_DEFINITION ),
1319- errmsg ("btree equal image functions must return boolean" )));
1319+ errmsg ("ordering equal image functions must return boolean" )));
13201320
13211321 /*
13221322 * pg_amproc functions are indexed by (lefttype, righttype), but
@@ -1329,10 +1329,10 @@ assignProcTypes(OpFamilyMember *member, Oid amoid, Oid typeoid,
13291329 if (member -> lefttype != member -> righttype )
13301330 ereport (ERROR ,
13311331 (errcode (ERRCODE_INVALID_OBJECT_DEFINITION ),
1332- errmsg ("btree equal image functions must not be cross-type" )));
1332+ errmsg ("ordering equal image functions must not be cross-type" )));
13331333 }
13341334 }
1335- else if (amoid == HASH_AM_OID )
1335+ else if (GetIndexAmRoutineByAmId ( amoid , false) -> amcanhash )
13361336 {
13371337 if (member -> number == HASHSTANDARD_PROC )
13381338 {
0 commit comments