diff options
Diffstat (limited to 'src/backend/utils')
-rw-r--r-- | src/backend/utils/adt/pgstatfuncs.c | 36 | ||||
-rw-r--r-- | src/backend/utils/adt/selfuncs.c | 1 | ||||
-rw-r--r-- | src/backend/utils/cache/catcache.c | 2 | ||||
-rw-r--r-- | src/backend/utils/sort/tuplesort.c | 31 |
4 files changed, 43 insertions, 27 deletions
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c index eb9bca19877..137c811bc3a 100644 --- a/src/backend/utils/adt/pgstatfuncs.c +++ b/src/backend/utils/adt/pgstatfuncs.c @@ -507,18 +507,30 @@ pg_stat_get_activity(PG_FUNCTION_ARGS) oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx); tupdesc = CreateTemplateTupleDesc(12, false); - TupleDescInitEntry(tupdesc, (AttrNumber) 1, "datid", OIDOID, -1, 0); - TupleDescInitEntry(tupdesc, (AttrNumber) 2, "procpid", INT4OID, -1, 0); - TupleDescInitEntry(tupdesc, (AttrNumber) 3, "usesysid", OIDOID, -1, 0); - TupleDescInitEntry(tupdesc, (AttrNumber) 4, "application_name", TEXTOID, -1, 0); - TupleDescInitEntry(tupdesc, (AttrNumber) 5, "current_query", TEXTOID, -1, 0); - TupleDescInitEntry(tupdesc, (AttrNumber) 6, "waiting", BOOLOID, -1, 0); - TupleDescInitEntry(tupdesc, (AttrNumber) 7, "act_start", TIMESTAMPTZOID, -1, 0); - TupleDescInitEntry(tupdesc, (AttrNumber) 8, "query_start", TIMESTAMPTZOID, -1, 0); - TupleDescInitEntry(tupdesc, (AttrNumber) 9, "backend_start", TIMESTAMPTZOID, -1, 0); - TupleDescInitEntry(tupdesc, (AttrNumber) 10, "client_addr", INETOID, -1, 0); - TupleDescInitEntry(tupdesc, (AttrNumber) 11, "client_hostname", TEXTOID, -1, 0); - TupleDescInitEntry(tupdesc, (AttrNumber) 12, "client_port", INT4OID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber) 1, "datid", + OIDOID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber) 2, "procpid", + INT4OID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber) 3, "usesysid", + OIDOID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber) 4, "application_name", + TEXTOID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber) 5, "current_query", + TEXTOID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber) 6, "waiting", + BOOLOID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber) 7, "act_start", + TIMESTAMPTZOID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber) 8, "query_start", + TIMESTAMPTZOID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber) 9, "backend_start", + TIMESTAMPTZOID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber) 10, "client_addr", + INETOID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber) 11, "client_hostname", + TEXTOID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber) 12, "client_port", + INT4OID, -1, 0); funcctx->tuple_desc = BlessTupleDesc(tupdesc); diff --git a/src/backend/utils/adt/selfuncs.c b/src/backend/utils/adt/selfuncs.c index c757fcb424f..f7358d198c5 100644 --- a/src/backend/utils/adt/selfuncs.c +++ b/src/backend/utils/adt/selfuncs.c @@ -4649,6 +4649,7 @@ get_actual_variable_range(PlannerInfo *root, VariableStatData *vardata, 1, /* index col to scan */ InvalidStrategy, /* no strategy */ InvalidOid, /* no strategy subtype */ + InvalidOid, /* no collation */ InvalidOid, /* no reg proc for this */ (Datum) 0); /* constant */ diff --git a/src/backend/utils/cache/catcache.c b/src/backend/utils/cache/catcache.c index 2241cb91f29..5caa53d4d25 100644 --- a/src/backend/utils/cache/catcache.c +++ b/src/backend/utils/cache/catcache.c @@ -934,6 +934,8 @@ CatalogCacheInitializeCache(CatCache *cache) /* Fill in sk_strategy as well --- always standard equality */ cache->cc_skey[i].sk_strategy = BTEqualStrategyNumber; cache->cc_skey[i].sk_subtype = InvalidOid; + /* Currently, there are no catcaches on collation-aware data types */ + cache->cc_skey[i].sk_func.fn_collation = InvalidOid; CACHE4_elog(DEBUG2, "CatalogCacheInitializeCache %s %d %p", cache->cc_relname, diff --git a/src/backend/utils/sort/tuplesort.c b/src/backend/utils/sort/tuplesort.c index 56185fcabc7..a1850b83c5e 100644 --- a/src/backend/utils/sort/tuplesort.c +++ b/src/backend/utils/sort/tuplesort.c @@ -621,6 +621,7 @@ tuplesort_begin_heap(TupleDesc tupDesc, { Oid sortFunction; bool reverse; + int flags; AssertArg(attNums[i] != 0); AssertArg(sortOperators[i] != 0); @@ -630,25 +631,25 @@ tuplesort_begin_heap(TupleDesc tupDesc, elog(ERROR, "operator %u is not a valid ordering operator", sortOperators[i]); + /* We use btree's conventions for encoding directionality */ + flags = 0; + if (reverse) + flags |= SK_BT_DESC; + if (nullsFirstFlags[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(&state->scanKeys[i], - attNums[i], - InvalidStrategy, - sortFunction, - (Datum) 0); - - if (collations) - ScanKeyEntryInitializeCollation(&state->scanKeys[i], - collations[i]); - - /* However, we use btree's conventions for encoding directionality */ - if (reverse) - state->scanKeys[i].sk_flags |= SK_BT_DESC; - if (nullsFirstFlags[i]) - state->scanKeys[i].sk_flags |= SK_BT_NULLS_FIRST; + ScanKeyEntryInitialize(&state->scanKeys[i], + flags, + attNums[i], + InvalidStrategy, + InvalidOid, + collations ? collations[i] : InvalidOid, + sortFunction, + (Datum) 0); } MemoryContextSwitchTo(oldcontext); |