From a9323913d7de2b07625a4d0c827c2b98d9e14baf Mon Sep 17 00:00:00 2001 From: Mehmet Yilmaz Date: Fri, 13 Jun 2025 14:27:18 +0000 Subject: [PATCH] multi_cluster_management errors: ambiguous collation in LIKE Add missing include for pg_collation in remote_commands.c --- src/backend/distributed/connection/remote_commands.c | 6 ++++-- src/backend/distributed/transaction/transaction_recovery.c | 5 +++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/backend/distributed/connection/remote_commands.c b/src/backend/distributed/connection/remote_commands.c index c9860c061..aa66b50cd 100644 --- a/src/backend/distributed/connection/remote_commands.c +++ b/src/backend/distributed/connection/remote_commands.c @@ -19,6 +19,7 @@ #include "utils/builtins.h" #include "utils/fmgrprotos.h" #include "utils/palloc.h" +#include "catalog/pg_collation.h" #include "distributed/cancel_utils.h" #include "distributed/connection_management.h" @@ -371,8 +372,9 @@ CommandMatchesLogGrepPattern(const char *command) if (GrepRemoteCommands && strnlen(GrepRemoteCommands, NAMEDATALEN) > 0) { Datum boolDatum = - DirectFunctionCall2(textlike, CStringGetTextDatum(command), - CStringGetTextDatum(GrepRemoteCommands)); + DirectFunctionCall2Coll(textlike, DEFAULT_COLLATION_OID, + CStringGetTextDatum(command), + CStringGetTextDatum(GrepRemoteCommands)); return DatumGetBool(boolDatum); } diff --git a/src/backend/distributed/transaction/transaction_recovery.c b/src/backend/distributed/transaction/transaction_recovery.c index 59432a313..fb5509def 100644 --- a/src/backend/distributed/transaction/transaction_recovery.c +++ b/src/backend/distributed/transaction/transaction_recovery.c @@ -514,8 +514,9 @@ PendingWorkerTransactionList(MultiConnection *connection) List *transactionNames = NIL; int32 coordinatorId = GetLocalGroupId(); - appendStringInfo(command, "SELECT gid FROM pg_prepared_xacts " - "WHERE gid LIKE 'citus\\_%d\\_%%' and database = current_database()", + appendStringInfo(command, + "SELECT gid FROM pg_prepared_xacts " + "WHERE gid COLLATE pg_catalog.default LIKE 'citus\\_%d\\_%%' COLLATE pg_catalog.default AND database = current_database()", coordinatorId); int querySent = SendRemoteCommand(connection, command->data);