mirror of
https://github.com/postgres/postgres.git
synced 2025-08-19 23:22:23 +03:00
Generalize hash and ordering support in amapi
Stop comparing access method OID values against HASH_AM_OID and BTREE_AM_OID, and instead check the IndexAmRoutine for an index to see if it advertises its ability to perform the necessary ordering, hashing, or cross-type comparing functionality. A field amcanorder already existed, this uses it more widely. Fields amcanhash and amcancrosscompare are added for the other purposes. Author: Mark Dilger <mark.dilger@enterprisedb.com> Discussion: https://www.postgresql.org/message-id/flat/E72EAA49-354D-4C2E-8EB9-255197F55330@enterprisedb.com
This commit is contained in:
@@ -1331,10 +1331,10 @@ ExecIndexBuildScanKeys(PlanState *planstate, Relation index,
|
||||
varattno = ((Var *) leftop)->varattno;
|
||||
|
||||
/*
|
||||
* We have to look up the operator's associated btree support
|
||||
* We have to look up the operator's associated support
|
||||
* function
|
||||
*/
|
||||
if (index->rd_rel->relam != BTREE_AM_OID ||
|
||||
if (!index->rd_indam->amcanorder ||
|
||||
varattno < 1 || varattno > indnkeyatts)
|
||||
elog(ERROR, "bogus RowCompare index qualification");
|
||||
opfamily = index->rd_opfamily[varattno - 1];
|
||||
|
Reference in New Issue
Block a user