mirror of
https://github.com/postgres/postgres.git
synced 2025-06-27 23:21:58 +03:00
Rename RowCompareType to CompareType
RowCompareType served as a way to describe the fundamental meaning of an operator, notionally independent of an operator class (although so far this was only really supported for btrees). Its original purpose was for use inside RowCompareExpr, and it has also found some small use outside, such as for get_op_btree_interpretation(). We want to expand this now, as a more general way to describe operator semantics for other index access methods, including gist (to improve GistTranslateStratnum()) and others not written yet. To avoid future confusion, we rename the type to CompareType and the symbols from ROWCOMPARE_XXX to COMPARE_XXX to reflect their more general purpose. Reviewed-by: 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:
@ -2807,7 +2807,7 @@ make_row_comparison_op(ParseState *pstate, List *opname,
|
||||
List *largs, List *rargs, int location)
|
||||
{
|
||||
RowCompareExpr *rcexpr;
|
||||
RowCompareType rctype;
|
||||
CompareType cmptype;
|
||||
List *opexprs;
|
||||
List *opnos;
|
||||
List *opfamilies;
|
||||
@ -2928,15 +2928,15 @@ make_row_comparison_op(ParseState *pstate, List *opname,
|
||||
errhint("Row comparison operators must be associated with btree operator families."),
|
||||
parser_errposition(pstate, location)));
|
||||
}
|
||||
rctype = (RowCompareType) i;
|
||||
cmptype = (CompareType) i;
|
||||
|
||||
/*
|
||||
* For = and <> cases, we just combine the pairwise operators with AND or
|
||||
* OR respectively.
|
||||
*/
|
||||
if (rctype == ROWCOMPARE_EQ)
|
||||
if (cmptype == COMPARE_EQ)
|
||||
return (Node *) makeBoolExpr(AND_EXPR, opexprs, location);
|
||||
if (rctype == ROWCOMPARE_NE)
|
||||
if (cmptype == COMPARE_NE)
|
||||
return (Node *) makeBoolExpr(OR_EXPR, opexprs, location);
|
||||
|
||||
/*
|
||||
@ -2953,7 +2953,7 @@ make_row_comparison_op(ParseState *pstate, List *opname,
|
||||
{
|
||||
OpBtreeInterpretation *opinfo = lfirst(j);
|
||||
|
||||
if (opinfo->strategy == rctype)
|
||||
if (opinfo->strategy == cmptype)
|
||||
{
|
||||
opfamily = opinfo->opfamily_id;
|
||||
break;
|
||||
@ -2989,7 +2989,7 @@ make_row_comparison_op(ParseState *pstate, List *opname,
|
||||
}
|
||||
|
||||
rcexpr = makeNode(RowCompareExpr);
|
||||
rcexpr->rctype = rctype;
|
||||
rcexpr->cmptype = cmptype;
|
||||
rcexpr->opnos = opnos;
|
||||
rcexpr->opfamilies = opfamilies;
|
||||
rcexpr->inputcollids = NIL; /* assign_expr_collations will fix this */
|
||||
|
Reference in New Issue
Block a user