From 3b0d572765a3a9d18752f46b504f66fd8dce9894 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rton=20Boros?= Date: Tue, 8 Sep 2026 03:18:57 +0300 Subject: [PATCH 1/7] fix(pgmq): resolve drop_queue overloading bug --- .../pgmq/after-create.sql | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/ansible/files/postgresql_extension_custom_scripts/pgmq/after-create.sql b/ansible/files/postgresql_extension_custom_scripts/pgmq/after-create.sql index 1581d93ca8..13369dc812 100644 --- a/ansible/files/postgresql_extension_custom_scripts/pgmq/after-create.sql +++ b/ansible/files/postgresql_extension_custom_scripts/pgmq/after-create.sql @@ -18,17 +18,22 @@ begin this update is backwards compatible with version 1.4.4 but should be removed once we're on physical backups everywhere */ --- Detach and delete the official function -if extversion = '1.4.4' then - alter extension pgmq drop function pgmq.drop_queue; - drop function pgmq.drop_queue; -else -- 1.5.1+ - alter extension pgmq drop function pgmq.drop_queue(TEXT); - drop function pgmq.drop_queue(TEXT); -end if; + -- detach and drop both historical drop_queue signatures (1.4.4 only ever + -- has (text, boolean); 1.5.0+ has both (text) and (text, boolean)) + begin + alter extension pgmq drop function pgmq.drop_queue(text); + exception when others then null; + end; + begin + alter extension pgmq drop function pgmq.drop_queue(text, boolean); + exception when others then null; + end; + + drop function if exists pgmq.drop_queue(text); + drop function if exists pgmq.drop_queue(text, boolean); -- Create and reattach the patched function -CREATE FUNCTION pgmq.drop_queue(queue_name TEXT) +CREATE FUNCTION pgmq.drop_queue(queue_name TEXT, partitioned BOOLEAN DEFAULT FALSE) RETURNS BOOLEAN AS $func$ DECLARE qtable TEXT := pgmq.format_table_name(queue_name, 'q'); @@ -36,7 +41,6 @@ DECLARE fq_qtable TEXT := 'pgmq.' || qtable; atable TEXT := pgmq.format_table_name(queue_name, 'a'); fq_atable TEXT := 'pgmq.' || atable; - partitioned BOOLEAN; BEGIN EXECUTE FORMAT( $QUERY$ @@ -140,11 +144,7 @@ BEGIN END; $func$ LANGUAGE plpgsql; -if extversion = '1.4.4' then - alter extension pgmq add function pgmq.drop_queue; -else -- 1.5.1+ - alter extension pgmq add function pgmq.drop_queue(TEXT); -end if; + alter extension pgmq add function pgmq.drop_queue(text, boolean); update pg_extension set extowner = 'postgres'::regrole where extname = 'pgmq'; From abb8b58b196ef788996b35061aaafb247a7f2014 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rton=20Boros?= Date: Tue, 8 Sep 2026 03:56:58 +0300 Subject: [PATCH 2/7] test(pgmq): add drop_queue overload regression test --- nix/ext/tests/pgmq-drop-queue-overload.nix | 85 ++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 nix/ext/tests/pgmq-drop-queue-overload.nix diff --git a/nix/ext/tests/pgmq-drop-queue-overload.nix b/nix/ext/tests/pgmq-drop-queue-overload.nix new file mode 100644 index 0000000000..05a11606db --- /dev/null +++ b/nix/ext/tests/pgmq-drop-queue-overload.nix @@ -0,0 +1,85 @@ +{ self, pkgs }: +let + pname = "pgmq"; + inherit (pkgs) lib; + system = pkgs.pkgsLinux.stdenv.hostPlatform.system; + testLib = import ./lib.nix { inherit self pkgs; }; + + installedExtension = self.legacyPackages.${system}."psql_15".exts."${pname}"; + versions = installedExtension.versions; +in +pkgs.testers.runNixOSTest { + name = "pgmq-drop-queue-overload"; + nodes.server = + { ... }: + { + imports = [ + (testLib.makeSupabaseTestConfig { + majorVersion = "15"; + }) + ]; + }; + testScript = + { ... }: + let + versionList = lib.concatStringsSep ", " (map (v: ''"${v}"'') versions); + in + # python + '' + versions = [${versionList}] + + def sql(query): + return server.succeed( + "psql -U supabase_admin -d postgres -t -A -F',' -c \"" + query.replace('"', '\\"') + "\"" + ).strip() + + def drop_queue_overloads(): + # owned flag first: pg_get_function_identity_arguments() can itself + # contain a comma ("queue_name text, partitioned boolean"), so put the + # single-char flag first and split on the first comma only. + out = sql( + "select (d.objid is not null), pg_get_function_identity_arguments(p.oid) " + "from pg_proc p " + "left join pg_depend d on d.objid = p.oid and d.deptype = 'e' " + " and d.refobjid = (select oid from pg_extension where extname = 'pgmq') " + "where p.pronamespace = 'pgmq'::regnamespace and p.proname = 'drop_queue' " + "order by 2;" + ) + return [line.split(",", 1) for line in out.splitlines() if line] + + def check_callers(qname): + sql(f"select pgmq.create('{qname}_a'); select pgmq.drop_queue('{qname}_a');") + sql(f"select pgmq.create('{qname}_b'); select pgmq.drop_queue('{qname}_b', false);") + # WRONG flag on purpose (queue isn't partitioned) - must still + # succeed, safely ignored in favour of pgmq.meta + sql(f"select pgmq.create('{qname}_c'); select pgmq.drop_queue('{qname}_c', true);") + sql( + f"select pgmq.create('{qname}_d'); " + f"select pgmq.drop_queue(queue_name => '{qname}_d', partitioned => true);" + ) + + start_all() + server.wait_for_unit("supabase-db-init.service") + + for version in versions: + with subtest(f"install pgmq {version}"): + server.succeed("psql -U supabase_admin -d postgres -c 'DROP EXTENSION IF EXISTS pgmq;'") + server.succeed( + f"psql -U supabase_admin -d postgres -c \"CREATE EXTENSION pgmq WITH VERSION '{version}' CASCADE;\"" + ) + + overloads = drop_queue_overloads() + print(f"[{version}] drop_queue overloads: {overloads}") + assert len(overloads) == 1, ( + f"[{version}] expected exactly one drop_queue overload, got: {overloads}" + ) + assert overloads[0][0] == "t", ( + f"[{version}] drop_queue is not extension-owned: {overloads}" + ) + assert overloads[0][1] == "queue_name text, partitioned boolean", ( + f"[{version}] expected merged text,boolean signature, got: {overloads[0][1]}" + ) + + check_callers(f"q_{version.replace('.', '_')}") + ''; +} From 427090633fa0c0ea613f8f841b40cb2c1af1e3a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rton=20Boros?= Date: Mon, 7 Sep 2026 22:58:48 +0300 Subject: [PATCH 3/7] chore(pgmq): add 1.10.0-1.11.1, follow tembo-io -> pgmq repo move pgmq moved from github.com/tembo-io/pgmq to github.com/pgmq/pgmq. Adds versions 1.10.0/1.11.0/1.11.1 alongside the existing 1.4.4/1.5.1 (kept for pinned-version installs/restores). Also drops a Supabase-only shim that injected pgmq._extension_exists into the 1.5.0->1.5.1 upgrade script - upstream now defines it itself (CREATE OR REPLACE) from 1.5.2 onward, so the shim is dead code. --- nix/ext/pgmq/default.nix | 17 ++--------------- nix/ext/versions.json | 23 +++++++++++++++++++++++ 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/nix/ext/pgmq/default.nix b/nix/ext/pgmq/default.nix index 7e2076a2f5..3be0a3d97b 100644 --- a/nix/ext/pgmq/default.nix +++ b/nix/ext/pgmq/default.nix @@ -36,7 +36,7 @@ let inherit pname version; buildInputs = [ postgresql ]; src = fetchFromGitHub { - owner = "tembo-io"; + owner = "pgmq"; repo = pname; rev = "v${version}"; inherit hash; @@ -69,19 +69,6 @@ let echo "default_version = '${version}'" cat $out/share/postgresql/extension/${pname}--${version}.control } > $out/share/postgresql/extension/${pname}.control - cat >> sql/pgmq--1.5.0--1.5.1.sql < Date: Mon, 7 Sep 2026 23:00:31 +0300 Subject: [PATCH 4/7] revert: don't add pgmq versions here Adding entries to versions.json isn't inert: default.nix derives default_version from lib.last (the highest version present), so this would have silently bumped the shipped pgmq default to 1.11.1 without the breaking-change review that's pending in PSQL-1217. Keeping this PR to the safe owner-move + dead-code cleanup only. --- nix/ext/versions.json | 23 ----------------------- 1 file changed, 23 deletions(-) diff --git a/nix/ext/versions.json b/nix/ext/versions.json index 7e90f622c0..78a51b5f64 100644 --- a/nix/ext/versions.json +++ b/nix/ext/versions.json @@ -409,29 +409,6 @@ "17" ], "hash": "sha256-IU+i6ONPwtgsFKdzya6E+222ualR66gkbb0lDr+7Rb8=" - }, - "1.10.0": { - "postgresql": [ - "15", - "17" - ], - "hash": "sha256-sNOFr3tiZATFBvRBm4pSsn8YR62zqN06VBOBnvdXgts=" - }, - "1.11.0": { - "postgresql": [ - "15", - "17", - "18" - ], - "hash": "sha256-fJWINP7Dvc79blpfYbGfTEKZtcA/S8KAjmX5uPhmXBM=" - }, - "1.11.1": { - "postgresql": [ - "15", - "17", - "18" - ], - "hash": "sha256-BPOrQ7HcgTaTJIRzWUCG3iJN3mUjwIxa/wPxvJ1l4o4=" } }, "pgroonga": { From e3920a9f435e0b5e007702edfdddc60705c27af9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rton=20Boros?= Date: Mon, 7 Sep 2026 23:11:05 +0300 Subject: [PATCH 5/7] feat(pgmq): add 1.13.0 (latest) Makes 1.13.0 the shipped default_version. Breaking-change review 1.5.1->1.13.0 to happen as part of this PR's review before merging. --- nix/ext/versions.json | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/nix/ext/versions.json b/nix/ext/versions.json index 78a51b5f64..474fdc9756 100644 --- a/nix/ext/versions.json +++ b/nix/ext/versions.json @@ -409,6 +409,13 @@ "17" ], "hash": "sha256-IU+i6ONPwtgsFKdzya6E+222ualR66gkbb0lDr+7Rb8=" + }, + "1.13.0": { + "postgresql": [ + "15", + "17" + ], + "hash": "sha256-0/L/ic6WZ64Uc6JDNnKGVFVpQa2a+3OGIeyQwPFTJ5U=" } }, "pgroonga": { From e7487d467eeb55ea6d65b289fb6d3bb9370fb6bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rton=20Boros?= Date: Tue, 8 Sep 2026 03:30:12 +0300 Subject: [PATCH 6/7] test(pgmq): update expected-output snapshots for 1.13.0 pgmq 1.13.0 adds FIFO indexing, topic-based routing, grouped reads, and opt-in insert notifications, expanding its function/table surface (40 -> 76 functions). Snapshots regenerated from actual CI output across pg15/17/orioledb-17/multigres-17. --- nix/tests/expected/pgmq.out | 122 ++++++++++++------ nix/tests/expected/z_15_ext_interface.out | 64 ++++++--- nix/tests/expected/z_17_ext_interface.out | 64 ++++++--- .../expected/z_multigres-17_ext_interface.out | 64 ++++++--- .../expected/z_orioledb-17_ext_interface.out | 64 ++++++--- 5 files changed, 267 insertions(+), 111 deletions(-) diff --git a/nix/tests/expected/pgmq.out b/nix/tests/expected/pgmq.out index 5314e226c5..b8e34cb6c5 100644 --- a/nix/tests/expected/pgmq.out +++ b/nix/tests/expected/pgmq.out @@ -156,49 +156,85 @@ where n.nspname = 'pgmq' order by p.proname; - schema_name | function_name | owner --------------+-------------------------------+---------- - pgmq | _belongs_to_pgmq | postgres - pgmq | _ensure_pg_partman_installed | postgres - pgmq | _extension_exists | postgres - pgmq | _get_partition_col | postgres - pgmq | _get_pg_partman_major_version | postgres - pgmq | _get_pg_partman_schema | postgres - pgmq | archive | postgres - pgmq | archive | postgres - pgmq | convert_archive_partitioned | postgres - pgmq | create | postgres - pgmq | create_non_partitioned | postgres - pgmq | create_partitioned | postgres - pgmq | create_unlogged | postgres - pgmq | delete | postgres - pgmq | delete | postgres - pgmq | detach_archive | postgres - pgmq | drop_queue | postgres - pgmq | drop_queue | postgres - pgmq | format_table_name | postgres - pgmq | list_queues | postgres - pgmq | metrics | postgres - pgmq | metrics_all | postgres - pgmq | pop | postgres - pgmq | purge_queue | postgres - pgmq | read | postgres - pgmq | read_with_poll | postgres - pgmq | send | postgres - pgmq | send | postgres - pgmq | send | postgres - pgmq | send | postgres - pgmq | send | postgres - pgmq | send | postgres - pgmq | send_batch | postgres - pgmq | send_batch | postgres - pgmq | send_batch | postgres - pgmq | send_batch | postgres - pgmq | send_batch | postgres - pgmq | send_batch | postgres - pgmq | set_vt | postgres - pgmq | validate_queue_name | postgres -(40 rows) + schema_name | function_name | owner +-------------+----------------------------------+---------- + pgmq | _belongs_to_pgmq | postgres + pgmq | _create_fifo_index_if_not_exists | postgres + pgmq | _ensure_pg_partman_installed | postgres + pgmq | _extension_exists | postgres + pgmq | _get_partition_col | postgres + pgmq | _get_pg_partman_major_version | postgres + pgmq | _get_pg_partman_schema | postgres + pgmq | _send_batch | postgres + pgmq | _validate_batch_params | postgres + pgmq | acquire_queue_lock | postgres + pgmq | archive | postgres + pgmq | archive | postgres + pgmq | bind_topic | postgres + pgmq | convert_archive_partitioned | postgres + pgmq | create | postgres + pgmq | create_fifo_index | postgres + pgmq | create_fifo_indexes_all | postgres + pgmq | create_non_partitioned | postgres + pgmq | create_partitioned | postgres + pgmq | create_unlogged | postgres + pgmq | delete | postgres + pgmq | delete | postgres + pgmq | detach_archive | postgres + pgmq | disable_notify_insert | postgres + pgmq | drop_queue | postgres + pgmq | drop_queue | postgres + pgmq | enable_notify_insert | postgres + pgmq | format_table_name | postgres + pgmq | list_notify_insert_throttles | postgres + pgmq | list_queues | postgres + pgmq | list_topic_bindings | postgres + pgmq | list_topic_bindings | postgres + pgmq | metrics | postgres + pgmq | metrics_all | postgres + pgmq | notify_queue_listeners | postgres + pgmq | pop | postgres + pgmq | purge_queue | postgres + pgmq | read | postgres + pgmq | read_grouped | postgres + pgmq | read_grouped_head | postgres + pgmq | read_grouped_head_with_poll | postgres + pgmq | read_grouped_rr | postgres + pgmq | read_grouped_rr_with_poll | postgres + pgmq | read_grouped_with_poll | postgres + pgmq | read_with_poll | postgres + pgmq | send | postgres + pgmq | send | postgres + pgmq | send | postgres + pgmq | send | postgres + pgmq | send | postgres + pgmq | send | postgres + pgmq | send_batch | postgres + pgmq | send_batch | postgres + pgmq | send_batch | postgres + pgmq | send_batch | postgres + pgmq | send_batch | postgres + pgmq | send_batch | postgres + pgmq | send_batch_topic | postgres + pgmq | send_batch_topic | postgres + pgmq | send_batch_topic | postgres + pgmq | send_batch_topic | postgres + pgmq | send_batch_topic | postgres + pgmq | send_batch_topic | postgres + pgmq | send_topic | postgres + pgmq | send_topic | postgres + pgmq | send_topic | postgres + pgmq | set_vt | postgres + pgmq | set_vt | postgres + pgmq | set_vt | postgres + pgmq | set_vt | postgres + pgmq | test_routing | postgres + pgmq | unbind_topic | postgres + pgmq | update_notify_insert | postgres + pgmq | validate_queue_name | postgres + pgmq | validate_routing_key | postgres + pgmq | validate_topic_pattern | postgres +(76 rows) -- assert search_path is preserved after after-create script is run show search_path; diff --git a/nix/tests/expected/z_15_ext_interface.out b/nix/tests/expected/z_15_ext_interface.out index e53086bdec..32d3b9364e 100644 --- a/nix/tests/expected/z_15_ext_interface.out +++ b/nix/tests/expected/z_15_ext_interface.out @@ -1363,30 +1363,49 @@ order by pgcrypto | extensions | pgp_sym_encrypt_bytea | bytea, text | bytea pgcrypto | extensions | pgp_sym_encrypt_bytea | bytea, text, text | bytea pgmq | pgmq | _belongs_to_pgmq | table_name text | boolean + pgmq | pgmq | _create_fifo_index_if_not_exists | queue_name text | void pgmq | pgmq | _ensure_pg_partman_installed | | void pgmq | pgmq | _extension_exists | extension_name text | boolean pgmq | pgmq | _get_partition_col | partition_interval text | text pgmq | pgmq | _get_pg_partman_major_version | | integer pgmq | pgmq | _get_pg_partman_schema | | text + pgmq | pgmq | _send_batch | queue_name text, msgs jsonb[], headers jsonb[], delay timestamp with time zone | SETOF bigint + pgmq | pgmq | _validate_batch_params | msgs jsonb[], headers jsonb[] | void + pgmq | pgmq | acquire_queue_lock | queue_name text | void pgmq | pgmq | archive | queue_name text, msg_id bigint | boolean pgmq | pgmq | archive | queue_name text, msg_ids bigint[] | SETOF bigint + pgmq | pgmq | bind_topic | pattern text, queue_name text | void pgmq | pgmq | convert_archive_partitioned | table_name text, partition_interval text, retention_interval text, leading_partition integer | void pgmq | pgmq | create | queue_name text | void + pgmq | pgmq | create_fifo_index | queue_name text | void + pgmq | pgmq | create_fifo_indexes_all | | void pgmq | pgmq | create_non_partitioned | queue_name text | void - pgmq | pgmq | create_partitioned | queue_name text, partition_interval text, retention_interval text | void + pgmq | pgmq | create_partitioned | queue_name text, partition_interval text, retention_interval text, premake integer | void pgmq | pgmq | create_unlogged | queue_name text | void pgmq | pgmq | delete | queue_name text, msg_id bigint | boolean pgmq | pgmq | delete | queue_name text, msg_ids bigint[] | SETOF bigint pgmq | pgmq | detach_archive | queue_name text | void + pgmq | pgmq | disable_notify_insert | queue_name text | void pgmq | pgmq | drop_queue | queue_name text, partitioned boolean | boolean pgmq | pgmq | drop_queue | queue_name text | boolean + pgmq | pgmq | enable_notify_insert | queue_name text, throttle_interval_ms integer | void pgmq | pgmq | format_table_name | queue_name text, prefix text | text + pgmq | pgmq | list_notify_insert_throttles | | TABLE(queue_name text, throttle_interval_ms integer, last_notified_at timestamp with time zone) pgmq | pgmq | list_queues | | SETOF pgmq.queue_record + pgmq | pgmq | list_topic_bindings | queue_name text | TABLE(pattern text, queue_name text, bound_at timestamp with time zone, compiled_regex text) + pgmq | pgmq | list_topic_bindings | | TABLE(pattern text, queue_name text, bound_at timestamp with time zone, compiled_regex text) pgmq | pgmq | metrics | queue_name text | pgmq.metrics_result pgmq | pgmq | metrics_all | | SETOF pgmq.metrics_result - pgmq | pgmq | pop | queue_name text | SETOF pgmq.message_record + pgmq | pgmq | notify_queue_listeners | | trigger + pgmq | pgmq | pop | queue_name text, qty integer | SETOF pgmq.message_record pgmq | pgmq | purge_queue | queue_name text | bigint pgmq | pgmq | read | queue_name text, vt integer, qty integer, conditional jsonb | SETOF pgmq.message_record + pgmq | pgmq | read_grouped | queue_name text, vt integer, qty integer | SETOF pgmq.message_record + pgmq | pgmq | read_grouped_head | queue_name text, vt integer, qty integer | SETOF pgmq.message_record + pgmq | pgmq | read_grouped_head_with_poll | queue_name text, vt integer, qty integer, max_poll_seconds integer, poll_interval_ms integer | SETOF pgmq.message_record + pgmq | pgmq | read_grouped_rr | queue_name text, vt integer, qty integer | SETOF pgmq.message_record + pgmq | pgmq | read_grouped_rr_with_poll | queue_name text, vt integer, qty integer, max_poll_seconds integer, poll_interval_ms integer | SETOF pgmq.message_record + pgmq | pgmq | read_grouped_with_poll | queue_name text, vt integer, qty integer, max_poll_seconds integer, poll_interval_ms integer | SETOF pgmq.message_record pgmq | pgmq | read_with_poll | queue_name text, vt integer, qty integer, max_poll_seconds integer, poll_interval_ms integer, conditional jsonb | SETOF pgmq.message_record pgmq | pgmq | send | queue_name text, msg jsonb, headers jsonb | SETOF bigint pgmq | pgmq | send | queue_name text, msg jsonb, delay integer | SETOF bigint @@ -1400,8 +1419,25 @@ order by pgmq | pgmq | send_batch | queue_name text, msgs jsonb[] | SETOF bigint pgmq | pgmq | send_batch | queue_name text, msgs jsonb[], delay timestamp with time zone | SETOF bigint pgmq | pgmq | send_batch | queue_name text, msgs jsonb[], delay integer | SETOF bigint + pgmq | pgmq | send_batch_topic | routing_key text, msgs jsonb[], headers jsonb[], delay integer | TABLE(queue_name text, msg_id bigint) + pgmq | pgmq | send_batch_topic | routing_key text, msgs jsonb[], delay timestamp with time zone | TABLE(queue_name text, msg_id bigint) + pgmq | pgmq | send_batch_topic | routing_key text, msgs jsonb[], headers jsonb[] | TABLE(queue_name text, msg_id bigint) + pgmq | pgmq | send_batch_topic | routing_key text, msgs jsonb[], headers jsonb[], delay timestamp with time zone | TABLE(queue_name text, msg_id bigint) + pgmq | pgmq | send_batch_topic | routing_key text, msgs jsonb[], delay integer | TABLE(queue_name text, msg_id bigint) + pgmq | pgmq | send_batch_topic | routing_key text, msgs jsonb[] | TABLE(queue_name text, msg_id bigint) + pgmq | pgmq | send_topic | routing_key text, msg jsonb, headers jsonb, delay integer | integer + pgmq | pgmq | send_topic | routing_key text, msg jsonb, delay integer | integer + pgmq | pgmq | send_topic | routing_key text, msg jsonb | integer + pgmq | pgmq | set_vt | queue_name text, msg_ids bigint[], vt integer | SETOF pgmq.message_record + pgmq | pgmq | set_vt | queue_name text, msg_ids bigint[], vt timestamp with time zone | SETOF pgmq.message_record pgmq | pgmq | set_vt | queue_name text, msg_id bigint, vt integer | SETOF pgmq.message_record + pgmq | pgmq | set_vt | queue_name text, msg_id bigint, vt timestamp with time zone | SETOF pgmq.message_record + pgmq | pgmq | test_routing | routing_key text | TABLE(pattern text, queue_name text, compiled_regex text) + pgmq | pgmq | unbind_topic | pattern text, queue_name text | boolean + pgmq | pgmq | update_notify_insert | queue_name text, throttle_interval_ms integer | void pgmq | pgmq | validate_queue_name | queue_name text | void + pgmq | pgmq | validate_routing_key | routing_key text | boolean + pgmq | pgmq | validate_topic_pattern | pattern text | boolean pgroonga | pgroonga | command | groongacommand text | text pgroonga | pgroonga | command | groongacommand text, arguments text[] | text pgroonga | pgroonga | command_escape_value | value text | text @@ -5307,7 +5343,7 @@ order by xml2 | public | xpath_table | text, text, text, text, text | SETOF record xml2 | public | xslt_process | text, text | text xml2 | public | xslt_process | text, text, text | text -(5135 rows) +(5171 rows) /* @@ -5590,23 +5626,17 @@ order by pg_tle | pgtle | feature_info | obj_identity pg_tle | pgtle | feature_info | proname pg_tle | pgtle | feature_info | schema_name - pgmq | pgmq | a_foo | archived_at - pgmq | pgmq | a_foo | enqueued_at - pgmq | pgmq | a_foo | headers - pgmq | pgmq | a_foo | message - pgmq | pgmq | a_foo | msg_id - pgmq | pgmq | a_foo | read_ct - pgmq | pgmq | a_foo | vt pgmq | pgmq | meta | created_at pgmq | pgmq | meta | is_partitioned pgmq | pgmq | meta | is_unlogged pgmq | pgmq | meta | queue_name - pgmq | pgmq | q_foo | enqueued_at - pgmq | pgmq | q_foo | headers - pgmq | pgmq | q_foo | message - pgmq | pgmq | q_foo | msg_id - pgmq | pgmq | q_foo | read_ct - pgmq | pgmq | q_foo | vt + pgmq | pgmq | notify_insert_throttle | last_notified_at + pgmq | pgmq | notify_insert_throttle | queue_name + pgmq | pgmq | notify_insert_throttle | throttle_interval_ms + pgmq | pgmq | topic_bindings | bound_at + pgmq | pgmq | topic_bindings | compiled_regex + pgmq | pgmq | topic_bindings | pattern + pgmq | pgmq | topic_bindings | queue_name pgsodium | pgsodium | decrypted_key | associated_data pgsodium | pgsodium | decrypted_key | comment pgsodium | pgsodium | decrypted_key | created @@ -6509,5 +6539,5 @@ order by wrappers | public | wrappers_fdw_stats | rows_in wrappers | public | wrappers_fdw_stats | rows_out wrappers | public | wrappers_fdw_stats | updated_at -(1168 rows) +(1162 rows) diff --git a/nix/tests/expected/z_17_ext_interface.out b/nix/tests/expected/z_17_ext_interface.out index d589b8a6d1..6ff1037362 100644 --- a/nix/tests/expected/z_17_ext_interface.out +++ b/nix/tests/expected/z_17_ext_interface.out @@ -1348,30 +1348,49 @@ order by pgcrypto | extensions | pgp_sym_encrypt_bytea | bytea, text | bytea pgcrypto | extensions | pgp_sym_encrypt_bytea | bytea, text, text | bytea pgmq | pgmq | _belongs_to_pgmq | table_name text | boolean + pgmq | pgmq | _create_fifo_index_if_not_exists | queue_name text | void pgmq | pgmq | _ensure_pg_partman_installed | | void pgmq | pgmq | _extension_exists | extension_name text | boolean pgmq | pgmq | _get_partition_col | partition_interval text | text pgmq | pgmq | _get_pg_partman_major_version | | integer pgmq | pgmq | _get_pg_partman_schema | | text + pgmq | pgmq | _send_batch | queue_name text, msgs jsonb[], headers jsonb[], delay timestamp with time zone | SETOF bigint + pgmq | pgmq | _validate_batch_params | msgs jsonb[], headers jsonb[] | void + pgmq | pgmq | acquire_queue_lock | queue_name text | void pgmq | pgmq | archive | queue_name text, msg_id bigint | boolean pgmq | pgmq | archive | queue_name text, msg_ids bigint[] | SETOF bigint + pgmq | pgmq | bind_topic | pattern text, queue_name text | void pgmq | pgmq | convert_archive_partitioned | table_name text, partition_interval text, retention_interval text, leading_partition integer | void pgmq | pgmq | create | queue_name text | void + pgmq | pgmq | create_fifo_index | queue_name text | void + pgmq | pgmq | create_fifo_indexes_all | | void pgmq | pgmq | create_non_partitioned | queue_name text | void - pgmq | pgmq | create_partitioned | queue_name text, partition_interval text, retention_interval text | void + pgmq | pgmq | create_partitioned | queue_name text, partition_interval text, retention_interval text, premake integer | void pgmq | pgmq | create_unlogged | queue_name text | void pgmq | pgmq | delete | queue_name text, msg_id bigint | boolean pgmq | pgmq | delete | queue_name text, msg_ids bigint[] | SETOF bigint pgmq | pgmq | detach_archive | queue_name text | void + pgmq | pgmq | disable_notify_insert | queue_name text | void pgmq | pgmq | drop_queue | queue_name text, partitioned boolean | boolean pgmq | pgmq | drop_queue | queue_name text | boolean + pgmq | pgmq | enable_notify_insert | queue_name text, throttle_interval_ms integer | void pgmq | pgmq | format_table_name | queue_name text, prefix text | text + pgmq | pgmq | list_notify_insert_throttles | | TABLE(queue_name text, throttle_interval_ms integer, last_notified_at timestamp with time zone) pgmq | pgmq | list_queues | | SETOF pgmq.queue_record + pgmq | pgmq | list_topic_bindings | queue_name text | TABLE(pattern text, queue_name text, bound_at timestamp with time zone, compiled_regex text) + pgmq | pgmq | list_topic_bindings | | TABLE(pattern text, queue_name text, bound_at timestamp with time zone, compiled_regex text) pgmq | pgmq | metrics | queue_name text | pgmq.metrics_result pgmq | pgmq | metrics_all | | SETOF pgmq.metrics_result - pgmq | pgmq | pop | queue_name text | SETOF pgmq.message_record + pgmq | pgmq | notify_queue_listeners | | trigger + pgmq | pgmq | pop | queue_name text, qty integer | SETOF pgmq.message_record pgmq | pgmq | purge_queue | queue_name text | bigint pgmq | pgmq | read | queue_name text, vt integer, qty integer, conditional jsonb | SETOF pgmq.message_record + pgmq | pgmq | read_grouped | queue_name text, vt integer, qty integer | SETOF pgmq.message_record + pgmq | pgmq | read_grouped_head | queue_name text, vt integer, qty integer | SETOF pgmq.message_record + pgmq | pgmq | read_grouped_head_with_poll | queue_name text, vt integer, qty integer, max_poll_seconds integer, poll_interval_ms integer | SETOF pgmq.message_record + pgmq | pgmq | read_grouped_rr | queue_name text, vt integer, qty integer | SETOF pgmq.message_record + pgmq | pgmq | read_grouped_rr_with_poll | queue_name text, vt integer, qty integer, max_poll_seconds integer, poll_interval_ms integer | SETOF pgmq.message_record + pgmq | pgmq | read_grouped_with_poll | queue_name text, vt integer, qty integer, max_poll_seconds integer, poll_interval_ms integer | SETOF pgmq.message_record pgmq | pgmq | read_with_poll | queue_name text, vt integer, qty integer, max_poll_seconds integer, poll_interval_ms integer, conditional jsonb | SETOF pgmq.message_record pgmq | pgmq | send | queue_name text, msg jsonb, headers jsonb | SETOF bigint pgmq | pgmq | send | queue_name text, msg jsonb, delay integer | SETOF bigint @@ -1385,8 +1404,25 @@ order by pgmq | pgmq | send_batch | queue_name text, msgs jsonb[] | SETOF bigint pgmq | pgmq | send_batch | queue_name text, msgs jsonb[], delay timestamp with time zone | SETOF bigint pgmq | pgmq | send_batch | queue_name text, msgs jsonb[], delay integer | SETOF bigint + pgmq | pgmq | send_batch_topic | routing_key text, msgs jsonb[], headers jsonb[], delay integer | TABLE(queue_name text, msg_id bigint) + pgmq | pgmq | send_batch_topic | routing_key text, msgs jsonb[], delay timestamp with time zone | TABLE(queue_name text, msg_id bigint) + pgmq | pgmq | send_batch_topic | routing_key text, msgs jsonb[], headers jsonb[] | TABLE(queue_name text, msg_id bigint) + pgmq | pgmq | send_batch_topic | routing_key text, msgs jsonb[], headers jsonb[], delay timestamp with time zone | TABLE(queue_name text, msg_id bigint) + pgmq | pgmq | send_batch_topic | routing_key text, msgs jsonb[], delay integer | TABLE(queue_name text, msg_id bigint) + pgmq | pgmq | send_batch_topic | routing_key text, msgs jsonb[] | TABLE(queue_name text, msg_id bigint) + pgmq | pgmq | send_topic | routing_key text, msg jsonb, headers jsonb, delay integer | integer + pgmq | pgmq | send_topic | routing_key text, msg jsonb, delay integer | integer + pgmq | pgmq | send_topic | routing_key text, msg jsonb | integer + pgmq | pgmq | set_vt | queue_name text, msg_ids bigint[], vt integer | SETOF pgmq.message_record + pgmq | pgmq | set_vt | queue_name text, msg_ids bigint[], vt timestamp with time zone | SETOF pgmq.message_record pgmq | pgmq | set_vt | queue_name text, msg_id bigint, vt integer | SETOF pgmq.message_record + pgmq | pgmq | set_vt | queue_name text, msg_id bigint, vt timestamp with time zone | SETOF pgmq.message_record + pgmq | pgmq | test_routing | routing_key text | TABLE(pattern text, queue_name text, compiled_regex text) + pgmq | pgmq | unbind_topic | pattern text, queue_name text | boolean + pgmq | pgmq | update_notify_insert | queue_name text, throttle_interval_ms integer | void pgmq | pgmq | validate_queue_name | queue_name text | void + pgmq | pgmq | validate_routing_key | routing_key text | boolean + pgmq | pgmq | validate_topic_pattern | pattern text | boolean pgroonga | pgroonga | command | groongacommand text | text pgroonga | pgroonga | command | groongacommand text, arguments text[] | text pgroonga | pgroonga | command_escape_value | value text | text @@ -4951,7 +4987,7 @@ order by xml2 | public | xpath_table | text, text, text, text, text | SETOF record xml2 | public | xslt_process | text, text | text xml2 | public | xslt_process | text, text, text | text -(4792 rows) +(4828 rows) /* @@ -5246,23 +5282,17 @@ order by pg_tle | pgtle | feature_info | obj_identity pg_tle | pgtle | feature_info | proname pg_tle | pgtle | feature_info | schema_name - pgmq | pgmq | a_foo | archived_at - pgmq | pgmq | a_foo | enqueued_at - pgmq | pgmq | a_foo | headers - pgmq | pgmq | a_foo | message - pgmq | pgmq | a_foo | msg_id - pgmq | pgmq | a_foo | read_ct - pgmq | pgmq | a_foo | vt pgmq | pgmq | meta | created_at pgmq | pgmq | meta | is_partitioned pgmq | pgmq | meta | is_unlogged pgmq | pgmq | meta | queue_name - pgmq | pgmq | q_foo | enqueued_at - pgmq | pgmq | q_foo | headers - pgmq | pgmq | q_foo | message - pgmq | pgmq | q_foo | msg_id - pgmq | pgmq | q_foo | read_ct - pgmq | pgmq | q_foo | vt + pgmq | pgmq | notify_insert_throttle | last_notified_at + pgmq | pgmq | notify_insert_throttle | queue_name + pgmq | pgmq | notify_insert_throttle | throttle_interval_ms + pgmq | pgmq | topic_bindings | bound_at + pgmq | pgmq | topic_bindings | compiled_regex + pgmq | pgmq | topic_bindings | pattern + pgmq | pgmq | topic_bindings | queue_name pgsodium | pgsodium | decrypted_key | associated_data pgsodium | pgsodium | decrypted_key | comment pgsodium | pgsodium | decrypted_key | created @@ -5434,5 +5464,5 @@ order by wrappers | public | wrappers_fdw_stats | rows_in wrappers | public | wrappers_fdw_stats | rows_out wrappers | public | wrappers_fdw_stats | updated_at -(449 rows) +(443 rows) diff --git a/nix/tests/expected/z_multigres-17_ext_interface.out b/nix/tests/expected/z_multigres-17_ext_interface.out index 978d6adffe..5765b45fdc 100644 --- a/nix/tests/expected/z_multigres-17_ext_interface.out +++ b/nix/tests/expected/z_multigres-17_ext_interface.out @@ -1348,30 +1348,49 @@ order by pgcrypto | extensions | pgp_sym_encrypt_bytea | bytea, text | bytea pgcrypto | extensions | pgp_sym_encrypt_bytea | bytea, text, text | bytea pgmq | pgmq | _belongs_to_pgmq | table_name text | boolean + pgmq | pgmq | _create_fifo_index_if_not_exists | queue_name text | void pgmq | pgmq | _ensure_pg_partman_installed | | void pgmq | pgmq | _extension_exists | extension_name text | boolean pgmq | pgmq | _get_partition_col | partition_interval text | text pgmq | pgmq | _get_pg_partman_major_version | | integer pgmq | pgmq | _get_pg_partman_schema | | text + pgmq | pgmq | _send_batch | queue_name text, msgs jsonb[], headers jsonb[], delay timestamp with time zone | SETOF bigint + pgmq | pgmq | _validate_batch_params | msgs jsonb[], headers jsonb[] | void + pgmq | pgmq | acquire_queue_lock | queue_name text | void pgmq | pgmq | archive | queue_name text, msg_id bigint | boolean pgmq | pgmq | archive | queue_name text, msg_ids bigint[] | SETOF bigint + pgmq | pgmq | bind_topic | pattern text, queue_name text | void pgmq | pgmq | convert_archive_partitioned | table_name text, partition_interval text, retention_interval text, leading_partition integer | void pgmq | pgmq | create | queue_name text | void + pgmq | pgmq | create_fifo_index | queue_name text | void + pgmq | pgmq | create_fifo_indexes_all | | void pgmq | pgmq | create_non_partitioned | queue_name text | void - pgmq | pgmq | create_partitioned | queue_name text, partition_interval text, retention_interval text | void + pgmq | pgmq | create_partitioned | queue_name text, partition_interval text, retention_interval text, premake integer | void pgmq | pgmq | create_unlogged | queue_name text | void pgmq | pgmq | delete | queue_name text, msg_id bigint | boolean pgmq | pgmq | delete | queue_name text, msg_ids bigint[] | SETOF bigint pgmq | pgmq | detach_archive | queue_name text | void + pgmq | pgmq | disable_notify_insert | queue_name text | void pgmq | pgmq | drop_queue | queue_name text, partitioned boolean | boolean pgmq | pgmq | drop_queue | queue_name text | boolean + pgmq | pgmq | enable_notify_insert | queue_name text, throttle_interval_ms integer | void pgmq | pgmq | format_table_name | queue_name text, prefix text | text + pgmq | pgmq | list_notify_insert_throttles | | TABLE(queue_name text, throttle_interval_ms integer, last_notified_at timestamp with time zone) pgmq | pgmq | list_queues | | SETOF pgmq.queue_record + pgmq | pgmq | list_topic_bindings | queue_name text | TABLE(pattern text, queue_name text, bound_at timestamp with time zone, compiled_regex text) + pgmq | pgmq | list_topic_bindings | | TABLE(pattern text, queue_name text, bound_at timestamp with time zone, compiled_regex text) pgmq | pgmq | metrics | queue_name text | pgmq.metrics_result pgmq | pgmq | metrics_all | | SETOF pgmq.metrics_result - pgmq | pgmq | pop | queue_name text | SETOF pgmq.message_record + pgmq | pgmq | notify_queue_listeners | | trigger + pgmq | pgmq | pop | queue_name text, qty integer | SETOF pgmq.message_record pgmq | pgmq | purge_queue | queue_name text | bigint pgmq | pgmq | read | queue_name text, vt integer, qty integer, conditional jsonb | SETOF pgmq.message_record + pgmq | pgmq | read_grouped | queue_name text, vt integer, qty integer | SETOF pgmq.message_record + pgmq | pgmq | read_grouped_head | queue_name text, vt integer, qty integer | SETOF pgmq.message_record + pgmq | pgmq | read_grouped_head_with_poll | queue_name text, vt integer, qty integer, max_poll_seconds integer, poll_interval_ms integer | SETOF pgmq.message_record + pgmq | pgmq | read_grouped_rr | queue_name text, vt integer, qty integer | SETOF pgmq.message_record + pgmq | pgmq | read_grouped_rr_with_poll | queue_name text, vt integer, qty integer, max_poll_seconds integer, poll_interval_ms integer | SETOF pgmq.message_record + pgmq | pgmq | read_grouped_with_poll | queue_name text, vt integer, qty integer, max_poll_seconds integer, poll_interval_ms integer | SETOF pgmq.message_record pgmq | pgmq | read_with_poll | queue_name text, vt integer, qty integer, max_poll_seconds integer, poll_interval_ms integer, conditional jsonb | SETOF pgmq.message_record pgmq | pgmq | send | queue_name text, msg jsonb, headers jsonb | SETOF bigint pgmq | pgmq | send | queue_name text, msg jsonb, delay integer | SETOF bigint @@ -1385,8 +1404,25 @@ order by pgmq | pgmq | send_batch | queue_name text, msgs jsonb[] | SETOF bigint pgmq | pgmq | send_batch | queue_name text, msgs jsonb[], delay timestamp with time zone | SETOF bigint pgmq | pgmq | send_batch | queue_name text, msgs jsonb[], delay integer | SETOF bigint + pgmq | pgmq | send_batch_topic | routing_key text, msgs jsonb[], headers jsonb[], delay integer | TABLE(queue_name text, msg_id bigint) + pgmq | pgmq | send_batch_topic | routing_key text, msgs jsonb[], delay timestamp with time zone | TABLE(queue_name text, msg_id bigint) + pgmq | pgmq | send_batch_topic | routing_key text, msgs jsonb[], headers jsonb[] | TABLE(queue_name text, msg_id bigint) + pgmq | pgmq | send_batch_topic | routing_key text, msgs jsonb[], headers jsonb[], delay timestamp with time zone | TABLE(queue_name text, msg_id bigint) + pgmq | pgmq | send_batch_topic | routing_key text, msgs jsonb[], delay integer | TABLE(queue_name text, msg_id bigint) + pgmq | pgmq | send_batch_topic | routing_key text, msgs jsonb[] | TABLE(queue_name text, msg_id bigint) + pgmq | pgmq | send_topic | routing_key text, msg jsonb, headers jsonb, delay integer | integer + pgmq | pgmq | send_topic | routing_key text, msg jsonb, delay integer | integer + pgmq | pgmq | send_topic | routing_key text, msg jsonb | integer + pgmq | pgmq | set_vt | queue_name text, msg_ids bigint[], vt integer | SETOF pgmq.message_record + pgmq | pgmq | set_vt | queue_name text, msg_ids bigint[], vt timestamp with time zone | SETOF pgmq.message_record pgmq | pgmq | set_vt | queue_name text, msg_id bigint, vt integer | SETOF pgmq.message_record + pgmq | pgmq | set_vt | queue_name text, msg_id bigint, vt timestamp with time zone | SETOF pgmq.message_record + pgmq | pgmq | test_routing | routing_key text | TABLE(pattern text, queue_name text, compiled_regex text) + pgmq | pgmq | unbind_topic | pattern text, queue_name text | boolean + pgmq | pgmq | update_notify_insert | queue_name text, throttle_interval_ms integer | void pgmq | pgmq | validate_queue_name | queue_name text | void + pgmq | pgmq | validate_routing_key | routing_key text | boolean + pgmq | pgmq | validate_topic_pattern | pattern text | boolean pgroonga | pgroonga | command | groongacommand text | text pgroonga | pgroonga | command | groongacommand text, arguments text[] | text pgroonga | pgroonga | command_escape_value | value text | text @@ -4814,7 +4850,7 @@ order by xml2 | public | xpath_table | text, text, text, text, text | SETOF record xml2 | public | xslt_process | text, text | text xml2 | public | xslt_process | text, text, text | text -(4655 rows) +(4691 rows) /* @@ -5109,23 +5145,17 @@ order by pg_tle | pgtle | feature_info | obj_identity pg_tle | pgtle | feature_info | proname pg_tle | pgtle | feature_info | schema_name - pgmq | pgmq | a_foo | archived_at - pgmq | pgmq | a_foo | enqueued_at - pgmq | pgmq | a_foo | headers - pgmq | pgmq | a_foo | message - pgmq | pgmq | a_foo | msg_id - pgmq | pgmq | a_foo | read_ct - pgmq | pgmq | a_foo | vt pgmq | pgmq | meta | created_at pgmq | pgmq | meta | is_partitioned pgmq | pgmq | meta | is_unlogged pgmq | pgmq | meta | queue_name - pgmq | pgmq | q_foo | enqueued_at - pgmq | pgmq | q_foo | headers - pgmq | pgmq | q_foo | message - pgmq | pgmq | q_foo | msg_id - pgmq | pgmq | q_foo | read_ct - pgmq | pgmq | q_foo | vt + pgmq | pgmq | notify_insert_throttle | last_notified_at + pgmq | pgmq | notify_insert_throttle | queue_name + pgmq | pgmq | notify_insert_throttle | throttle_interval_ms + pgmq | pgmq | topic_bindings | bound_at + pgmq | pgmq | topic_bindings | compiled_regex + pgmq | pgmq | topic_bindings | pattern + pgmq | pgmq | topic_bindings | queue_name pgtap | public | pg_all_foreign_keys | fk_columns pgtap | public | pg_all_foreign_keys | fk_constraint_name pgtap | public | pg_all_foreign_keys | fk_schema_name @@ -5239,5 +5269,5 @@ order by wrappers | public | wrappers_fdw_stats | rows_in wrappers | public | wrappers_fdw_stats | rows_out wrappers | public | wrappers_fdw_stats | updated_at -(391 rows) +(385 rows) diff --git a/nix/tests/expected/z_orioledb-17_ext_interface.out b/nix/tests/expected/z_orioledb-17_ext_interface.out index 0482d0b86b..327c87b693 100644 --- a/nix/tests/expected/z_orioledb-17_ext_interface.out +++ b/nix/tests/expected/z_orioledb-17_ext_interface.out @@ -1400,30 +1400,49 @@ order by pgcrypto | extensions | pgp_sym_encrypt_bytea | bytea, text | bytea pgcrypto | extensions | pgp_sym_encrypt_bytea | bytea, text, text | bytea pgmq | pgmq | _belongs_to_pgmq | table_name text | boolean + pgmq | pgmq | _create_fifo_index_if_not_exists | queue_name text | void pgmq | pgmq | _ensure_pg_partman_installed | | void pgmq | pgmq | _extension_exists | extension_name text | boolean pgmq | pgmq | _get_partition_col | partition_interval text | text pgmq | pgmq | _get_pg_partman_major_version | | integer pgmq | pgmq | _get_pg_partman_schema | | text + pgmq | pgmq | _send_batch | queue_name text, msgs jsonb[], headers jsonb[], delay timestamp with time zone | SETOF bigint + pgmq | pgmq | _validate_batch_params | msgs jsonb[], headers jsonb[] | void + pgmq | pgmq | acquire_queue_lock | queue_name text | void pgmq | pgmq | archive | queue_name text, msg_id bigint | boolean pgmq | pgmq | archive | queue_name text, msg_ids bigint[] | SETOF bigint + pgmq | pgmq | bind_topic | pattern text, queue_name text | void pgmq | pgmq | convert_archive_partitioned | table_name text, partition_interval text, retention_interval text, leading_partition integer | void pgmq | pgmq | create | queue_name text | void + pgmq | pgmq | create_fifo_index | queue_name text | void + pgmq | pgmq | create_fifo_indexes_all | | void pgmq | pgmq | create_non_partitioned | queue_name text | void - pgmq | pgmq | create_partitioned | queue_name text, partition_interval text, retention_interval text | void + pgmq | pgmq | create_partitioned | queue_name text, partition_interval text, retention_interval text, premake integer | void pgmq | pgmq | create_unlogged | queue_name text | void pgmq | pgmq | delete | queue_name text, msg_id bigint | boolean pgmq | pgmq | delete | queue_name text, msg_ids bigint[] | SETOF bigint pgmq | pgmq | detach_archive | queue_name text | void + pgmq | pgmq | disable_notify_insert | queue_name text | void pgmq | pgmq | drop_queue | queue_name text, partitioned boolean | boolean pgmq | pgmq | drop_queue | queue_name text | boolean + pgmq | pgmq | enable_notify_insert | queue_name text, throttle_interval_ms integer | void pgmq | pgmq | format_table_name | queue_name text, prefix text | text + pgmq | pgmq | list_notify_insert_throttles | | TABLE(queue_name text, throttle_interval_ms integer, last_notified_at timestamp with time zone) pgmq | pgmq | list_queues | | SETOF pgmq.queue_record + pgmq | pgmq | list_topic_bindings | queue_name text | TABLE(pattern text, queue_name text, bound_at timestamp with time zone, compiled_regex text) + pgmq | pgmq | list_topic_bindings | | TABLE(pattern text, queue_name text, bound_at timestamp with time zone, compiled_regex text) pgmq | pgmq | metrics | queue_name text | pgmq.metrics_result pgmq | pgmq | metrics_all | | SETOF pgmq.metrics_result - pgmq | pgmq | pop | queue_name text | SETOF pgmq.message_record + pgmq | pgmq | notify_queue_listeners | | trigger + pgmq | pgmq | pop | queue_name text, qty integer | SETOF pgmq.message_record pgmq | pgmq | purge_queue | queue_name text | bigint pgmq | pgmq | read | queue_name text, vt integer, qty integer, conditional jsonb | SETOF pgmq.message_record + pgmq | pgmq | read_grouped | queue_name text, vt integer, qty integer | SETOF pgmq.message_record + pgmq | pgmq | read_grouped_head | queue_name text, vt integer, qty integer | SETOF pgmq.message_record + pgmq | pgmq | read_grouped_head_with_poll | queue_name text, vt integer, qty integer, max_poll_seconds integer, poll_interval_ms integer | SETOF pgmq.message_record + pgmq | pgmq | read_grouped_rr | queue_name text, vt integer, qty integer | SETOF pgmq.message_record + pgmq | pgmq | read_grouped_rr_with_poll | queue_name text, vt integer, qty integer, max_poll_seconds integer, poll_interval_ms integer | SETOF pgmq.message_record + pgmq | pgmq | read_grouped_with_poll | queue_name text, vt integer, qty integer, max_poll_seconds integer, poll_interval_ms integer | SETOF pgmq.message_record pgmq | pgmq | read_with_poll | queue_name text, vt integer, qty integer, max_poll_seconds integer, poll_interval_ms integer, conditional jsonb | SETOF pgmq.message_record pgmq | pgmq | send | queue_name text, msg jsonb, headers jsonb | SETOF bigint pgmq | pgmq | send | queue_name text, msg jsonb, delay integer | SETOF bigint @@ -1437,8 +1456,25 @@ order by pgmq | pgmq | send_batch | queue_name text, msgs jsonb[] | SETOF bigint pgmq | pgmq | send_batch | queue_name text, msgs jsonb[], delay timestamp with time zone | SETOF bigint pgmq | pgmq | send_batch | queue_name text, msgs jsonb[], delay integer | SETOF bigint + pgmq | pgmq | send_batch_topic | routing_key text, msgs jsonb[], headers jsonb[], delay integer | TABLE(queue_name text, msg_id bigint) + pgmq | pgmq | send_batch_topic | routing_key text, msgs jsonb[], delay timestamp with time zone | TABLE(queue_name text, msg_id bigint) + pgmq | pgmq | send_batch_topic | routing_key text, msgs jsonb[], headers jsonb[] | TABLE(queue_name text, msg_id bigint) + pgmq | pgmq | send_batch_topic | routing_key text, msgs jsonb[], headers jsonb[], delay timestamp with time zone | TABLE(queue_name text, msg_id bigint) + pgmq | pgmq | send_batch_topic | routing_key text, msgs jsonb[], delay integer | TABLE(queue_name text, msg_id bigint) + pgmq | pgmq | send_batch_topic | routing_key text, msgs jsonb[] | TABLE(queue_name text, msg_id bigint) + pgmq | pgmq | send_topic | routing_key text, msg jsonb, headers jsonb, delay integer | integer + pgmq | pgmq | send_topic | routing_key text, msg jsonb, delay integer | integer + pgmq | pgmq | send_topic | routing_key text, msg jsonb | integer + pgmq | pgmq | set_vt | queue_name text, msg_ids bigint[], vt integer | SETOF pgmq.message_record + pgmq | pgmq | set_vt | queue_name text, msg_ids bigint[], vt timestamp with time zone | SETOF pgmq.message_record pgmq | pgmq | set_vt | queue_name text, msg_id bigint, vt integer | SETOF pgmq.message_record + pgmq | pgmq | set_vt | queue_name text, msg_id bigint, vt timestamp with time zone | SETOF pgmq.message_record + pgmq | pgmq | test_routing | routing_key text | TABLE(pattern text, queue_name text, compiled_regex text) + pgmq | pgmq | unbind_topic | pattern text, queue_name text | boolean + pgmq | pgmq | update_notify_insert | queue_name text, throttle_interval_ms integer | void pgmq | pgmq | validate_queue_name | queue_name text | void + pgmq | pgmq | validate_routing_key | routing_key text | boolean + pgmq | pgmq | validate_topic_pattern | pattern text | boolean pgroonga | pgroonga | command | groongacommand text | text pgroonga | pgroonga | command | groongacommand text, arguments text[] | text pgroonga | pgroonga | command_escape_value | value text | text @@ -5003,7 +5039,7 @@ order by xml2 | public | xpath_table | text, text, text, text, text | SETOF record xml2 | public | xslt_process | text, text | text xml2 | public | xslt_process | text, text, text | text -(4843 rows) +(4879 rows) /* @@ -5318,23 +5354,17 @@ order by pg_tle | pgtle | feature_info | obj_identity pg_tle | pgtle | feature_info | proname pg_tle | pgtle | feature_info | schema_name - pgmq | pgmq | a_foo | archived_at - pgmq | pgmq | a_foo | enqueued_at - pgmq | pgmq | a_foo | headers - pgmq | pgmq | a_foo | message - pgmq | pgmq | a_foo | msg_id - pgmq | pgmq | a_foo | read_ct - pgmq | pgmq | a_foo | vt pgmq | pgmq | meta | created_at pgmq | pgmq | meta | is_partitioned pgmq | pgmq | meta | is_unlogged pgmq | pgmq | meta | queue_name - pgmq | pgmq | q_foo | enqueued_at - pgmq | pgmq | q_foo | headers - pgmq | pgmq | q_foo | message - pgmq | pgmq | q_foo | msg_id - pgmq | pgmq | q_foo | read_ct - pgmq | pgmq | q_foo | vt + pgmq | pgmq | notify_insert_throttle | last_notified_at + pgmq | pgmq | notify_insert_throttle | queue_name + pgmq | pgmq | notify_insert_throttle | throttle_interval_ms + pgmq | pgmq | topic_bindings | bound_at + pgmq | pgmq | topic_bindings | compiled_regex + pgmq | pgmq | topic_bindings | pattern + pgmq | pgmq | topic_bindings | queue_name pgsodium | pgsodium | decrypted_key | associated_data pgsodium | pgsodium | decrypted_key | comment pgsodium | pgsodium | decrypted_key | created @@ -5506,5 +5536,5 @@ order by wrappers | public | wrappers_fdw_stats | rows_in wrappers | public | wrappers_fdw_stats | rows_out wrappers | public | wrappers_fdw_stats | updated_at -(469 rows) +(463 rows) From dc9bd851f2c46412438d9713d6a5c815ef7a159f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rton=20Boros?= Date: Tue, 8 Sep 2026 22:23:36 +0300 Subject: [PATCH 7/7] test(pgmq): account for drop_queue collapse on top of 1.13.0 surface --- nix/tests/expected/pgmq.out | 3 +-- nix/tests/expected/z_15_ext_interface.out | 3 +-- nix/tests/expected/z_17_ext_interface.out | 3 +-- nix/tests/expected/z_multigres-17_ext_interface.out | 3 +-- nix/tests/expected/z_orioledb-17_ext_interface.out | 3 +-- 5 files changed, 5 insertions(+), 10 deletions(-) diff --git a/nix/tests/expected/pgmq.out b/nix/tests/expected/pgmq.out index b8e34cb6c5..0f16bf722b 100644 --- a/nix/tests/expected/pgmq.out +++ b/nix/tests/expected/pgmq.out @@ -183,7 +183,6 @@ order by pgmq | detach_archive | postgres pgmq | disable_notify_insert | postgres pgmq | drop_queue | postgres - pgmq | drop_queue | postgres pgmq | enable_notify_insert | postgres pgmq | format_table_name | postgres pgmq | list_notify_insert_throttles | postgres @@ -234,7 +233,7 @@ order by pgmq | validate_queue_name | postgres pgmq | validate_routing_key | postgres pgmq | validate_topic_pattern | postgres -(76 rows) +(75 rows) -- assert search_path is preserved after after-create script is run show search_path; diff --git a/nix/tests/expected/z_15_ext_interface.out b/nix/tests/expected/z_15_ext_interface.out index 32d3b9364e..ea72557b64 100644 --- a/nix/tests/expected/z_15_ext_interface.out +++ b/nix/tests/expected/z_15_ext_interface.out @@ -1387,7 +1387,6 @@ order by pgmq | pgmq | detach_archive | queue_name text | void pgmq | pgmq | disable_notify_insert | queue_name text | void pgmq | pgmq | drop_queue | queue_name text, partitioned boolean | boolean - pgmq | pgmq | drop_queue | queue_name text | boolean pgmq | pgmq | enable_notify_insert | queue_name text, throttle_interval_ms integer | void pgmq | pgmq | format_table_name | queue_name text, prefix text | text pgmq | pgmq | list_notify_insert_throttles | | TABLE(queue_name text, throttle_interval_ms integer, last_notified_at timestamp with time zone) @@ -5343,7 +5342,7 @@ order by xml2 | public | xpath_table | text, text, text, text, text | SETOF record xml2 | public | xslt_process | text, text | text xml2 | public | xslt_process | text, text, text | text -(5171 rows) +(5170 rows) /* diff --git a/nix/tests/expected/z_17_ext_interface.out b/nix/tests/expected/z_17_ext_interface.out index 6ff1037362..ae40f176e0 100644 --- a/nix/tests/expected/z_17_ext_interface.out +++ b/nix/tests/expected/z_17_ext_interface.out @@ -1372,7 +1372,6 @@ order by pgmq | pgmq | detach_archive | queue_name text | void pgmq | pgmq | disable_notify_insert | queue_name text | void pgmq | pgmq | drop_queue | queue_name text, partitioned boolean | boolean - pgmq | pgmq | drop_queue | queue_name text | boolean pgmq | pgmq | enable_notify_insert | queue_name text, throttle_interval_ms integer | void pgmq | pgmq | format_table_name | queue_name text, prefix text | text pgmq | pgmq | list_notify_insert_throttles | | TABLE(queue_name text, throttle_interval_ms integer, last_notified_at timestamp with time zone) @@ -4987,7 +4986,7 @@ order by xml2 | public | xpath_table | text, text, text, text, text | SETOF record xml2 | public | xslt_process | text, text | text xml2 | public | xslt_process | text, text, text | text -(4828 rows) +(4827 rows) /* diff --git a/nix/tests/expected/z_multigres-17_ext_interface.out b/nix/tests/expected/z_multigres-17_ext_interface.out index 5765b45fdc..8e9ddcfe96 100644 --- a/nix/tests/expected/z_multigres-17_ext_interface.out +++ b/nix/tests/expected/z_multigres-17_ext_interface.out @@ -1372,7 +1372,6 @@ order by pgmq | pgmq | detach_archive | queue_name text | void pgmq | pgmq | disable_notify_insert | queue_name text | void pgmq | pgmq | drop_queue | queue_name text, partitioned boolean | boolean - pgmq | pgmq | drop_queue | queue_name text | boolean pgmq | pgmq | enable_notify_insert | queue_name text, throttle_interval_ms integer | void pgmq | pgmq | format_table_name | queue_name text, prefix text | text pgmq | pgmq | list_notify_insert_throttles | | TABLE(queue_name text, throttle_interval_ms integer, last_notified_at timestamp with time zone) @@ -4850,7 +4849,7 @@ order by xml2 | public | xpath_table | text, text, text, text, text | SETOF record xml2 | public | xslt_process | text, text | text xml2 | public | xslt_process | text, text, text | text -(4691 rows) +(4690 rows) /* diff --git a/nix/tests/expected/z_orioledb-17_ext_interface.out b/nix/tests/expected/z_orioledb-17_ext_interface.out index 327c87b693..b352fd8bf8 100644 --- a/nix/tests/expected/z_orioledb-17_ext_interface.out +++ b/nix/tests/expected/z_orioledb-17_ext_interface.out @@ -1424,7 +1424,6 @@ order by pgmq | pgmq | detach_archive | queue_name text | void pgmq | pgmq | disable_notify_insert | queue_name text | void pgmq | pgmq | drop_queue | queue_name text, partitioned boolean | boolean - pgmq | pgmq | drop_queue | queue_name text | boolean pgmq | pgmq | enable_notify_insert | queue_name text, throttle_interval_ms integer | void pgmq | pgmq | format_table_name | queue_name text, prefix text | text pgmq | pgmq | list_notify_insert_throttles | | TABLE(queue_name text, throttle_interval_ms integer, last_notified_at timestamp with time zone) @@ -5039,7 +5038,7 @@ order by xml2 | public | xpath_table | text, text, text, text, text | SETOF record xml2 | public | xslt_process | text, text | text xml2 | public | xslt_process | text, text, text | text -(4879 rows) +(4878 rows) /*