@@ -1242,25 +1242,25 @@ assignProcTypes(OpFamilyMember *member, Oid amoid, Oid typeoid,
1242
1242
}
1243
1243
1244
1244
/*
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.
1251
1251
*/
1252
- else if (amoid == BTREE_AM_OID )
1252
+ else if (GetIndexAmRoutineByAmId ( amoid , false) -> amcanorder )
1253
1253
{
1254
1254
if (member -> number == BTORDER_PROC )
1255
1255
{
1256
1256
if (procform -> pronargs != 2 )
1257
1257
ereport (ERROR ,
1258
1258
(errcode (ERRCODE_INVALID_OBJECT_DEFINITION ),
1259
- errmsg ("btree comparison functions must have two arguments" )));
1259
+ errmsg ("ordering comparison functions must have two arguments" )));
1260
1260
if (procform -> prorettype != INT4OID )
1261
1261
ereport (ERROR ,
1262
1262
(errcode (ERRCODE_INVALID_OBJECT_DEFINITION ),
1263
- errmsg ("btree comparison functions must return integer" )));
1263
+ errmsg ("ordering comparison functions must return integer" )));
1264
1264
1265
1265
/*
1266
1266
* If lefttype/righttype isn't specified, use the proc's input
@@ -1277,11 +1277,11 @@ assignProcTypes(OpFamilyMember *member, Oid amoid, Oid typeoid,
1277
1277
procform -> proargtypes .values [0 ] != INTERNALOID )
1278
1278
ereport (ERROR ,
1279
1279
(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\"" )));
1281
1281
if (procform -> prorettype != VOIDOID )
1282
1282
ereport (ERROR ,
1283
1283
(errcode (ERRCODE_INVALID_OBJECT_DEFINITION ),
1284
- errmsg ("btree sort support functions must return void" )));
1284
+ errmsg ("ordering sort support functions must return void" )));
1285
1285
1286
1286
/*
1287
1287
* Can't infer lefttype/righttype from proc, so use default rule
@@ -1292,11 +1292,11 @@ assignProcTypes(OpFamilyMember *member, Oid amoid, Oid typeoid,
1292
1292
if (procform -> pronargs != 5 )
1293
1293
ereport (ERROR ,
1294
1294
(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" )));
1296
1296
if (procform -> prorettype != BOOLOID )
1297
1297
ereport (ERROR ,
1298
1298
(errcode (ERRCODE_INVALID_OBJECT_DEFINITION ),
1299
- errmsg ("btree in_range functions must return boolean" )));
1299
+ errmsg ("ordering in_range functions must return boolean" )));
1300
1300
1301
1301
/*
1302
1302
* If lefttype/righttype isn't specified, use the proc's input
@@ -1312,11 +1312,11 @@ assignProcTypes(OpFamilyMember *member, Oid amoid, Oid typeoid,
1312
1312
if (procform -> pronargs != 1 )
1313
1313
ereport (ERROR ,
1314
1314
(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" )));
1316
1316
if (procform -> prorettype != BOOLOID )
1317
1317
ereport (ERROR ,
1318
1318
(errcode (ERRCODE_INVALID_OBJECT_DEFINITION ),
1319
- errmsg ("btree equal image functions must return boolean" )));
1319
+ errmsg ("ordering equal image functions must return boolean" )));
1320
1320
1321
1321
/*
1322
1322
* pg_amproc functions are indexed by (lefttype, righttype), but
@@ -1329,10 +1329,10 @@ assignProcTypes(OpFamilyMember *member, Oid amoid, Oid typeoid,
1329
1329
if (member -> lefttype != member -> righttype )
1330
1330
ereport (ERROR ,
1331
1331
(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" )));
1333
1333
}
1334
1334
}
1335
- else if (amoid == HASH_AM_OID )
1335
+ else if (GetIndexAmRoutineByAmId ( amoid , false) -> amcanhash )
1336
1336
{
1337
1337
if (member -> number == HASHSTANDARD_PROC )
1338
1338
{
0 commit comments