diff -U3 /tmp/cirrus-ci-build/contrib/test_decoding/expected/ddl.out /tmp/cirrus-ci-build/build/testrun/test_decoding/regress/results/ddl.out --- /tmp/cirrus-ci-build/contrib/test_decoding/expected/ddl.out 2024-03-19 15:41:20.193776000 +0000 +++ /tmp/cirrus-ci-build/build/testrun/test_decoding/regress/results/ddl.out 2024-03-19 15:59:36.923979000 +0000 @@ -1,6 +1,7 @@ -- predictability SET synchronous_commit = on; SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- init @@ -8,19 +9,24 @@ -- fail because of an already existing slot SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ERROR: replication slot "regression_slot" already exists -- fail because of an invalid name SELECT 'init' FROM pg_create_logical_replication_slot('Invalid Name', 'test_decoding'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ERROR: replication slot name "Invalid Name" contains invalid character HINT: Replication slot names may only contain lower case letters, numbers, and the underscore character. -- fail twice because of an invalid parameter values SELECT 'init' FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', 'frakbar'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ERROR: could not parse value "frakbar" for parameter "include-xids" CONTEXT: slot "regression_slot", output plugin "test_decoding", in the startup callback SELECT 'init' FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'nonexistent-option', 'frakbar'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ERROR: option "nonexistent-option" = "frakbar" is unknown CONTEXT: slot "regression_slot", output plugin "test_decoding", in the startup callback SELECT 'init' FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', 'frakbar'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ERROR: could not parse value "frakbar" for parameter "include-xids" CONTEXT: slot "regression_slot", output plugin "test_decoding", in the startup callback -- succeed once @@ -35,12 +41,14 @@ ERROR: replication slot "regression_slot" does not exist -- check that we're detecting a streaming rep slot used for logical decoding SELECT 'init' FROM pg_create_physical_replication_slot('repl'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- init (1 row) SELECT data FROM pg_logical_slot_get_changes('repl', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ERROR: cannot use physical replication slot for logical decoding SELECT pg_drop_replication_slot('repl'); pg_drop_replication_slot @@ -49,6 +57,7 @@ (1 row) SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- init @@ -60,6 +69,7 @@ xmin IS NULl AS data_xmin_not_set, pg_wal_lsn_diff(restart_lsn, '0/01000000') > 0 AS some_wal FROM pg_replication_slots; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree slot_name | plugin | slot_type | active | catalog_xmin_set | data_xmin_not_set | some_wal -----------------+---------------+-----------+--------+------------------+-------------------+---------- regression_slot | test_decoding | logical | f | t | t | t @@ -90,6 +100,7 @@ INSERT INTO replication_example(somedata, somenum) VALUES (4, 1); -- collect all changes SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data --------------------------------------------------------------------------------------------------------------------------- BEGIN @@ -119,6 +130,7 @@ ALTER TABLE replication_example ALTER COLUMN somenum TYPE int4 USING (somenum::int4); -- check that this doesn't produce any changes from the heap rewrite SELECT count(data) FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree count ------- 0 @@ -135,6 +147,7 @@ COMMIT; -- show changes SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ------------------------------------------------------------------------------------------------------------------------------------------ BEGIN @@ -152,9 +165,11 @@ BEGIN; INSERT INTO replication_example(id, somedata, somenum) SELECT i, i, i FROM generate_series(-15, 15) i ON CONFLICT (id) DO UPDATE SET somenum = excluded.somenum + 1; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree COMMIT; /* display results */ SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data -------------------------------------------------------------------------------------------------------------------------------------------------- BEGIN @@ -203,9 +218,11 @@ DELETE WHEN NOT MATCHED THEN INSERT VALUES (s.*); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree COMMIT; /* display results */ SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data -------------------------------------------------------------------------------------------------------------------------------------------------- BEGIN @@ -243,6 +260,7 @@ ALTER TABLE tr_unique RENAME TO tr_pkey; ALTER TABLE tr_pkey ADD COLUMN id serial primary key; SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1', 'include-rewrites', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ----------------------------------------------------------------------------- BEGIN @@ -258,6 +276,7 @@ DELETE FROM tr_pkey; /* display results */ SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ---------------------------------------------------------------------------- BEGIN @@ -275,7 +294,9 @@ BEGIN; CREATE TABLE tr_etoomuch (id serial primary key, data int); INSERT INTO tr_etoomuch(data) SELECT g.i FROM generate_series(1, 10234) g(i); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree SELECT 'tx logical msg' FROM pg_logical_emit_message(true, 'test', 'tx logical msg'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------------- tx logical msg @@ -291,6 +312,7 @@ FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1') GROUP BY substring(data, 1, 24) ORDER BY 1,2; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree count | min | max -------+-----------------------------------------------------------------------+------------------------------------------------------------------------ 1 | BEGIN | BEGIN @@ -303,6 +325,7 @@ -- check updates of primary keys work correctly BEGIN; CREATE TABLE spoolme AS SELECT g.i FROM generate_series(1, 5000) g(i); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree UPDATE tr_etoomuch SET id = -id WHERE id = 5000; UPDATE tr_oddlength SET id = 'x', data = 'quux'; UPDATE tr_oddlength SET id = 'yy', data = 'a'; @@ -312,6 +335,7 @@ SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1') WHERE data ~ 'UPDATE'; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ------------------------------------------------------------------------------------------------------------- table public.tr_etoomuch: UPDATE: old-key: id[integer]:5000 new-tuple: id[integer]:-5000 data[integer]:5000 @@ -323,10 +347,12 @@ INSERT INTO tr_etoomuch (id, data) SELECT g.i, -g.i FROM generate_series(8000, 12000) g(i) ON CONFLICT(id) DO UPDATE SET data = EXCLUDED.data; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree SELECT substring(data, 1, 29), count(*) FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1') WITH ORDINALITY GROUP BY 1 ORDER BY min(ordinality); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree substring | count -------------------------------+------- BEGIN | 1 @@ -356,6 +382,7 @@ RELEASE SAVEPOINT b; COMMIT; SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ---------------------------------------------------------------------- BEGIN @@ -395,6 +422,7 @@ INSERT INTO tr_sub(path) VALUES ('2-top-#1'); COMMIT; SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ------------------------------------------------------------------------ BEGIN @@ -416,6 +444,7 @@ INSERT INTO tr_sub(path) VALUES ('3-top-2-#2'); COMMIT; SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ----------------------------------------------------------------------- BEGIN @@ -445,6 +474,7 @@ INSERT INTO tr_sub(path) VALUES ('5-top-1-#1'); COMMIT; SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data --------------------------------------------------------------------- BEGIN @@ -466,6 +496,7 @@ INSERT INTO tr_sub_ddl VALUES(43); COMMIT; SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data -------------------------------------------------- BEGIN @@ -484,6 +515,12 @@ WITH (user_catalog_table = true) ; \d+ replication_metadata +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree Table "public.replication_metadata" Column | Type | Collation | Nullable | Default | Storage | Stats target | Description ----------+---------+-----------+----------+--------------------------------------------------+----------+--------------+------------- @@ -501,6 +538,12 @@ VALUES ('foo', ARRAY['a', 'b']); ALTER TABLE replication_metadata RESET (user_catalog_table); \d+ replication_metadata +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree Table "public.replication_metadata" Column | Type | Collation | Nullable | Default | Storage | Stats target | Description ----------+---------+-----------+----------+--------------------------------------------------+----------+--------------+------------- @@ -517,6 +560,12 @@ VALUES ('bar', ARRAY['a', 'b']); ALTER TABLE replication_metadata SET (user_catalog_table = true); \d+ replication_metadata +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree Table "public.replication_metadata" Column | Type | Collation | Nullable | Default | Storage | Stats target | Description ----------+---------+-----------+----------+--------------------------------------------------+----------+--------------+------------- @@ -538,6 +587,12 @@ ERROR: cannot rewrite table "replication_metadata" used as a catalog table ALTER TABLE replication_metadata SET (user_catalog_table = false); \d+ replication_metadata +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree Table "public.replication_metadata" Column | Type | Collation | Nullable | Default | Storage | Stats target | Description ----------------+---------+-----------+----------+--------------------------------------------------+----------+--------------+------------- @@ -555,6 +610,7 @@ INSERT INTO replication_metadata(relation, options) VALUES ('zaphod', NULL); SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ------------------------------------------------------------------------------------------------------------------------------------ BEGIN @@ -577,6 +633,7 @@ /* we should handle the case without a key at all more gracefully */ CREATE TABLE table_without_key(id serial, data int); INSERT INTO table_without_key(data) VALUES(1),(2); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree DELETE FROM table_without_key WHERE data = 1; -- won't log old keys UPDATE table_without_key SET data = 3 WHERE data = 2; @@ -594,6 +651,7 @@ DELETE FROM table_without_key WHERE data = 3; CREATE TABLE table_with_pkey(id serial primary key, data int); INSERT INTO table_with_pkey(data) VALUES(1), (2); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree DELETE FROM table_with_pkey WHERE data = 1; -- should log the old pkey UPDATE table_with_pkey SET data = 3 WHERE data = 2; @@ -610,6 +668,7 @@ ALTER TABLE table_with_unique_not_null ALTER COLUMN id SET NOT NULL; --already set -- won't log anything, replica identity not setup INSERT INTO table_with_unique_not_null(data) VALUES(1), (2); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree DELETE FROM table_with_unique_not_null WHERE data = 1; UPDATE table_with_unique_not_null SET data = 3 WHERE data = 2; UPDATE table_with_unique_not_null SET id = -id; @@ -618,6 +677,7 @@ -- should log old key ALTER TABLE table_with_unique_not_null REPLICA IDENTITY USING INDEX table_with_unique_not_null_id_key; INSERT INTO table_with_unique_not_null(data) VALUES(1), (2); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree DELETE FROM table_with_unique_not_null WHERE data = 1; UPDATE table_with_unique_not_null SET data = 3 WHERE data = 2; UPDATE table_with_unique_not_null SET id = -id; @@ -632,6 +692,7 @@ USING INDEX table_dropped_index_with_pk_idx; DROP INDEX table_dropped_index_with_pk_idx; INSERT INTO table_dropped_index_with_pk VALUES (1,1,1), (2,2,2), (3,3,3); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree UPDATE table_dropped_index_with_pk SET a = 4 WHERE a = 1; UPDATE table_dropped_index_with_pk SET b = 5 WHERE a = 2; UPDATE table_dropped_index_with_pk SET b = 6, c = 7 WHERE a = 3; @@ -646,6 +707,7 @@ USING INDEX table_dropped_index_no_pk_idx; DROP INDEX table_dropped_index_no_pk_idx; INSERT INTO table_dropped_index_no_pk VALUES (1,1,1), (2,2,2), (3,3,3); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree UPDATE table_dropped_index_no_pk SET a = 4 WHERE a = 1; UPDATE table_dropped_index_no_pk SET b = 5 WHERE a = 2; UPDATE table_dropped_index_no_pk SET b = 6, c = 7 WHERE a = 3; @@ -665,16 +727,20 @@ COMMIT; -- uncompressed external toast data INSERT INTO toasttable(toasted_col1) SELECT string_agg(g.i::text, '') FROM generate_series(1, 2000) g(i); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree -- compressed external toast data INSERT INTO toasttable(toasted_col2) SELECT repeat(string_agg(to_char(g.i, 'FM0000'), ''), 50) FROM generate_series(1, 500) g(i); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree -- update of existing column UPDATE toasttable SET toasted_col1 = (SELECT string_agg(g.i::text, '') FROM generate_series(1, 2000) g(i)) WHERE id = 1; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree -- This output is extremely wide, and using aligned mode causes psql to -- produce 200kB of useless dashes. Turn that off temporarily to avoid it. \pset format unaligned SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data BEGIN table public.table_without_key: INSERT: id[integer]:1 data[integer]:1 @@ -822,14 +888,17 @@ (143 rows) \pset format aligned INSERT INTO toasttable(toasted_col1) SELECT string_agg(g.i::text, '') FROM generate_series(1, 2000) g(i); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree -- update of second column, first column unchanged UPDATE toasttable SET toasted_col2 = (SELECT string_agg(g.i::text, '') FROM generate_series(1, 2000) g(i)) WHERE id = 1; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree -- make sure we decode correctly even if the toast table is gone DROP TABLE toasttable; \pset format unaligned SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data BEGIN table public.toasttable: INSERT: id[integer]:3 toasted_col1[text]:'12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000' rand1[double precision]:6075 toasted_col2[text]:null rand2[double precision]:7574 @@ -840,6 +909,7 @@ (6 rows) -- done, free logical replication slot SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data (0 rows) \pset format aligned @@ -852,6 +922,7 @@ /* check that the slot is gone */ \x SELECT * FROM pg_replication_slots; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree (0 rows) \x diff -U3 /tmp/cirrus-ci-build/contrib/test_decoding/expected/xact.out /tmp/cirrus-ci-build/build/testrun/test_decoding/regress/results/xact.out --- /tmp/cirrus-ci-build/contrib/test_decoding/expected/xact.out 2024-03-19 15:41:20.194063000 +0000 +++ /tmp/cirrus-ci-build/build/testrun/test_decoding/regress/results/xact.out 2024-03-19 15:59:36.949861000 +0000 @@ -1,6 +1,7 @@ -- predictability SET synchronous_commit = on; SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- init @@ -23,6 +24,7 @@ COMMIT; -- and now show those changes SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data --------------------------------------------------------------- BEGIN @@ -48,6 +50,7 @@ COMMIT; -- and now show those changes SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ------------------------------------------------------- BEGIN diff -U3 /tmp/cirrus-ci-build/contrib/test_decoding/expected/rewrite.out /tmp/cirrus-ci-build/build/testrun/test_decoding/regress/results/rewrite.out --- /tmp/cirrus-ci-build/contrib/test_decoding/expected/rewrite.out 2024-03-19 15:41:20.193888000 +0000 +++ /tmp/cirrus-ci-build/build/testrun/test_decoding/regress/results/rewrite.out 2024-03-19 15:59:37.198725000 +0000 @@ -15,6 +15,7 @@ SELECT exec( format($outer$CREATE FUNCTION iamalongfunction() RETURNS TEXT IMMUTABLE LANGUAGE SQL AS $f$SELECT text %L$f$$outer$, (SELECT repeat(string_agg(to_char(g.i, 'FM0000'), ''), 50) FROM generate_series(1, 500) g(i)))); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree exec ------ @@ -57,6 +58,7 @@ (1 row) SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- init @@ -65,6 +67,7 @@ CREATE TABLE replication_example(id SERIAL PRIMARY KEY, somedata int, text varchar(120)); INSERT INTO replication_example(somedata) VALUES (1); SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ---------------------------------------------------------------------------------------------------------- BEGIN @@ -116,6 +119,7 @@ -- make old files go away CHECKPOINT; SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- BEGIN @@ -142,6 +146,7 @@ VACUUM FULL pg_proc; VACUUM FULL pg_description; VACUUM FULL pg_shdescription; VACUUM FULL iamalargetable; INSERT INTO replication_example(somedata, testcolumn1, testcolumn3) VALUES (9, 7, 1); SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- BEGIN diff -U3 /tmp/cirrus-ci-build/contrib/test_decoding/expected/toast.out /tmp/cirrus-ci-build/build/testrun/test_decoding/regress/results/toast.out --- /tmp/cirrus-ci-build/contrib/test_decoding/expected/toast.out 2024-03-19 15:41:20.194008000 +0000 +++ /tmp/cirrus-ci-build/build/testrun/test_decoding/regress/results/toast.out 2024-03-19 15:59:37.823702000 +0000 @@ -3,6 +3,7 @@ DROP TABLE IF EXISTS xpto; NOTICE: table "xpto" does not exist, skipping SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- init @@ -18,10 +19,13 @@ ); -- uncompressed external toast data INSERT INTO xpto (toasted_col1, toasted_col2) SELECT string_agg(g.i::text, ''), string_agg((g.i*2)::text, '') FROM generate_series(1, 2000) g(i); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree -- compressed external toast data INSERT INTO xpto (toasted_col2) SELECT repeat(string_agg(to_char(g.i, 'FM0000'), ''), 50) FROM generate_series(1, 500) g(i); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree -- update of existing column UPDATE xpto SET toasted_col1 = (SELECT string_agg(g.i::text, '') FROM generate_series(1, 2000) g(i)) WHERE id = 1; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree UPDATE xpto SET rand1 = 123.456 WHERE id = 1; -- updating external via INSERT ... ON CONFLICT DO UPDATE INSERT INTO xpto(id, toasted_col2) VALUES (2, 'toasted2-upsert') @@ -53,6 +57,7 @@ ALTER TABLE toasted_copy ALTER COLUMN data SET STORAGE EXTERNAL; \copy toasted_copy FROM STDIN SELECT substr(data, 1, 200) FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree substr ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- BEGIN @@ -317,6 +322,7 @@ (1 row) SELECT regexp_replace(data, '^(.{100}).*(.{100})$', '\1..\2') FROM pg_logical_slot_peek_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree regexp_replace ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ BEGIN @@ -328,6 +334,7 @@ UPDATE toasted_several SET toasted_col1 = toasted_key; UPDATE toasted_several SET toasted_col2 = toasted_col1; SELECT regexp_replace(data, '^(.{100}).*(.{100})$', '\1..\2') FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree regexp_replace ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ BEGIN @@ -346,12 +353,14 @@ */ BEGIN; INSERT INTO toasted_several(toasted_key) SELECT * FROM generate_series(1, 10234); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree UPDATE toasted_several SET toasted_col1 = toasted_col2 WHERE id = 1; DELETE FROM toasted_several WHERE id = 1; COMMIT; DROP TABLE toasted_several; SELECT regexp_replace(data, '^(.{100}).*(.{100})$', '\1..\2') FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1') WHERE data NOT LIKE '%INSERT: %'; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree regexp_replace ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ BEGIN @@ -374,6 +383,7 @@ INSERT INTO tbl2 VALUES(1); commit; SELECT substr(data, 1, 200) FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree substr ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- BEGIN diff -U3 /tmp/cirrus-ci-build/contrib/test_decoding/expected/permissions.out /tmp/cirrus-ci-build/build/testrun/test_decoding/regress/results/permissions.out --- /tmp/cirrus-ci-build/contrib/test_decoding/expected/permissions.out 2024-03-19 15:41:20.193855000 +0000 +++ /tmp/cirrus-ci-build/build/testrun/test_decoding/regress/results/permissions.out 2024-03-19 15:59:37.850646000 +0000 @@ -8,6 +8,7 @@ -- superuser can control replication SET ROLE regress_lr_superuser; SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- init @@ -15,6 +16,7 @@ INSERT INTO lr_test VALUES('lr_superuser_init'); SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data -------------------------------------------------------------- BEGIN @@ -32,6 +34,7 @@ -- replication user can control replication SET ROLE regress_lr_replication; SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- init @@ -40,6 +43,7 @@ INSERT INTO lr_test VALUES('lr_superuser_init'); ERROR: permission denied for table lr_test SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ------ (0 rows) @@ -54,11 +58,13 @@ -- plain user *can't* can control replication SET ROLE regress_lr_normal; SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ERROR: permission denied to use replication slots DETAIL: Only roles with the REPLICATION attribute may use replication slots. INSERT INTO lr_test VALUES('lr_superuser_init'); ERROR: permission denied for table lr_test SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ERROR: permission denied to use replication slots DETAIL: Only roles with the REPLICATION attribute may use replication slots. SELECT pg_drop_replication_slot('regression_slot'); @@ -71,6 +77,7 @@ -- replication users can drop superuser created slots SET ROLE regress_lr_superuser; SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- init @@ -88,6 +95,7 @@ -- normal users can't drop existing slots SET ROLE regress_lr_superuser; SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- init @@ -102,6 +110,7 @@ -- all users can see existing slots SET ROLE regress_lr_superuser; SELECT slot_name, plugin FROM pg_replication_slots; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree slot_name | plugin -----------------+--------------- regression_slot | test_decoding @@ -110,6 +119,7 @@ RESET ROLE; SET ROLE regress_lr_replication; SELECT slot_name, plugin FROM pg_replication_slots; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree slot_name | plugin -----------------+--------------- regression_slot | test_decoding @@ -118,6 +128,7 @@ RESET ROLE; SET ROLE regress_lr_normal; SELECT slot_name, plugin FROM pg_replication_slots; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree slot_name | plugin -----------------+--------------- regression_slot | test_decoding diff -U3 /tmp/cirrus-ci-build/contrib/test_decoding/expected/decoding_in_xact.out /tmp/cirrus-ci-build/build/testrun/test_decoding/regress/results/decoding_in_xact.out --- /tmp/cirrus-ci-build/contrib/test_decoding/expected/decoding_in_xact.out 2024-03-19 15:41:20.193789000 +0000 +++ /tmp/cirrus-ci-build/build/testrun/test_decoding/regress/results/decoding_in_xact.out 2024-03-19 15:59:37.874488000 +0000 @@ -9,6 +9,7 @@ (1 row) SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ERROR: cannot create logical replication slot in transaction that has performed writes ROLLBACK; -- fail because we're creating a slot while in a subxact whose topxact has an xid @@ -21,17 +22,20 @@ SAVEPOINT barf; SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ERROR: cannot create logical replication slot in transaction that has performed writes ROLLBACK TO SAVEPOINT barf; ROLLBACK; -- succeed, outside tx. SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- init (1 row) SELECT 'stop' FROM pg_drop_replication_slot('regression_slot'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- stop @@ -40,6 +44,7 @@ -- succeed, in tx without xid. BEGIN; SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- init @@ -59,6 +64,7 @@ -- don't show yet, haven't committed INSERT INTO nobarf(data) VALUES('2'); SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ----------------------------------------------------------- BEGIN @@ -69,6 +75,7 @@ COMMIT; INSERT INTO nobarf(data) VALUES('3'); SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ----------------------------------------------------------- BEGIN @@ -80,6 +87,7 @@ (6 rows) SELECT 'stop' FROM pg_drop_replication_slot('regression_slot'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- stop diff -U3 /tmp/cirrus-ci-build/contrib/test_decoding/expected/decoding_into_rel.out /tmp/cirrus-ci-build/build/testrun/test_decoding/regress/results/decoding_into_rel.out --- /tmp/cirrus-ci-build/contrib/test_decoding/expected/decoding_into_rel.out 2024-03-19 15:41:20.193799000 +0000 +++ /tmp/cirrus-ci-build/build/testrun/test_decoding/regress/results/decoding_into_rel.out 2024-03-19 15:59:37.905969000 +0000 @@ -4,6 +4,7 @@ -- predictability SET synchronous_commit = on; SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- init @@ -11,6 +12,7 @@ -- slot works SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ------ (0 rows) @@ -20,6 +22,7 @@ INSERT INTO somechange DEFAULT VALUES; CREATE TABLE changeresult AS SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree SELECT * FROM changeresult; data ------------------------------------------------ @@ -30,8 +33,10 @@ INSERT INTO changeresult SELECT data FROM pg_logical_slot_peek_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree INSERT INTO changeresult SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree SELECT * FROM changeresult; data -------------------------------------------------------------------------------------------------------------------------------------------------- @@ -66,6 +71,8 @@ SELECT data FROM pg_logical_slot_peek_changes(slot_name, NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); END$$ LANGUAGE plpgsql; SELECT * FROM slot_changes_wrapper('regression_slot'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree slot_changes_wrapper -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- BEGIN @@ -85,6 +92,7 @@ (14 rows) SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- BEGIN @@ -104,6 +112,7 @@ (14 rows) SELECT 'stop' FROM pg_drop_replication_slot('regression_slot'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- stop diff -U3 /tmp/cirrus-ci-build/contrib/test_decoding/expected/binary.out /tmp/cirrus-ci-build/build/testrun/test_decoding/regress/results/binary.out --- /tmp/cirrus-ci-build/contrib/test_decoding/expected/binary.out 2024-03-19 15:41:20.193671000 +0000 +++ /tmp/cirrus-ci-build/build/testrun/test_decoding/regress/results/binary.out 2024-03-19 15:59:37.922044000 +0000 @@ -1,6 +1,7 @@ -- predictability SET synchronous_commit = on; SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- init @@ -8,26 +9,31 @@ -- succeeds, textual plugin, textual consumer SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'force-binary', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ------ (0 rows) -- fails, binary plugin, textual consumer SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'force-binary', '1', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ERROR: logical decoding output plugin "test_decoding" produces binary output, but function "pg_logical_slot_get_changes(name,pg_lsn,integer,text[])" expects textual data -- succeeds, textual plugin, binary consumer SELECT data FROM pg_logical_slot_get_binary_changes('regression_slot', NULL, NULL, 'force-binary', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ------ (0 rows) -- succeeds, binary plugin, binary consumer SELECT data FROM pg_logical_slot_get_binary_changes('regression_slot', NULL, NULL, 'force-binary', '1', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ------ (0 rows) SELECT 'init' FROM pg_drop_replication_slot('regression_slot'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- init diff -U3 /tmp/cirrus-ci-build/contrib/test_decoding/expected/prepared.out /tmp/cirrus-ci-build/build/testrun/test_decoding/regress/results/prepared.out --- /tmp/cirrus-ci-build/contrib/test_decoding/expected/prepared.out 2024-03-19 15:41:20.193865000 +0000 +++ /tmp/cirrus-ci-build/build/testrun/test_decoding/regress/results/prepared.out 2024-03-19 15:59:37.943636000 +0000 @@ -1,6 +1,7 @@ -- predictability SET synchronous_commit = on; SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- init @@ -40,6 +41,7 @@ DROP TABLE test_prepared2; -- show results SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ------------------------------------------------------------------------- BEGIN diff -U3 /tmp/cirrus-ci-build/contrib/test_decoding/expected/replorigin.out /tmp/cirrus-ci-build/build/testrun/test_decoding/regress/results/replorigin.out --- /tmp/cirrus-ci-build/contrib/test_decoding/expected/replorigin.out 2024-03-19 15:41:20.193878000 +0000 +++ /tmp/cirrus-ci-build/build/testrun/test_decoding/regress/results/replorigin.out 2024-03-19 15:59:37.992183000 +0000 @@ -74,6 +74,7 @@ select pg_replication_origin_progress('regress_test_decoding: temp', true); ERROR: replication origin "regress_test_decoding: temp" does not exist SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- init @@ -83,8 +84,10 @@ INSERT INTO origin_tbl(data) VALUES ('will be replicated and decoded and decoded again'); INSERT INTO target_tbl(data) SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree -- as is normal, the insert into target_tbl shows up SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- BEGIN @@ -106,6 +109,7 @@ SELECT pg_replication_origin_session_setup('regress_test_decoding: regression_slot'); ERROR: cannot setup replication origin when one is already setup SELECT '' FROM pg_logical_emit_message(false, 'test', 'this message will not be decoded'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- @@ -121,6 +125,7 @@ INSERT INTO target_tbl(data) SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1', 'only-local', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree COMMIT; -- check replication progress for the session is correct SELECT pg_replication_origin_session_progress(false); @@ -142,6 +147,7 @@ (1 row) SELECT local_id, external_id, remote_lsn, local_lsn <> '0/0' FROM pg_replication_origin_status; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree local_id | external_id | remote_lsn | ?column? ----------+----------------------------------------+------------+---------- 1 | regress_test_decoding: regression_slot | 0/AABBCCDD | t @@ -165,6 +171,7 @@ ERROR: no replication origin is configured -- and magically the replayed xact will be filtered! SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1', 'only-local', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ------ (0 rows) @@ -172,6 +179,7 @@ --but new original changes still show up INSERT INTO origin_tbl(data) VALUES ('will be replicated'); SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1', 'only-local', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data -------------------------------------------------------------------------------- BEGIN @@ -194,6 +202,7 @@ -- Set of transactions with no origin LSNs and commit timestamps set for -- this session. SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot_no_lsn', 'test_decoding'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- init @@ -232,12 +241,14 @@ remote_lsn <> '0/0' AS valid_remote_lsn, local_lsn <> '0/0' AS valid_local_lsn FROM pg_replication_origin_status; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree local_id | external_id | valid_remote_lsn | valid_local_lsn ----------+-----------------------------------------------+------------------+----------------- 1 | regress_test_decoding: regression_slot_no_lsn | f | t (1 row) SELECT data FROM pg_logical_slot_get_changes('regression_slot_no_lsn', NULL, NULL, 'skip-empty-xacts', '1', 'include-xids', '0'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ------------------------------------------------------------------------------------- BEGIN @@ -269,6 +280,7 @@ -- Test that the pgoutput correctly filters changes corresponding to the provided origin value. SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'pgoutput'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- init @@ -291,6 +303,7 @@ INSERT INTO target_tbl(data) VALUES ('test data'); -- The replayed change will be filtered. SELECT count(*) = 0 FROM pg_logical_slot_peek_binary_changes('regression_slot', NULL, NULL, 'proto_version', '4', 'publication_names', 'pub', 'origin', 'none'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- t @@ -298,6 +311,7 @@ -- The replayed change will be output if the origin value is not specified. SELECT count(*) != 0 FROM pg_logical_slot_peek_binary_changes('regression_slot', NULL, NULL, 'proto_version', '4', 'publication_names', 'pub'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- t diff -U3 /tmp/cirrus-ci-build/contrib/test_decoding/expected/time.out /tmp/cirrus-ci-build/build/testrun/test_decoding/regress/results/time.out --- /tmp/cirrus-ci-build/contrib/test_decoding/expected/time.out 2024-03-19 15:41:20.193992000 +0000 +++ /tmp/cirrus-ci-build/build/testrun/test_decoding/regress/results/time.out 2024-03-19 15:59:38.011494000 +0000 @@ -8,6 +8,7 @@ (1 row) SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- init @@ -19,6 +20,7 @@ SELECT set_config('test.time_after', regexp_replace(data, '^COMMIT \(at (.*)\)$', '\1'), false) IS NOT NULL FROM pg_logical_slot_peek_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1', 'include-timestamp', '1') WHERE data ~ 'COMMIT' LIMIT 1; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- t @@ -27,6 +29,7 @@ -- ensure commit time is sane in relation to the previous time SELECT (time_after - time_before) <= '10 minutes'::interval, time_after >= time_before FROM (SELECT current_setting('test.time_after')::timestamptz AS time_after, (SELECT current_setting('test.time_before')::timestamptz) AS time_before) AS d; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? | ?column? ----------+---------- t | t diff -U3 /tmp/cirrus-ci-build/contrib/test_decoding/expected/messages.out /tmp/cirrus-ci-build/build/testrun/test_decoding/regress/results/messages.out --- /tmp/cirrus-ci-build/contrib/test_decoding/expected/messages.out 2024-03-19 15:41:20.193818000 +0000 +++ /tmp/cirrus-ci-build/build/testrun/test_decoding/regress/results/messages.out 2024-03-19 15:59:38.040084000 +0000 @@ -1,6 +1,7 @@ -- predictability SET synchronous_commit = on; SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- init @@ -8,12 +9,14 @@ -- These two cover the path for the flush variant. SELECT 'msg1' FROM pg_logical_emit_message(true, 'test', 'msg1', true); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- msg1 (1 row) SELECT 'msg2' FROM pg_logical_emit_message(false, 'test', 'msg2', true); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- msg2 @@ -21,12 +24,14 @@ BEGIN; SELECT 'msg3' FROM pg_logical_emit_message(true, 'test', 'msg3'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- msg3 (1 row) SELECT 'msg4' FROM pg_logical_emit_message(false, 'test', 'msg4'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- msg4 @@ -35,18 +40,21 @@ ROLLBACK; BEGIN; SELECT 'msg5' FROM pg_logical_emit_message(true, 'test', 'msg5'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- msg5 (1 row) SELECT 'msg6' FROM pg_logical_emit_message(false, 'test', 'msg6'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- msg6 (1 row) SELECT 'msg7' FROM pg_logical_emit_message(true, 'test', 'msg7'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- msg7 @@ -54,12 +62,14 @@ COMMIT; SELECT 'ignorethis' FROM pg_logical_emit_message(true, 'test', 'czechtastic'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ------------ ignorethis (1 row) SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'force-binary', '0', 'skip-empty-xacts', '1', 'include-xids', '0'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data -------------------------------------------------------------------- BEGIN @@ -81,12 +91,14 @@ \set prevdb :DBNAME \c template1 SELECT 'otherdb1' FROM pg_logical_emit_message(false, 'test', 'otherdb1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- otherdb1 (1 row) SELECT 'otherdb2' FROM pg_logical_emit_message(true, 'test', 'otherdb2'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- otherdb2 @@ -94,11 +106,13 @@ \c :prevdb SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'force-binary', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ------ (0 rows) SELECT 'cleanup' FROM pg_drop_replication_slot('regression_slot'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- cleanup diff -U3 /tmp/cirrus-ci-build/contrib/test_decoding/expected/spill.out /tmp/cirrus-ci-build/build/testrun/test_decoding/regress/results/spill.out --- /tmp/cirrus-ci-build/contrib/test_decoding/expected/spill.out 2024-03-19 15:41:20.193943000 +0000 +++ /tmp/cirrus-ci-build/build/testrun/test_decoding/regress/results/spill.out 2024-03-19 15:59:39.961753000 +0000 @@ -1,6 +1,7 @@ -- predictability SET synchronous_commit = on; SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- init @@ -9,6 +10,7 @@ CREATE TABLE spill_test(data text); -- consume DDL SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ------ (0 rows) @@ -16,10 +18,12 @@ -- spilling main xact BEGIN; INSERT INTO spill_test SELECT 'serialize-topbig--1:'||g.i FROM generate_series(1, 5000) g(i); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree COMMIT; SELECT (regexp_split_to_array(data, ':'))[4], COUNT(*), (array_agg(data))[1], (array_agg(data))[count(*)] FROM pg_logical_slot_get_changes('regression_slot', NULL,NULL) WHERE data ~ 'INSERT' GROUP BY 1 ORDER BY 1; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree regexp_split_to_array | count | array_agg | array_agg -----------------------+-------+---------------------------------------------------------------------+------------------------------------------------------------------------ 'serialize-topbig--1 | 5000 | table public.spill_test: INSERT: data[text]:'serialize-topbig--1:1' | table public.spill_test: INSERT: data[text]:'serialize-topbig--1:5000' @@ -29,11 +33,13 @@ BEGIN; SAVEPOINT s; INSERT INTO spill_test SELECT 'serialize-subbig--1:'||g.i FROM generate_series(1, 5000) g(i); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree RELEASE SAVEPOINT s; COMMIT; SELECT (regexp_split_to_array(data, ':'))[4], COUNT(*), (array_agg(data))[1], (array_agg(data))[count(*)] FROM pg_logical_slot_get_changes('regression_slot', NULL,NULL) WHERE data ~ 'INSERT' GROUP BY 1 ORDER BY 1; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree regexp_split_to_array | count | array_agg | array_agg -----------------------+-------+---------------------------------------------------------------------+------------------------------------------------------------------------ 'serialize-subbig--1 | 5000 | table public.spill_test: INSERT: data[text]:'serialize-subbig--1:1' | table public.spill_test: INSERT: data[text]:'serialize-subbig--1:5000' @@ -43,12 +49,15 @@ BEGIN; SAVEPOINT s; INSERT INTO spill_test SELECT 'serialize-subbig-topbig--1:'||g.i FROM generate_series(1, 5000) g(i); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree RELEASE SAVEPOINT s; INSERT INTO spill_test SELECT 'serialize-subbig-topbig--2:'||g.i FROM generate_series(5001, 10000) g(i); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree COMMIT; SELECT (regexp_split_to_array(data, ':'))[4], COUNT(*), (array_agg(data))[1], (array_agg(data))[count(*)] FROM pg_logical_slot_get_changes('regression_slot', NULL,NULL) WHERE data ~ 'INSERT' GROUP BY 1 ORDER BY 1; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree regexp_split_to_array | count | array_agg | array_agg -----------------------------+-------+-------------------------------------------------------------------------------+-------------------------------------------------------------------------------- 'serialize-subbig-topbig--1 | 5000 | table public.spill_test: INSERT: data[text]:'serialize-subbig-topbig--1:1' | table public.spill_test: INSERT: data[text]:'serialize-subbig-topbig--1:5000' @@ -59,12 +68,15 @@ BEGIN; SAVEPOINT s; INSERT INTO spill_test SELECT 'serialize-subbig-topsmall--1:'||g.i FROM generate_series(1, 5000) g(i); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree RELEASE SAVEPOINT s; INSERT INTO spill_test SELECT 'serialize-subbig-topsmall--2:'||g.i FROM generate_series(5001, 5001) g(i); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree COMMIT; SELECT (regexp_split_to_array(data, ':'))[4], COUNT(*), (array_agg(data))[1], (array_agg(data))[count(*)] FROM pg_logical_slot_get_changes('regression_slot', NULL,NULL) WHERE data ~ 'INSERT' GROUP BY 1 ORDER BY 1; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree regexp_split_to_array | count | array_agg | array_agg -------------------------------+-------+---------------------------------------------------------------------------------+--------------------------------------------------------------------------------- 'serialize-subbig-topsmall--1 | 5000 | table public.spill_test: INSERT: data[text]:'serialize-subbig-topsmall--1:1' | table public.spill_test: INSERT: data[text]:'serialize-subbig-topsmall--1:5000' @@ -75,12 +87,15 @@ BEGIN; SAVEPOINT s; INSERT INTO spill_test SELECT 'serialize-subbig-topbig--1:'||g.i FROM generate_series(1, 5000) g(i); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree RELEASE SAVEPOINT s; INSERT INTO spill_test SELECT 'serialize-subbig-topbig--2:'||g.i FROM generate_series(5001, 10000) g(i); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree COMMIT; SELECT (regexp_split_to_array(data, ':'))[4], COUNT(*), (array_agg(data))[1], (array_agg(data))[count(*)] FROM pg_logical_slot_get_changes('regression_slot', NULL,NULL) WHERE data ~ 'INSERT' GROUP BY 1 ORDER BY 1; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree regexp_split_to_array | count | array_agg | array_agg -----------------------------+-------+-------------------------------------------------------------------------------+-------------------------------------------------------------------------------- 'serialize-subbig-topbig--1 | 5000 | table public.spill_test: INSERT: data[text]:'serialize-subbig-topbig--1:1' | table public.spill_test: INSERT: data[text]:'serialize-subbig-topbig--1:5000' @@ -90,13 +105,16 @@ -- spilling main xact, spilling subxact BEGIN; INSERT INTO spill_test SELECT 'serialize-topbig-subbig--1:'||g.i FROM generate_series(1, 5000) g(i); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree SAVEPOINT s; INSERT INTO spill_test SELECT 'serialize-topbig-subbig--2:'||g.i FROM generate_series(5001, 10000) g(i); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree RELEASE SAVEPOINT s; COMMIT; SELECT (regexp_split_to_array(data, ':'))[4], COUNT(*), (array_agg(data))[1], (array_agg(data))[count(*)] FROM pg_logical_slot_get_changes('regression_slot', NULL,NULL) WHERE data ~ 'INSERT' GROUP BY 1 ORDER BY 1; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree regexp_split_to_array | count | array_agg | array_agg -----------------------------+-------+-------------------------------------------------------------------------------+-------------------------------------------------------------------------------- 'serialize-topbig-subbig--1 | 5000 | table public.spill_test: INSERT: data[text]:'serialize-topbig-subbig--1:1' | table public.spill_test: INSERT: data[text]:'serialize-topbig-subbig--1:5000' @@ -106,13 +124,16 @@ -- spilling main xact, not spilling subxact BEGIN; INSERT INTO spill_test SELECT 'serialize-topbig-subsmall--1:'||g.i FROM generate_series(1, 5000) g(i); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree SAVEPOINT s; INSERT INTO spill_test SELECT 'serialize-topbig-subsmall--2:'||g.i FROM generate_series(5001, 5001) g(i); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree RELEASE SAVEPOINT s; COMMIT; SELECT (regexp_split_to_array(data, ':'))[4], COUNT(*), (array_agg(data))[1], (array_agg(data))[count(*)] FROM pg_logical_slot_get_changes('regression_slot', NULL,NULL) WHERE data ~ 'INSERT' GROUP BY 1 ORDER BY 1; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree regexp_split_to_array | count | array_agg | array_agg -------------------------------+-------+---------------------------------------------------------------------------------+--------------------------------------------------------------------------------- 'serialize-topbig-subsmall--1 | 5000 | table public.spill_test: INSERT: data[text]:'serialize-topbig-subsmall--1:1' | table public.spill_test: INSERT: data[text]:'serialize-topbig-subsmall--1:5000' @@ -123,14 +144,17 @@ BEGIN; SAVEPOINT s1; INSERT INTO spill_test SELECT 'serialize-subbig-subbig--1:'||g.i FROM generate_series(1, 5000) g(i); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree RELEASE SAVEPOINT s1; SAVEPOINT s2; INSERT INTO spill_test SELECT 'serialize-subbig-subbig--2:'||g.i FROM generate_series(5001, 10000) g(i); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree RELEASE SAVEPOINT s2; COMMIT; SELECT (regexp_split_to_array(data, ':'))[4], COUNT(*), (array_agg(data))[1], (array_agg(data))[count(*)] FROM pg_logical_slot_get_changes('regression_slot', NULL,NULL) WHERE data ~ 'INSERT' GROUP BY 1 ORDER BY 1; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree regexp_split_to_array | count | array_agg | array_agg -----------------------------+-------+-------------------------------------------------------------------------------+-------------------------------------------------------------------------------- 'serialize-subbig-subbig--1 | 5000 | table public.spill_test: INSERT: data[text]:'serialize-subbig-subbig--1:1' | table public.spill_test: INSERT: data[text]:'serialize-subbig-subbig--1:5000' @@ -141,14 +165,17 @@ BEGIN; SAVEPOINT s1; INSERT INTO spill_test SELECT 'serialize-subbig-subsmall--1:'||g.i FROM generate_series(1, 5000) g(i); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree RELEASE SAVEPOINT s1; SAVEPOINT s2; INSERT INTO spill_test SELECT 'serialize-subbig-subsmall--2:'||g.i FROM generate_series(5001, 5001) g(i); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree RELEASE SAVEPOINT s2; COMMIT; SELECT (regexp_split_to_array(data, ':'))[4], COUNT(*), (array_agg(data))[1], (array_agg(data))[count(*)] FROM pg_logical_slot_get_changes('regression_slot', NULL,NULL) WHERE data ~ 'INSERT' GROUP BY 1 ORDER BY 1; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree regexp_split_to_array | count | array_agg | array_agg -------------------------------+-------+---------------------------------------------------------------------------------+--------------------------------------------------------------------------------- 'serialize-subbig-subsmall--1 | 5000 | table public.spill_test: INSERT: data[text]:'serialize-subbig-subsmall--1:1' | table public.spill_test: INSERT: data[text]:'serialize-subbig-subsmall--1:5000' @@ -159,14 +186,17 @@ BEGIN; SAVEPOINT s1; INSERT INTO spill_test SELECT 'serialize-subsmall-subbig--1:'||g.i FROM generate_series(1, 1) g(i); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree RELEASE SAVEPOINT s1; SAVEPOINT s2; INSERT INTO spill_test SELECT 'serialize-subsmall-subbig--2:'||g.i FROM generate_series(2, 5001) g(i); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree RELEASE SAVEPOINT s2; COMMIT; SELECT (regexp_split_to_array(data, ':'))[4] COLLATE "C", COUNT(*), (array_agg(data))[1], (array_agg(data))[count(*)] FROM pg_logical_slot_get_changes('regression_slot', NULL,NULL) WHERE data ~ 'INSERT' GROUP BY 1 ORDER BY 1; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree regexp_split_to_array | count | array_agg | array_agg -------------------------------+-------+------------------------------------------------------------------------------+--------------------------------------------------------------------------------- 'serialize-subsmall-subbig--1 | 1 | table public.spill_test: INSERT: data[text]:'serialize-subsmall-subbig--1:1' | table public.spill_test: INSERT: data[text]:'serialize-subsmall-subbig--1:1' @@ -177,14 +207,17 @@ BEGIN; SAVEPOINT s1; INSERT INTO spill_test SELECT 'serialize-nested-subbig-subbig--1:'||g.i FROM generate_series(1, 5000) g(i); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree SAVEPOINT s2; INSERT INTO spill_test SELECT 'serialize-nested-subbig-subbig--2:'||g.i FROM generate_series(5001, 10000) g(i); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree RELEASE SAVEPOINT s2; RELEASE SAVEPOINT s1; COMMIT; SELECT (regexp_split_to_array(data, ':'))[4] COLLATE "C", COUNT(*), (array_agg(data))[1], (array_agg(data))[count(*)] FROM pg_logical_slot_get_changes('regression_slot', NULL,NULL) WHERE data ~ 'INSERT' GROUP BY 1 ORDER BY 1; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree regexp_split_to_array | count | array_agg | array_agg ------------------------------------+-------+--------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------- 'serialize-nested-subbig-subbig--1 | 5000 | table public.spill_test: INSERT: data[text]:'serialize-nested-subbig-subbig--1:1' | table public.spill_test: INSERT: data[text]:'serialize-nested-subbig-subbig--1:5000' @@ -195,14 +228,17 @@ BEGIN; SAVEPOINT s1; INSERT INTO spill_test SELECT 'serialize-nested-subbig-subsmall--1:'||g.i FROM generate_series(1, 5000) g(i); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree SAVEPOINT s2; INSERT INTO spill_test SELECT 'serialize-nested-subbig-subsmall--2:'||g.i FROM generate_series(5001, 5001) g(i); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree RELEASE SAVEPOINT s2; RELEASE SAVEPOINT s1; COMMIT; SELECT (regexp_split_to_array(data, ':'))[4] COLLATE "C", COUNT(*), (array_agg(data))[1], (array_agg(data))[count(*)] FROM pg_logical_slot_get_changes('regression_slot', NULL,NULL) WHERE data ~ 'INSERT' GROUP BY 1 ORDER BY 1; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree regexp_split_to_array | count | array_agg | array_agg --------------------------------------+-------+----------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------- 'serialize-nested-subbig-subsmall--1 | 5000 | table public.spill_test: INSERT: data[text]:'serialize-nested-subbig-subsmall--1:1' | table public.spill_test: INSERT: data[text]:'serialize-nested-subbig-subsmall--1:5000' @@ -213,14 +249,17 @@ BEGIN; SAVEPOINT s1; INSERT INTO spill_test SELECT 'serialize-nested-subsmall-subbig--1:'||g.i FROM generate_series(1, 1) g(i); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree SAVEPOINT s2; INSERT INTO spill_test SELECT 'serialize-nested-subsmall-subbig--2:'||g.i FROM generate_series(2, 5001) g(i); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree RELEASE SAVEPOINT s2; RELEASE SAVEPOINT s1; COMMIT; SELECT (regexp_split_to_array(data, ':'))[4] COLLATE "C", COUNT(*), (array_agg(data))[1], (array_agg(data))[count(*)] FROM pg_logical_slot_get_changes('regression_slot', NULL,NULL) WHERE data ~ 'INSERT' GROUP BY 1 ORDER BY 1; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree regexp_split_to_array | count | array_agg | array_agg --------------------------------------+-------+-------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------- 'serialize-nested-subsmall-subbig--1 | 1 | table public.spill_test: INSERT: data[text]:'serialize-nested-subsmall-subbig--1:1' | table public.spill_test: INSERT: data[text]:'serialize-nested-subsmall-subbig--1:1' @@ -231,16 +270,20 @@ BEGIN; SAVEPOINT s1; INSERT INTO spill_test SELECT 'serialize-nested-subbig-subbigabort--1:'||g.i FROM generate_series(1, 5000) g(i); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree SAVEPOINT s2; INSERT INTO spill_test SELECT 'serialize-nested-subbig-subbigabort--2:'||g.i FROM generate_series(5001, 10000) g(i); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ROLLBACK TO SAVEPOINT s2; SAVEPOINT s3; INSERT INTO spill_test SELECT 'serialize-nested-subbig-subbigabort-subbig-3:'||g.i FROM generate_series(5001, 10000) g(i); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree RELEASE SAVEPOINT s1; COMMIT; SELECT (regexp_split_to_array(data, ':'))[4] COLLATE "C", COUNT(*), (array_agg(data))[1], (array_agg(data))[count(*)] FROM pg_logical_slot_get_changes('regression_slot', NULL,NULL) WHERE data ~ 'INSERT' GROUP BY 1 ORDER BY 1; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree regexp_split_to_array | count | array_agg | array_agg -----------------------------------------------+-------+-------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------- 'serialize-nested-subbig-subbigabort--1 | 5000 | table public.spill_test: INSERT: data[text]:'serialize-nested-subbig-subbigabort--1:1' | table public.spill_test: INSERT: data[text]:'serialize-nested-subbig-subbigabort--1:5000' diff -U3 /tmp/cirrus-ci-build/contrib/test_decoding/expected/slot.out /tmp/cirrus-ci-build/build/testrun/test_decoding/regress/results/slot.out --- /tmp/cirrus-ci-build/contrib/test_decoding/expected/slot.out 2024-03-19 15:41:20.193902000 +0000 +++ /tmp/cirrus-ci-build/build/testrun/test_decoding/regress/results/slot.out 2024-03-19 15:59:40.020858000 +0000 @@ -1,12 +1,14 @@ -- predictability SET synchronous_commit = on; SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot_p', 'test_decoding'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- init (1 row) SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot_t', 'test_decoding', true); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- init @@ -19,12 +21,14 @@ (1 row) SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot_p', 'test_decoding', false); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- init (1 row) SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot_t2', 'test_decoding', true); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- init @@ -43,6 +47,7 @@ ') > 0 loop c := c + 1; perform pg_sleep(0.01); end loop; raise log ''slot test looped % times'', c; end'; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree -- should fail because the temporary slots were dropped automatically SELECT pg_drop_replication_slot('regression_slot_t'); ERROR: replication slot "regression_slot_t" does not exist @@ -50,24 +55,28 @@ ERROR: replication slot "regression_slot_t2" does not exist -- monitoring functions for slot directories SELECT count(*) >= 0 AS ok FROM pg_ls_logicalmapdir(); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ok ---- t (1 row) SELECT count(*) >= 0 AS ok FROM pg_ls_logicalsnapdir(); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ok ---- t (1 row) SELECT count(*) >= 0 AS ok FROM pg_ls_replslotdir('regression_slot_p'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ok ---- t (1 row) SELECT count(*) >= 0 AS ok FROM pg_ls_replslotdir('not_existing_slot'); -- fails +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ERROR: replication slot "not_existing_slot" does not exist -- permanent slot has survived SELECT pg_drop_replication_slot('regression_slot_p'); @@ -78,6 +87,7 @@ -- test switching between slots in a session SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot1', 'test_decoding', true); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- init @@ -89,6 +99,7 @@ INSERT INTO replication_example(somedata, text) VALUES (1, 2); COMMIT; SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot2', 'test_decoding', true); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- init @@ -96,6 +107,7 @@ INSERT INTO replication_example(somedata, text) VALUES (1, 3); SELECT data FROM pg_logical_slot_get_changes('regression_slot1', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data --------------------------------------------------------------------------------------------------------- BEGIN @@ -108,6 +120,7 @@ (7 rows) SELECT data FROM pg_logical_slot_get_changes('regression_slot2', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data --------------------------------------------------------------------------------------------------------- BEGIN @@ -120,7 +133,9 @@ SELECT pg_current_wal_lsn() AS wal_lsn \gset INSERT INTO replication_example(somedata, text) VALUES (1, 6); SELECT end_lsn FROM pg_replication_slot_advance('regression_slot1', :'wal_lsn') \gset +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree SELECT slot_name FROM pg_replication_slot_advance('regression_slot2', pg_current_wal_lsn()); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree slot_name ------------------ regression_slot2 @@ -133,6 +148,7 @@ (1 row) SELECT data FROM pg_logical_slot_get_changes('regression_slot1', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data --------------------------------------------------------------------------------------------------------- BEGIN @@ -141,6 +157,7 @@ (3 rows) SELECT data FROM pg_logical_slot_get_changes('regression_slot2', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ------ (0 rows) @@ -148,6 +165,7 @@ DROP TABLE replication_example; -- error SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot1', 'test_decoding', true); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ERROR: replication slot "regression_slot1" already exists -- both should error as they should be dropped on error SELECT pg_drop_replication_slot('regression_slot1'); @@ -156,6 +174,7 @@ ERROR: replication slot "regression_slot2" does not exist -- slot advance with physical slot, error with non-reserved slot SELECT slot_name FROM pg_create_physical_replication_slot('regression_slot3'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree slot_name ------------------ regression_slot3 @@ -177,24 +196,28 @@ -- -- Create and copy logical slots SELECT 'init' FROM pg_create_logical_replication_slot('orig_slot1', 'test_decoding', false); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- init (1 row) SELECT 'copy' FROM pg_copy_logical_replication_slot('orig_slot1', 'copied_slot1_no_change'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- copy (1 row) SELECT 'copy' FROM pg_copy_logical_replication_slot('orig_slot1', 'copied_slot1_change_plugin', false, 'pgoutput'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- copy (1 row) SELECT 'copy' FROM pg_copy_logical_replication_slot('orig_slot1', 'copied_slot1_change_plugin_temp', true, 'pgoutput'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- copy @@ -209,6 +232,7 @@ WHERE o.slot_name != c.slot_name ORDER BY o.slot_name, c.slot_name; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree slot_name | plugin | temporary | slot_name | plugin | temporary ------------+---------------+-----------+---------------------------------+---------------+----------- orig_slot1 | test_decoding | f | copied_slot1_change_plugin | pgoutput | f @@ -219,6 +243,7 @@ -- Now we have maximum 4 replication slots. Check slots are properly -- released even when raise error during creating the target slot. SELECT 'copy' FROM pg_copy_logical_replication_slot('orig_slot1', 'failed'); -- error +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ERROR: all replication slots are in use HINT: Free one or increase max_replication_slots. -- temporary slots were dropped automatically @@ -242,24 +267,28 @@ -- Test based on the temporary logical slot SELECT 'init' FROM pg_create_logical_replication_slot('orig_slot2', 'test_decoding', true); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- init (1 row) SELECT 'copy' FROM pg_copy_logical_replication_slot('orig_slot2', 'copied_slot2_no_change'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- copy (1 row) SELECT 'copy' FROM pg_copy_logical_replication_slot('orig_slot2', 'copied_slot2_change_plugin', true, 'pgoutput'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- copy (1 row) SELECT 'copy' FROM pg_copy_logical_replication_slot('orig_slot2', 'copied_slot2_change_plugin_temp', false, 'pgoutput'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- copy @@ -274,6 +303,7 @@ WHERE o.slot_name != c.slot_name ORDER BY o.slot_name, c.slot_name; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree slot_name | plugin | temporary | slot_name | plugin | temporary ------------+---------------+-----------+---------------------------------+---------------+----------- orig_slot2 | test_decoding | t | copied_slot2_change_plugin | pgoutput | t @@ -283,6 +313,7 @@ -- Cannot copy a logical slot to a physical slot SELECT 'copy' FROM pg_copy_physical_replication_slot('orig_slot2', 'failed'); -- error +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ERROR: cannot copy physical replication slot "orig_slot2" as a logical replication slot -- temporary slots were dropped automatically SELECT pg_drop_replication_slot('copied_slot2_change_plugin_temp'); @@ -296,24 +327,28 @@ -- -- Create and copy physical slots SELECT 'init' FROM pg_create_physical_replication_slot('orig_slot1', true); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- init (1 row) SELECT 'init' FROM pg_create_physical_replication_slot('orig_slot2', false); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- init (1 row) SELECT 'copy' FROM pg_copy_physical_replication_slot('orig_slot1', 'copied_slot1_no_change'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- copy (1 row) SELECT 'copy' FROM pg_copy_physical_replication_slot('orig_slot1', 'copied_slot1_temp', true); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- copy @@ -321,6 +356,7 @@ -- Check all copied slots status. Since all slots don't reserve WAL we check only other fields. SELECT slot_name, slot_type, temporary FROM pg_replication_slots; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree slot_name | slot_type | temporary ------------------------+-----------+----------- orig_slot1 | physical | f @@ -331,9 +367,11 @@ -- Cannot copy a physical slot to a logical slot SELECT 'copy' FROM pg_copy_logical_replication_slot('orig_slot1', 'failed'); -- error +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ERROR: cannot copy logical replication slot "orig_slot1" as a physical replication slot -- Cannot copy a physical slot that doesn't reserve WAL SELECT 'copy' FROM pg_copy_physical_replication_slot('orig_slot2', 'failed'); -- error +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ERROR: cannot copy a replication slot that doesn't reserve WAL -- temporary slots were dropped automatically SELECT pg_drop_replication_slot('orig_slot1'); @@ -356,18 +394,21 @@ -- Test based on the temporary physical slot SELECT 'init' FROM pg_create_physical_replication_slot('orig_slot2', true, true); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- init (1 row) SELECT 'copy' FROM pg_copy_physical_replication_slot('orig_slot2', 'copied_slot2_no_change'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- copy (1 row) SELECT 'copy' FROM pg_copy_physical_replication_slot('orig_slot2', 'copied_slot2_notemp', false); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- copy @@ -382,6 +423,7 @@ WHERE o.slot_name != c.slot_name ORDER BY o.slot_name, c.slot_name; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree slot_name | temporary | slot_name | temporary ------------+-----------+------------------------+----------- orig_slot2 | t | copied_slot2_no_change | t @@ -408,32 +450,38 @@ -- Test failover option of slots. SELECT 'init' FROM pg_create_logical_replication_slot('failover_true_slot', 'test_decoding', false, false, true); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- init (1 row) SELECT 'init' FROM pg_create_logical_replication_slot('failover_false_slot', 'test_decoding', false, false, false); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- init (1 row) SELECT 'init' FROM pg_create_logical_replication_slot('failover_default_slot', 'test_decoding', false, false); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- init (1 row) SELECT 'init' FROM pg_create_logical_replication_slot('failover_true_temp_slot', 'test_decoding', true, false, true); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ERROR: cannot enable failover for a temporary replication slot SELECT 'init' FROM pg_create_physical_replication_slot('physical_slot'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- init (1 row) SELECT slot_name, slot_type, failover FROM pg_replication_slots; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree slot_name | slot_type | failover -----------------------+-----------+---------- failover_true_slot | logical | t diff -U3 /tmp/cirrus-ci-build/contrib/test_decoding/expected/truncate.out /tmp/cirrus-ci-build/build/testrun/test_decoding/regress/results/truncate.out --- /tmp/cirrus-ci-build/contrib/test_decoding/expected/truncate.out 2024-03-19 15:41:20.194018000 +0000 +++ /tmp/cirrus-ci-build/build/testrun/test_decoding/regress/results/truncate.out 2024-03-19 15:59:40.042830000 +0000 @@ -1,6 +1,7 @@ -- predictability SET synchronous_commit = on; SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- init @@ -12,6 +13,7 @@ TRUNCATE tab1, tab1 RESTART IDENTITY CASCADE; TRUNCATE tab1, tab2; SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ------------------------------------------------------ BEGIN diff -U3 /tmp/cirrus-ci-build/contrib/test_decoding/expected/stream.out /tmp/cirrus-ci-build/build/testrun/test_decoding/regress/results/stream.out --- /tmp/cirrus-ci-build/contrib/test_decoding/expected/stream.out 2024-03-19 15:41:20.193973000 +0000 +++ /tmp/cirrus-ci-build/build/testrun/test_decoding/regress/results/stream.out 2024-03-19 15:59:40.072769000 +0000 @@ -1,5 +1,6 @@ SET synchronous_commit = on; SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- init @@ -8,6 +9,7 @@ CREATE TABLE stream_test(data text); -- consume DDL SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ------ (0 rows) @@ -16,17 +18,21 @@ BEGIN; savepoint s1; SELECT 'msg5' FROM pg_logical_emit_message(true, 'test', repeat('a', 50)); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- msg5 (1 row) INSERT INTO stream_test SELECT repeat('a', 2000) || g.i FROM generate_series(1, 35) g(i); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree TRUNCATE table stream_test; rollback to s1; INSERT INTO stream_test SELECT repeat('a', 10) || g.i FROM generate_series(1, 20) g(i); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree COMMIT; SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL,NULL, 'include-xids', '0', 'skip-empty-xacts', '1', 'stream-changes', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ---------------------------------------------------------- opening a streamed block for transaction @@ -62,12 +68,15 @@ ALTER TABLE stream_test ALTER COLUMN data set storage external; -- consume DDL SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ------ (0 rows) INSERT INTO stream_test SELECT repeat('a', 6000) || g.i FROM generate_series(1, 10) g(i); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL,NULL, 'include-xids', '0', 'skip-empty-xacts', '1', 'stream-changes', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ------------------------------------------ opening a streamed block for transaction @@ -88,6 +97,7 @@ -- streaming test for toast with multi-insert \COPY stream_test FROM STDIN SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL,NULL, 'include-xids', '0', 'skip-empty-xacts', '1', 'stream-changes', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ------------------------------------------ opening a streamed block for transaction diff -U3 /tmp/cirrus-ci-build/contrib/test_decoding/expected/stats.out /tmp/cirrus-ci-build/build/testrun/test_decoding/regress/results/stats.out --- /tmp/cirrus-ci-build/contrib/test_decoding/expected/stats.out 2024-03-19 15:41:20.193963000 +0000 +++ /tmp/cirrus-ci-build/build/testrun/test_decoding/regress/results/stats.out 2024-03-19 15:59:40.154109000 +0000 @@ -4,6 +4,7 @@ pg_create_logical_replication_slot('regression_slot_stats1', 'test_decoding') s1, pg_create_logical_replication_slot('regression_slot_stats2', 'test_decoding') s2, pg_create_logical_replication_slot('regression_slot_stats3', 'test_decoding') s3; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- init @@ -14,18 +15,21 @@ SET logical_decoding_work_mem to '64MB'; INSERT INTO stats_test values(1); SELECT count(*) FROM pg_logical_slot_get_changes('regression_slot_stats1', NULL, NULL, 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree count ------- 3 (1 row) SELECT count(*) FROM pg_logical_slot_get_changes('regression_slot_stats2', NULL, NULL, 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree count ------- 3 (1 row) SELECT count(*) FROM pg_logical_slot_get_changes('regression_slot_stats3', NULL, NULL, 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree count ------- 3 @@ -38,6 +42,7 @@ (1 row) SELECT slot_name, spill_txns = 0 AS spill_txns, spill_count = 0 AS spill_count, total_txns > 0 AS total_txns, total_bytes > 0 AS total_bytes FROM pg_stat_replication_slots ORDER BY slot_name; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree slot_name | spill_txns | spill_count | total_txns | total_bytes ------------------------+------------+-------------+------------+------------- regression_slot_stats1 | t | t | t | t @@ -54,6 +59,7 @@ (1 row) SELECT slot_name, spill_txns = 0 AS spill_txns, spill_count = 0 AS spill_count, total_txns > 0 AS total_txns, total_bytes > 0 AS total_bytes FROM pg_stat_replication_slots ORDER BY slot_name; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree slot_name | spill_txns | spill_count | total_txns | total_bytes ------------------------+------------+-------------+------------+------------- regression_slot_stats1 | t | t | f | f @@ -69,6 +75,7 @@ (1 row) SELECT slot_name, spill_txns = 0 AS spill_txns, spill_count = 0 AS spill_count, total_txns > 0 AS total_txns, total_bytes > 0 AS total_bytes FROM pg_stat_replication_slots ORDER BY slot_name; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree slot_name | spill_txns | spill_count | total_txns | total_bytes ------------------------+------------+-------------+------------+------------- regression_slot_stats1 | t | t | f | f @@ -78,6 +85,7 @@ -- verify accessing/resetting stats for non-existent slot does something reasonable SELECT * FROM pg_stat_get_replication_slot('do-not-exist'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree slot_name | spill_txns | spill_count | spill_bytes | stream_txns | stream_count | stream_bytes | total_txns | total_bytes | stats_reset --------------+------------+-------------+-------------+-------------+--------------+--------------+------------+-------------+------------- do-not-exist | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | @@ -86,6 +94,7 @@ SELECT pg_stat_reset_replication_slot('do-not-exist'); ERROR: replication slot "do-not-exist" does not exist SELECT * FROM pg_stat_get_replication_slot('do-not-exist'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree slot_name | spill_txns | spill_count | spill_bytes | stream_txns | stream_count | stream_bytes | total_txns | total_bytes | stats_reset --------------+------------+-------------+-------------+-------------+--------------+--------------+------------+-------------+------------- do-not-exist | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | @@ -94,8 +103,10 @@ -- spilling the xact BEGIN; INSERT INTO stats_test SELECT 'serialize-topbig--1:'||g.i FROM generate_series(1, 5000) g(i); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree COMMIT; SELECT count(*) FROM pg_logical_slot_peek_changes('regression_slot_stats1', NULL, NULL, 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree count ------- 5002 @@ -111,6 +122,7 @@ (1 row) SELECT slot_name, spill_txns > 0 AS spill_txns, spill_count > 0 AS spill_count FROM pg_stat_replication_slots; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree slot_name | spill_txns | spill_count ------------------------+------------+------------- regression_slot_stats1 | t | t @@ -122,6 +134,7 @@ -- https://postgr.es/m/20210317230447.c7uc4g3vbs4wi32i%40alap3.anarazel.de BEGIN; SELECT slot_name FROM pg_stat_replication_slots; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree slot_name ------------------------ regression_slot_stats1 @@ -130,6 +143,7 @@ (3 rows) SELECT slot_name FROM pg_stat_replication_slots; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree slot_name ------------------------ regression_slot_stats1 diff -U3 /tmp/cirrus-ci-build/contrib/test_decoding/expected/twophase.out /tmp/cirrus-ci-build/build/testrun/test_decoding/regress/results/twophase.out --- /tmp/cirrus-ci-build/contrib/test_decoding/expected/twophase.out 2024-03-19 15:41:20.194030000 +0000 +++ /tmp/cirrus-ci-build/build/testrun/test_decoding/regress/results/twophase.out 2024-03-19 15:59:40.202021000 +0000 @@ -2,6 +2,7 @@ -- decoded at PREPARE time rather than at COMMIT PREPARED time. SET synchronous_commit = on; SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding', false, true); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- init @@ -16,6 +17,7 @@ INSERT INTO test_prepared1 VALUES (2); -- should show nothing because the xact has not been prepared yet. SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ------ (0 rows) @@ -23,6 +25,7 @@ PREPARE TRANSACTION 'test_prepared#1'; -- should show both the above inserts and the PREPARE TRANSACTION. SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ---------------------------------------------------- BEGIN @@ -33,6 +36,7 @@ COMMIT PREPARED 'test_prepared#1'; SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ----------------------------------- COMMIT PREPARED 'test_prepared#1' @@ -43,6 +47,7 @@ INSERT INTO test_prepared1 VALUES (3); PREPARE TRANSACTION 'test_prepared#2'; SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ---------------------------------------------------- BEGIN @@ -52,6 +57,7 @@ ROLLBACK PREPARED 'test_prepared#2'; SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ------------------------------------- ROLLBACK PREPARED 'test_prepared#2' @@ -67,6 +73,7 @@ FROM pg_locks WHERE locktype = 'relation' AND relation = 'test_prepared1'::regclass; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree relation | locktype | mode -----------------+----------+--------------------- test_prepared_1 | relation | RowExclusiveLock @@ -75,6 +82,7 @@ -- The insert should show the newly altered column but not the DDL. SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ------------------------------------------------------------------------- BEGIN @@ -90,6 +98,7 @@ -- INSERT INTO test_prepared2 VALUES (5); SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ---------------------------------------------------- BEGIN @@ -99,6 +108,7 @@ COMMIT PREPARED 'test_prepared#3'; SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ----------------------------------- COMMIT PREPARED 'test_prepared#3' @@ -108,6 +118,7 @@ INSERT INTO test_prepared1 VALUES (6); INSERT INTO test_prepared2 VALUES (7); SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data -------------------------------------------------------------------- BEGIN @@ -129,6 +140,7 @@ FROM pg_locks WHERE locktype = 'relation' AND relation = 'test_prepared1'::regclass; +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree relation | locktype | mode ----------------+----------+--------------------- test_prepared1 | relation | RowExclusiveLock @@ -142,6 +154,7 @@ SELECT COALESCE(NULLIF(:'env_timeout', ''), '180') || 's' AS timeout \gset SET statement_timeout = :'timeout'; SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data --------------------------------------------------------------------------- BEGIN @@ -154,6 +167,7 @@ COMMIT PREPARED 'test_prepared_lock'; -- consume the commit SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data -------------------------------------- COMMIT PREPARED 'test_prepared_lock' @@ -170,6 +184,7 @@ PREPARE TRANSACTION 'test_prepared_savepoint'; -- should show only 1, not 2 SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ------------------------------------------------------------ BEGIN @@ -180,6 +195,7 @@ COMMIT PREPARED 'test_prepared_savepoint'; -- consume the commit SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ------------------------------------------- COMMIT PREPARED 'test_prepared_savepoint' @@ -191,6 +207,7 @@ PREPARE TRANSACTION 'test_prepared_nodecode'; -- should show nothing SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ------ (0 rows) @@ -198,6 +215,7 @@ COMMIT PREPARED 'test_prepared_nodecode'; -- should be decoded now SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data --------------------------------------------------------------------- BEGIN @@ -212,6 +230,7 @@ DROP TABLE test_prepared_savepoint; -- show results. There should be nothing to show SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ------ (0 rows) diff -U3 /tmp/cirrus-ci-build/contrib/test_decoding/expected/twophase_stream.out /tmp/cirrus-ci-build/build/testrun/test_decoding/regress/results/twophase_stream.out --- /tmp/cirrus-ci-build/contrib/test_decoding/expected/twophase_stream.out 2024-03-19 15:41:20.194052000 +0000 +++ /tmp/cirrus-ci-build/build/testrun/test_decoding/regress/results/twophase_stream.out 2024-03-19 15:59:40.229400000 +0000 @@ -1,6 +1,7 @@ -- Test streaming of two-phase commits SET synchronous_commit = on; SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding', false, true); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- init @@ -9,6 +10,7 @@ CREATE TABLE stream_test(data text); -- consume DDL SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ------ (0 rows) @@ -17,18 +19,22 @@ BEGIN; SAVEPOINT s1; SELECT 'msg5' FROM pg_logical_emit_message(true, 'test', repeat('a', 50)); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- msg5 (1 row) INSERT INTO stream_test SELECT repeat('a', 2000) || g.i FROM generate_series(1, 35) g(i); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree TRUNCATE table stream_test; ROLLBACK TO s1; INSERT INTO stream_test SELECT repeat('a', 10) || g.i FROM generate_series(1, 20) g(i); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree PREPARE TRANSACTION 'test1'; -- should show the inserts after a ROLLBACK SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL,NULL, 'include-xids', '0', 'skip-empty-xacts', '1', 'stream-changes', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ---------------------------------------------------------- opening a streamed block for transaction @@ -63,6 +69,7 @@ COMMIT PREPARED 'test1'; --should show the COMMIT PREPARED and the other changes in the transaction SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL,NULL, 'include-xids', '0', 'skip-empty-xacts', '1', 'stream-changes', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ------------------------- COMMIT PREPARED 'test1' @@ -73,18 +80,22 @@ BEGIN; SAVEPOINT s1; SELECT 'msg5' FROM pg_logical_emit_message(true, 'test', repeat('a', 50)); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree ?column? ---------- msg5 (1 row) INSERT INTO stream_test SELECT repeat('a', 2000) || g.i FROM generate_series(1, 35) g(i); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree TRUNCATE table stream_test; ROLLBACK to s1; INSERT INTO stream_test SELECT repeat('a', 10) || g.i FROM generate_series(1, 20) g(i); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree PREPARE TRANSACTION 'test1_nodecode'; -- should NOT show inserts after a ROLLBACK SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL,NULL, 'include-xids', '0', 'skip-empty-xacts', '1', 'stream-changes', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ---------------------------------------------------------- opening a streamed block for transaction @@ -96,6 +107,7 @@ COMMIT PREPARED 'test1_nodecode'; -- should show the inserts but not show a COMMIT PREPARED but a COMMIT SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL,NULL, 'include-xids', '0', 'skip-empty-xacts', '1', 'stream-changes', '1'); +WARNING: outfuncs/readfuncs failed to produce an equal rewritten parse tree data ------------------------------------------------------------- BEGIN