diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2011-03-26 18:28:40 -0400 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2011-03-26 18:28:40 -0400 |
commit | 7208fae18f1fdb242b4fcced77a3b836e15ac3ec (patch) | |
tree | e857033e3c74a3f73de3e29720290ee721199df3 /src/backend/executor/nodeMergeAppend.c | |
parent | 0c9d9e8dd655fff7bcfc401e82838b8c20c16939 (diff) | |
download | postgresql-7208fae18f1fdb242b4fcced77a3b836e15ac3ec.tar.gz postgresql-7208fae18f1fdb242b4fcced77a3b836e15ac3ec.zip |
Clean up cruft around collation initialization for tupdescs and scankeys.
I found actual bugs in GiST and plpgsql; the rest of this is cosmetic
but meant to decrease the odds of future bugs of omission.
Diffstat (limited to 'src/backend/executor/nodeMergeAppend.c')
-rw-r--r-- | src/backend/executor/nodeMergeAppend.c | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/src/backend/executor/nodeMergeAppend.c b/src/backend/executor/nodeMergeAppend.c index e46af8cff93..73920f21c8c 100644 --- a/src/backend/executor/nodeMergeAppend.c +++ b/src/backend/executor/nodeMergeAppend.c @@ -134,30 +134,32 @@ ExecInitMergeAppend(MergeAppend *node, EState *estate, int eflags) { Oid sortFunction; bool reverse; + int flags; if (!get_compare_function_for_ordering_op(node->sortOperators[i], &sortFunction, &reverse)) elog(ERROR, "operator %u is not a valid ordering operator", node->sortOperators[i]); + /* We use btree's conventions for encoding directionality */ + flags = 0; + if (reverse) + flags |= SK_BT_DESC; + if (node->nullsFirst[i]) + flags |= SK_BT_NULLS_FIRST; + /* * We needn't fill in sk_strategy or sk_subtype since these scankeys * will never be passed to an index. */ - ScanKeyInit(&mergestate->ms_scankeys[i], - node->sortColIdx[i], - InvalidStrategy, - sortFunction, - (Datum) 0); - - ScanKeyEntryInitializeCollation(&mergestate->ms_scankeys[i], - node->collations[i]); - - /* However, we use btree's conventions for encoding directionality */ - if (reverse) - mergestate->ms_scankeys[i].sk_flags |= SK_BT_DESC; - if (node->nullsFirst[i]) - mergestate->ms_scankeys[i].sk_flags |= SK_BT_NULLS_FIRST; + ScanKeyEntryInitialize(&mergestate->ms_scankeys[i], + flags, + node->sortColIdx[i], + InvalidStrategy, + InvalidOid, + node->collations[i], + sortFunction, + (Datum) 0); } /* |