[PATCH] Logical decoding support for sequence advances

Started by Craig Ringerabout 10 years ago14 messages
#1Craig Ringer
craig@2ndquadrant.com
1 attachment(s)

Hi all

Attached is a patch against 9.6 to add support for informing logical
decoding plugins of the new sequence last_value when sequence advance WAL
records are processed during decoding.

The primary purpose is to make logical replication based failover practical
in 9.6 by ensuring that the downstream's sequence positions are always
ahead of the upstream's. It's replicating the crash-recovery sequence
positions, basically.

This isn't as flexible as a full sequence access method but it's simple,
unintrusive and it gets things done now.

test_decoding is updated to reflect the change and test the functionality.
The large diff is mainly a result of that, since the output is a bit
spammy.

Pushed to https://github.com/2ndQuadrant/postgres/tree/dev/decode-sequences
.

--
Craig Ringer http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

Attachments:

0001-Logical-decoding-for-sequence-advances.patchtext/x-patch; charset=US-ASCII; name=0001-Logical-decoding-for-sequence-advances.patchDownload
From 443ff51e47cf2bb63c78c69e3e0473bcca7ff42f Mon Sep 17 00:00:00 2001
From: Craig Ringer <craig@2ndquadrant.com>
Date: Mon, 7 Dec 2015 10:28:35 +0800
Subject: [PATCH] Logical decoding for sequence advances

Add a new logical decoding callback seq_advance_cb that's invoked
whenever we decode a new sequence chunk allocation from WAL.

Also add support for it in test_decoding.

It's guaranteed that the last_value passed to the callback is equal to
or greater than (for +ve sequences) any value returned by a nextval()
call visible to any transaction committed at or before the callback is
invoked.

In practice it'll be quite a lot larger because PostgreSQL
preallocates large chunks of sequences to minimise WAL writes, at
the cost of wasting values if it has to do crash recovery. Logical
decoding sees the crash recovery position when it gets advanced.

Needed to make logical replication based failover possible.
---
 contrib/test_decoding/expected/ddl.out             | 2728 +++++++++++++++++++-
 .../test_decoding/expected/decoding_in_xact.out    |   10 +-
 .../test_decoding/expected/decoding_into_rel.out   |   45 +-
 contrib/test_decoding/expected/mxact.out           |    2 +
 contrib/test_decoding/expected/ondisk_startup.out  |    2 +
 contrib/test_decoding/expected/replorigin.out      |   23 +-
 contrib/test_decoding/expected/rewrite.out         |   10 +-
 contrib/test_decoding/expected/toast.out           |   10 +-
 contrib/test_decoding/test_decoding.c              |   16 +
 src/backend/replication/logical/decode.c           |   60 +-
 src/backend/replication/logical/logical.c          |   28 +-
 src/include/replication/logical.h                  |    3 +
 src/include/replication/output_plugin.h            |   16 +
 13 files changed, 2911 insertions(+), 42 deletions(-)

diff --git a/contrib/test_decoding/expected/ddl.out b/contrib/test_decoding/expected/ddl.out
index 57a1289..493fca0 100644
--- a/contrib/test_decoding/expected/ddl.out
+++ b/contrib/test_decoding/expected/ddl.out
@@ -92,6 +92,9 @@ INSERT INTO replication_example(somedata, somenum) VALUES (4, 1);
 SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
                                                            data                                                            
 ---------------------------------------------------------------------------------------------------------------------------
+ sequence replication_example_id_seq advanced to 1
+ sequence replication_example_id_seq advanced to 1
+ sequence replication_example_id_seq advanced to 33
  BEGIN
  table public.replication_example: INSERT: id[integer]:1 somedata[integer]:1 text[character varying]:'1'
  table public.replication_example: INSERT: id[integer]:2 somedata[integer]:1 text[character varying]:'2'
@@ -114,14 +117,14 @@ SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'inc
  BEGIN
  table public.replication_example: INSERT: id[integer]:10 somedata[integer]:4 somenum[character varying]:'1'
  COMMIT
-(22 rows)
+(25 rows)
 
 ALTER TABLE replication_example ALTER COLUMN somenum TYPE int4 USING (somenum::int4);
 -- throw away changes, they contain oids
 SELECT count(data) FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
  count 
 -------
-    12
+    15
 (1 row)
 
 INSERT INTO replication_example(somedata, somenum) VALUES (5, 1);
@@ -137,6 +140,9 @@ COMMIT;
 SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
                                                                    data                                                                   
 ------------------------------------------------------------------------------------------------------------------------------------------
+ sequence replication_example_id_seq advanced to 1
+ sequence replication_example_id_seq advanced to 1
+ sequence replication_example_id_seq advanced to 33
  BEGIN
  table public.replication_example: INSERT: id[integer]:11 somedata[integer]:5 somenum[integer]:1
  COMMIT
@@ -146,7 +152,7 @@ SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'inc
  table public.replication_example: INSERT: id[integer]:14 somedata[integer]:6 somenum[integer]:3 zaphod1[integer]:null zaphod2[integer]:1
  table public.replication_example: INSERT: id[integer]:15 somedata[integer]:6 somenum[integer]:4 zaphod1[integer]:2 zaphod2[integer]:null
  COMMIT
-(9 rows)
+(12 rows)
 
 -- ON CONFLICT DO UPDATE support
 BEGIN;
@@ -157,6 +163,9 @@ COMMIT;
 SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
                                                                        data                                                                       
 --------------------------------------------------------------------------------------------------------------------------------------------------
+ sequence replication_example_id_seq advanced to 1
+ sequence replication_example_id_seq advanced to 1
+ sequence replication_example_id_seq advanced to 33
  BEGIN
  table public.replication_example: INSERT: id[integer]:-15 somedata[integer]:-15 somenum[integer]:-15 zaphod1[integer]:null zaphod2[integer]:null
  table public.replication_example: INSERT: id[integer]:-14 somedata[integer]:-14 somenum[integer]:-14 zaphod1[integer]:null zaphod2[integer]:null
@@ -190,7 +199,7 @@ SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'inc
  table public.replication_example: UPDATE: id[integer]:14 somedata[integer]:6 somenum[integer]:15 zaphod1[integer]:null zaphod2[integer]:1
  table public.replication_example: UPDATE: id[integer]:15 somedata[integer]:6 somenum[integer]:16 zaphod1[integer]:2 zaphod2[integer]:null
  COMMIT
-(33 rows)
+(36 rows)
 
 -- hide changes bc of oid visible in full table rewrites
 CREATE TABLE tr_unique(id2 serial unique NOT NULL, data int);
@@ -200,7 +209,7 @@ ALTER TABLE tr_pkey ADD COLUMN id serial primary key;
 SELECT count(data) FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
  count 
 -------
-     6
+    15
 (1 row)
 
 INSERT INTO tr_pkey(data) VALUES(1);
@@ -210,6 +219,15 @@ DELETE FROM tr_pkey;
 SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
                                     data                                    
 ----------------------------------------------------------------------------
+ sequence replication_example_id_seq advanced to 1
+ sequence replication_example_id_seq advanced to 1
+ sequence replication_example_id_seq advanced to 33
+ sequence tr_unique_id2_seq advanced to 1
+ sequence tr_unique_id2_seq advanced to 1
+ sequence tr_unique_id2_seq advanced to 33
+ sequence tr_pkey_id_seq advanced to 1
+ sequence tr_pkey_id_seq advanced to 33
+ sequence tr_pkey_id_seq advanced to 1
  BEGIN
  table public.tr_pkey: INSERT: id2[integer]:2 data[integer]:1 id[integer]:2
  COMMIT
@@ -217,7 +235,7 @@ SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'inc
  table public.tr_pkey: DELETE: id[integer]:1
  table public.tr_pkey: DELETE: id[integer]:2
  COMMIT
-(7 rows)
+(16 rows)
 
 /*
  * check that disk spooling works
@@ -233,12 +251,16 @@ SELECT count(*), min(data), max(data)
 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;
- count |                       min                       |                                  max                                   
--------+-------------------------------------------------+------------------------------------------------------------------------
-     1 | BEGIN                                           | BEGIN
-     1 | COMMIT                                          | COMMIT
- 20467 | table public.tr_etoomuch: DELETE: id[integer]:1 | table public.tr_etoomuch: UPDATE: id[integer]:9999 data[integer]:-9999
-(3 rows)
+ count |                        min                        |                                  max                                   
+-------+---------------------------------------------------+------------------------------------------------------------------------
+     1 | BEGIN                                             | BEGIN
+     1 | COMMIT                                            | COMMIT
+     3 | sequence replication_example_id_seq advanced to 1 | sequence replication_example_id_seq advanced to 33
+     3 | sequence tr_pkey_id_seq advanced to 1             | sequence tr_pkey_id_seq advanced to 33
+     3 | sequence tr_unique_id2_seq advanced to 1          | sequence tr_unique_id2_seq advanced to 33
+   313 | sequence tr_etoomuch_id_seq advanced to 1         | sequence tr_etoomuch_id_seq advanced to 9999
+ 20467 | table public.tr_etoomuch: DELETE: id[integer]:1   | table public.tr_etoomuch: UPDATE: id[integer]:9999 data[integer]:-9999
+(7 rows)
 
 -- check that a large, spooled, upsert works
 INSERT INTO tr_etoomuch (id, data)
@@ -250,11 +272,15 @@ GROUP BY 1
 ORDER BY min(location - '0/0');
            substring           | count 
 -------------------------------+-------
- BEGIN                         |     1
+ sequence tr_etoomuch_id_seq a |   313
+ sequence replication_example_ |     3
+ sequence tr_pkey_id_seq advan |     3
+ sequence tr_unique_id2_seq ad |     3
  table public.tr_etoomuch: UPD |  2235
+ BEGIN                         |     1
  table public.tr_etoomuch: INS |  1766
  COMMIT                        |     1
-(4 rows)
+(8 rows)
 
 /*
  * check whether we decode subtransactions correctly in relation with each
@@ -279,6 +305,331 @@ COMMIT;
 SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
                                  data                                 
 ----------------------------------------------------------------------
+ sequence replication_example_id_seq advanced to 1
+ sequence replication_example_id_seq advanced to 1
+ sequence replication_example_id_seq advanced to 33
+ sequence tr_unique_id2_seq advanced to 1
+ sequence tr_unique_id2_seq advanced to 1
+ sequence tr_unique_id2_seq advanced to 33
+ sequence tr_pkey_id_seq advanced to 1
+ sequence tr_pkey_id_seq advanced to 33
+ sequence tr_pkey_id_seq advanced to 1
+ sequence tr_etoomuch_id_seq advanced to 1
+ sequence tr_etoomuch_id_seq advanced to 1
+ sequence tr_etoomuch_id_seq advanced to 33
+ sequence tr_etoomuch_id_seq advanced to 66
+ sequence tr_etoomuch_id_seq advanced to 99
+ sequence tr_etoomuch_id_seq advanced to 132
+ sequence tr_etoomuch_id_seq advanced to 165
+ sequence tr_etoomuch_id_seq advanced to 198
+ sequence tr_etoomuch_id_seq advanced to 231
+ sequence tr_etoomuch_id_seq advanced to 264
+ sequence tr_etoomuch_id_seq advanced to 297
+ sequence tr_etoomuch_id_seq advanced to 330
+ sequence tr_etoomuch_id_seq advanced to 363
+ sequence tr_etoomuch_id_seq advanced to 396
+ sequence tr_etoomuch_id_seq advanced to 429
+ sequence tr_etoomuch_id_seq advanced to 462
+ sequence tr_etoomuch_id_seq advanced to 495
+ sequence tr_etoomuch_id_seq advanced to 528
+ sequence tr_etoomuch_id_seq advanced to 561
+ sequence tr_etoomuch_id_seq advanced to 594
+ sequence tr_etoomuch_id_seq advanced to 627
+ sequence tr_etoomuch_id_seq advanced to 660
+ sequence tr_etoomuch_id_seq advanced to 693
+ sequence tr_etoomuch_id_seq advanced to 726
+ sequence tr_etoomuch_id_seq advanced to 759
+ sequence tr_etoomuch_id_seq advanced to 792
+ sequence tr_etoomuch_id_seq advanced to 825
+ sequence tr_etoomuch_id_seq advanced to 858
+ sequence tr_etoomuch_id_seq advanced to 891
+ sequence tr_etoomuch_id_seq advanced to 924
+ sequence tr_etoomuch_id_seq advanced to 957
+ sequence tr_etoomuch_id_seq advanced to 990
+ sequence tr_etoomuch_id_seq advanced to 1023
+ sequence tr_etoomuch_id_seq advanced to 1056
+ sequence tr_etoomuch_id_seq advanced to 1089
+ sequence tr_etoomuch_id_seq advanced to 1122
+ sequence tr_etoomuch_id_seq advanced to 1155
+ sequence tr_etoomuch_id_seq advanced to 1188
+ sequence tr_etoomuch_id_seq advanced to 1221
+ sequence tr_etoomuch_id_seq advanced to 1254
+ sequence tr_etoomuch_id_seq advanced to 1287
+ sequence tr_etoomuch_id_seq advanced to 1320
+ sequence tr_etoomuch_id_seq advanced to 1353
+ sequence tr_etoomuch_id_seq advanced to 1386
+ sequence tr_etoomuch_id_seq advanced to 1419
+ sequence tr_etoomuch_id_seq advanced to 1452
+ sequence tr_etoomuch_id_seq advanced to 1485
+ sequence tr_etoomuch_id_seq advanced to 1518
+ sequence tr_etoomuch_id_seq advanced to 1551
+ sequence tr_etoomuch_id_seq advanced to 1584
+ sequence tr_etoomuch_id_seq advanced to 1617
+ sequence tr_etoomuch_id_seq advanced to 1650
+ sequence tr_etoomuch_id_seq advanced to 1683
+ sequence tr_etoomuch_id_seq advanced to 1716
+ sequence tr_etoomuch_id_seq advanced to 1749
+ sequence tr_etoomuch_id_seq advanced to 1782
+ sequence tr_etoomuch_id_seq advanced to 1815
+ sequence tr_etoomuch_id_seq advanced to 1848
+ sequence tr_etoomuch_id_seq advanced to 1881
+ sequence tr_etoomuch_id_seq advanced to 1914
+ sequence tr_etoomuch_id_seq advanced to 1947
+ sequence tr_etoomuch_id_seq advanced to 1980
+ sequence tr_etoomuch_id_seq advanced to 2013
+ sequence tr_etoomuch_id_seq advanced to 2046
+ sequence tr_etoomuch_id_seq advanced to 2079
+ sequence tr_etoomuch_id_seq advanced to 2112
+ sequence tr_etoomuch_id_seq advanced to 2145
+ sequence tr_etoomuch_id_seq advanced to 2178
+ sequence tr_etoomuch_id_seq advanced to 2211
+ sequence tr_etoomuch_id_seq advanced to 2244
+ sequence tr_etoomuch_id_seq advanced to 2277
+ sequence tr_etoomuch_id_seq advanced to 2310
+ sequence tr_etoomuch_id_seq advanced to 2343
+ sequence tr_etoomuch_id_seq advanced to 2376
+ sequence tr_etoomuch_id_seq advanced to 2409
+ sequence tr_etoomuch_id_seq advanced to 2442
+ sequence tr_etoomuch_id_seq advanced to 2475
+ sequence tr_etoomuch_id_seq advanced to 2508
+ sequence tr_etoomuch_id_seq advanced to 2541
+ sequence tr_etoomuch_id_seq advanced to 2574
+ sequence tr_etoomuch_id_seq advanced to 2607
+ sequence tr_etoomuch_id_seq advanced to 2640
+ sequence tr_etoomuch_id_seq advanced to 2673
+ sequence tr_etoomuch_id_seq advanced to 2706
+ sequence tr_etoomuch_id_seq advanced to 2739
+ sequence tr_etoomuch_id_seq advanced to 2772
+ sequence tr_etoomuch_id_seq advanced to 2805
+ sequence tr_etoomuch_id_seq advanced to 2838
+ sequence tr_etoomuch_id_seq advanced to 2871
+ sequence tr_etoomuch_id_seq advanced to 2904
+ sequence tr_etoomuch_id_seq advanced to 2937
+ sequence tr_etoomuch_id_seq advanced to 2970
+ sequence tr_etoomuch_id_seq advanced to 3003
+ sequence tr_etoomuch_id_seq advanced to 3036
+ sequence tr_etoomuch_id_seq advanced to 3069
+ sequence tr_etoomuch_id_seq advanced to 3102
+ sequence tr_etoomuch_id_seq advanced to 3135
+ sequence tr_etoomuch_id_seq advanced to 3168
+ sequence tr_etoomuch_id_seq advanced to 3201
+ sequence tr_etoomuch_id_seq advanced to 3234
+ sequence tr_etoomuch_id_seq advanced to 3267
+ sequence tr_etoomuch_id_seq advanced to 3300
+ sequence tr_etoomuch_id_seq advanced to 3333
+ sequence tr_etoomuch_id_seq advanced to 3366
+ sequence tr_etoomuch_id_seq advanced to 3399
+ sequence tr_etoomuch_id_seq advanced to 3432
+ sequence tr_etoomuch_id_seq advanced to 3465
+ sequence tr_etoomuch_id_seq advanced to 3498
+ sequence tr_etoomuch_id_seq advanced to 3531
+ sequence tr_etoomuch_id_seq advanced to 3564
+ sequence tr_etoomuch_id_seq advanced to 3597
+ sequence tr_etoomuch_id_seq advanced to 3630
+ sequence tr_etoomuch_id_seq advanced to 3663
+ sequence tr_etoomuch_id_seq advanced to 3696
+ sequence tr_etoomuch_id_seq advanced to 3729
+ sequence tr_etoomuch_id_seq advanced to 3762
+ sequence tr_etoomuch_id_seq advanced to 3795
+ sequence tr_etoomuch_id_seq advanced to 3828
+ sequence tr_etoomuch_id_seq advanced to 3861
+ sequence tr_etoomuch_id_seq advanced to 3894
+ sequence tr_etoomuch_id_seq advanced to 3927
+ sequence tr_etoomuch_id_seq advanced to 3960
+ sequence tr_etoomuch_id_seq advanced to 3993
+ sequence tr_etoomuch_id_seq advanced to 4026
+ sequence tr_etoomuch_id_seq advanced to 4059
+ sequence tr_etoomuch_id_seq advanced to 4092
+ sequence tr_etoomuch_id_seq advanced to 4125
+ sequence tr_etoomuch_id_seq advanced to 4158
+ sequence tr_etoomuch_id_seq advanced to 4191
+ sequence tr_etoomuch_id_seq advanced to 4224
+ sequence tr_etoomuch_id_seq advanced to 4257
+ sequence tr_etoomuch_id_seq advanced to 4290
+ sequence tr_etoomuch_id_seq advanced to 4323
+ sequence tr_etoomuch_id_seq advanced to 4356
+ sequence tr_etoomuch_id_seq advanced to 4389
+ sequence tr_etoomuch_id_seq advanced to 4422
+ sequence tr_etoomuch_id_seq advanced to 4455
+ sequence tr_etoomuch_id_seq advanced to 4488
+ sequence tr_etoomuch_id_seq advanced to 4521
+ sequence tr_etoomuch_id_seq advanced to 4554
+ sequence tr_etoomuch_id_seq advanced to 4587
+ sequence tr_etoomuch_id_seq advanced to 4620
+ sequence tr_etoomuch_id_seq advanced to 4653
+ sequence tr_etoomuch_id_seq advanced to 4686
+ sequence tr_etoomuch_id_seq advanced to 4719
+ sequence tr_etoomuch_id_seq advanced to 4752
+ sequence tr_etoomuch_id_seq advanced to 4785
+ sequence tr_etoomuch_id_seq advanced to 4818
+ sequence tr_etoomuch_id_seq advanced to 4851
+ sequence tr_etoomuch_id_seq advanced to 4884
+ sequence tr_etoomuch_id_seq advanced to 4917
+ sequence tr_etoomuch_id_seq advanced to 4950
+ sequence tr_etoomuch_id_seq advanced to 4983
+ sequence tr_etoomuch_id_seq advanced to 5016
+ sequence tr_etoomuch_id_seq advanced to 5049
+ sequence tr_etoomuch_id_seq advanced to 5082
+ sequence tr_etoomuch_id_seq advanced to 5115
+ sequence tr_etoomuch_id_seq advanced to 5148
+ sequence tr_etoomuch_id_seq advanced to 5181
+ sequence tr_etoomuch_id_seq advanced to 5214
+ sequence tr_etoomuch_id_seq advanced to 5247
+ sequence tr_etoomuch_id_seq advanced to 5280
+ sequence tr_etoomuch_id_seq advanced to 5313
+ sequence tr_etoomuch_id_seq advanced to 5346
+ sequence tr_etoomuch_id_seq advanced to 5379
+ sequence tr_etoomuch_id_seq advanced to 5412
+ sequence tr_etoomuch_id_seq advanced to 5445
+ sequence tr_etoomuch_id_seq advanced to 5478
+ sequence tr_etoomuch_id_seq advanced to 5511
+ sequence tr_etoomuch_id_seq advanced to 5544
+ sequence tr_etoomuch_id_seq advanced to 5577
+ sequence tr_etoomuch_id_seq advanced to 5610
+ sequence tr_etoomuch_id_seq advanced to 5643
+ sequence tr_etoomuch_id_seq advanced to 5676
+ sequence tr_etoomuch_id_seq advanced to 5709
+ sequence tr_etoomuch_id_seq advanced to 5742
+ sequence tr_etoomuch_id_seq advanced to 5775
+ sequence tr_etoomuch_id_seq advanced to 5808
+ sequence tr_etoomuch_id_seq advanced to 5841
+ sequence tr_etoomuch_id_seq advanced to 5874
+ sequence tr_etoomuch_id_seq advanced to 5907
+ sequence tr_etoomuch_id_seq advanced to 5940
+ sequence tr_etoomuch_id_seq advanced to 5973
+ sequence tr_etoomuch_id_seq advanced to 6006
+ sequence tr_etoomuch_id_seq advanced to 6039
+ sequence tr_etoomuch_id_seq advanced to 6072
+ sequence tr_etoomuch_id_seq advanced to 6105
+ sequence tr_etoomuch_id_seq advanced to 6138
+ sequence tr_etoomuch_id_seq advanced to 6171
+ sequence tr_etoomuch_id_seq advanced to 6204
+ sequence tr_etoomuch_id_seq advanced to 6237
+ sequence tr_etoomuch_id_seq advanced to 6270
+ sequence tr_etoomuch_id_seq advanced to 6303
+ sequence tr_etoomuch_id_seq advanced to 6336
+ sequence tr_etoomuch_id_seq advanced to 6369
+ sequence tr_etoomuch_id_seq advanced to 6402
+ sequence tr_etoomuch_id_seq advanced to 6435
+ sequence tr_etoomuch_id_seq advanced to 6468
+ sequence tr_etoomuch_id_seq advanced to 6501
+ sequence tr_etoomuch_id_seq advanced to 6534
+ sequence tr_etoomuch_id_seq advanced to 6567
+ sequence tr_etoomuch_id_seq advanced to 6600
+ sequence tr_etoomuch_id_seq advanced to 6633
+ sequence tr_etoomuch_id_seq advanced to 6666
+ sequence tr_etoomuch_id_seq advanced to 6699
+ sequence tr_etoomuch_id_seq advanced to 6732
+ sequence tr_etoomuch_id_seq advanced to 6765
+ sequence tr_etoomuch_id_seq advanced to 6798
+ sequence tr_etoomuch_id_seq advanced to 6831
+ sequence tr_etoomuch_id_seq advanced to 6864
+ sequence tr_etoomuch_id_seq advanced to 6897
+ sequence tr_etoomuch_id_seq advanced to 6930
+ sequence tr_etoomuch_id_seq advanced to 6963
+ sequence tr_etoomuch_id_seq advanced to 6996
+ sequence tr_etoomuch_id_seq advanced to 7029
+ sequence tr_etoomuch_id_seq advanced to 7062
+ sequence tr_etoomuch_id_seq advanced to 7095
+ sequence tr_etoomuch_id_seq advanced to 7128
+ sequence tr_etoomuch_id_seq advanced to 7161
+ sequence tr_etoomuch_id_seq advanced to 7194
+ sequence tr_etoomuch_id_seq advanced to 7227
+ sequence tr_etoomuch_id_seq advanced to 7260
+ sequence tr_etoomuch_id_seq advanced to 7293
+ sequence tr_etoomuch_id_seq advanced to 7326
+ sequence tr_etoomuch_id_seq advanced to 7359
+ sequence tr_etoomuch_id_seq advanced to 7392
+ sequence tr_etoomuch_id_seq advanced to 7425
+ sequence tr_etoomuch_id_seq advanced to 7458
+ sequence tr_etoomuch_id_seq advanced to 7491
+ sequence tr_etoomuch_id_seq advanced to 7524
+ sequence tr_etoomuch_id_seq advanced to 7557
+ sequence tr_etoomuch_id_seq advanced to 7590
+ sequence tr_etoomuch_id_seq advanced to 7623
+ sequence tr_etoomuch_id_seq advanced to 7656
+ sequence tr_etoomuch_id_seq advanced to 7689
+ sequence tr_etoomuch_id_seq advanced to 7722
+ sequence tr_etoomuch_id_seq advanced to 7755
+ sequence tr_etoomuch_id_seq advanced to 7788
+ sequence tr_etoomuch_id_seq advanced to 7821
+ sequence tr_etoomuch_id_seq advanced to 7854
+ sequence tr_etoomuch_id_seq advanced to 7887
+ sequence tr_etoomuch_id_seq advanced to 7920
+ sequence tr_etoomuch_id_seq advanced to 7953
+ sequence tr_etoomuch_id_seq advanced to 7986
+ sequence tr_etoomuch_id_seq advanced to 8019
+ sequence tr_etoomuch_id_seq advanced to 8052
+ sequence tr_etoomuch_id_seq advanced to 8085
+ sequence tr_etoomuch_id_seq advanced to 8118
+ sequence tr_etoomuch_id_seq advanced to 8151
+ sequence tr_etoomuch_id_seq advanced to 8184
+ sequence tr_etoomuch_id_seq advanced to 8217
+ sequence tr_etoomuch_id_seq advanced to 8250
+ sequence tr_etoomuch_id_seq advanced to 8283
+ sequence tr_etoomuch_id_seq advanced to 8316
+ sequence tr_etoomuch_id_seq advanced to 8349
+ sequence tr_etoomuch_id_seq advanced to 8382
+ sequence tr_etoomuch_id_seq advanced to 8415
+ sequence tr_etoomuch_id_seq advanced to 8448
+ sequence tr_etoomuch_id_seq advanced to 8481
+ sequence tr_etoomuch_id_seq advanced to 8514
+ sequence tr_etoomuch_id_seq advanced to 8547
+ sequence tr_etoomuch_id_seq advanced to 8580
+ sequence tr_etoomuch_id_seq advanced to 8613
+ sequence tr_etoomuch_id_seq advanced to 8646
+ sequence tr_etoomuch_id_seq advanced to 8679
+ sequence tr_etoomuch_id_seq advanced to 8712
+ sequence tr_etoomuch_id_seq advanced to 8745
+ sequence tr_etoomuch_id_seq advanced to 8778
+ sequence tr_etoomuch_id_seq advanced to 8811
+ sequence tr_etoomuch_id_seq advanced to 8844
+ sequence tr_etoomuch_id_seq advanced to 8877
+ sequence tr_etoomuch_id_seq advanced to 8910
+ sequence tr_etoomuch_id_seq advanced to 8943
+ sequence tr_etoomuch_id_seq advanced to 8976
+ sequence tr_etoomuch_id_seq advanced to 9009
+ sequence tr_etoomuch_id_seq advanced to 9042
+ sequence tr_etoomuch_id_seq advanced to 9075
+ sequence tr_etoomuch_id_seq advanced to 9108
+ sequence tr_etoomuch_id_seq advanced to 9141
+ sequence tr_etoomuch_id_seq advanced to 9174
+ sequence tr_etoomuch_id_seq advanced to 9207
+ sequence tr_etoomuch_id_seq advanced to 9240
+ sequence tr_etoomuch_id_seq advanced to 9273
+ sequence tr_etoomuch_id_seq advanced to 9306
+ sequence tr_etoomuch_id_seq advanced to 9339
+ sequence tr_etoomuch_id_seq advanced to 9372
+ sequence tr_etoomuch_id_seq advanced to 9405
+ sequence tr_etoomuch_id_seq advanced to 9438
+ sequence tr_etoomuch_id_seq advanced to 9471
+ sequence tr_etoomuch_id_seq advanced to 9504
+ sequence tr_etoomuch_id_seq advanced to 9537
+ sequence tr_etoomuch_id_seq advanced to 9570
+ sequence tr_etoomuch_id_seq advanced to 9603
+ sequence tr_etoomuch_id_seq advanced to 9636
+ sequence tr_etoomuch_id_seq advanced to 9669
+ sequence tr_etoomuch_id_seq advanced to 9702
+ sequence tr_etoomuch_id_seq advanced to 9735
+ sequence tr_etoomuch_id_seq advanced to 9768
+ sequence tr_etoomuch_id_seq advanced to 9801
+ sequence tr_etoomuch_id_seq advanced to 9834
+ sequence tr_etoomuch_id_seq advanced to 9867
+ sequence tr_etoomuch_id_seq advanced to 9900
+ sequence tr_etoomuch_id_seq advanced to 9933
+ sequence tr_etoomuch_id_seq advanced to 9966
+ sequence tr_etoomuch_id_seq advanced to 9999
+ sequence tr_etoomuch_id_seq advanced to 10032
+ sequence tr_etoomuch_id_seq advanced to 10065
+ sequence tr_etoomuch_id_seq advanced to 10098
+ sequence tr_etoomuch_id_seq advanced to 10131
+ sequence tr_etoomuch_id_seq advanced to 10164
+ sequence tr_etoomuch_id_seq advanced to 10197
+ sequence tr_etoomuch_id_seq advanced to 10230
+ sequence tr_etoomuch_id_seq advanced to 10263
+ sequence tr_sub_id_seq advanced to 1
+ sequence tr_sub_id_seq advanced to 1
+ sequence tr_sub_id_seq advanced to 33
  BEGIN
  table public.tr_sub: INSERT: id[integer]:1 path[text]:'1-top-#1'
  table public.tr_sub: INSERT: id[integer]:2 path[text]:'1-top-1-#1'
@@ -287,7 +638,7 @@ SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'inc
  table public.tr_sub: INSERT: id[integer]:5 path[text]:'1-top-2-1-#2'
  table public.tr_sub: INSERT: id[integer]:6 path[text]:'1-top-2-#1'
  COMMIT
-(8 rows)
+(333 rows)
 
 -- check that we handle xlog assignments correctly
 BEGIN;
@@ -318,13 +669,338 @@ COMMIT;
 SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
                                   data                                  
 ------------------------------------------------------------------------
+ sequence replication_example_id_seq advanced to 1
+ sequence replication_example_id_seq advanced to 1
+ sequence replication_example_id_seq advanced to 33
+ sequence tr_unique_id2_seq advanced to 1
+ sequence tr_unique_id2_seq advanced to 1
+ sequence tr_unique_id2_seq advanced to 33
+ sequence tr_pkey_id_seq advanced to 1
+ sequence tr_pkey_id_seq advanced to 33
+ sequence tr_pkey_id_seq advanced to 1
+ sequence tr_etoomuch_id_seq advanced to 1
+ sequence tr_etoomuch_id_seq advanced to 1
+ sequence tr_etoomuch_id_seq advanced to 33
+ sequence tr_etoomuch_id_seq advanced to 66
+ sequence tr_etoomuch_id_seq advanced to 99
+ sequence tr_etoomuch_id_seq advanced to 132
+ sequence tr_etoomuch_id_seq advanced to 165
+ sequence tr_etoomuch_id_seq advanced to 198
+ sequence tr_etoomuch_id_seq advanced to 231
+ sequence tr_etoomuch_id_seq advanced to 264
+ sequence tr_etoomuch_id_seq advanced to 297
+ sequence tr_etoomuch_id_seq advanced to 330
+ sequence tr_etoomuch_id_seq advanced to 363
+ sequence tr_etoomuch_id_seq advanced to 396
+ sequence tr_etoomuch_id_seq advanced to 429
+ sequence tr_etoomuch_id_seq advanced to 462
+ sequence tr_etoomuch_id_seq advanced to 495
+ sequence tr_etoomuch_id_seq advanced to 528
+ sequence tr_etoomuch_id_seq advanced to 561
+ sequence tr_etoomuch_id_seq advanced to 594
+ sequence tr_etoomuch_id_seq advanced to 627
+ sequence tr_etoomuch_id_seq advanced to 660
+ sequence tr_etoomuch_id_seq advanced to 693
+ sequence tr_etoomuch_id_seq advanced to 726
+ sequence tr_etoomuch_id_seq advanced to 759
+ sequence tr_etoomuch_id_seq advanced to 792
+ sequence tr_etoomuch_id_seq advanced to 825
+ sequence tr_etoomuch_id_seq advanced to 858
+ sequence tr_etoomuch_id_seq advanced to 891
+ sequence tr_etoomuch_id_seq advanced to 924
+ sequence tr_etoomuch_id_seq advanced to 957
+ sequence tr_etoomuch_id_seq advanced to 990
+ sequence tr_etoomuch_id_seq advanced to 1023
+ sequence tr_etoomuch_id_seq advanced to 1056
+ sequence tr_etoomuch_id_seq advanced to 1089
+ sequence tr_etoomuch_id_seq advanced to 1122
+ sequence tr_etoomuch_id_seq advanced to 1155
+ sequence tr_etoomuch_id_seq advanced to 1188
+ sequence tr_etoomuch_id_seq advanced to 1221
+ sequence tr_etoomuch_id_seq advanced to 1254
+ sequence tr_etoomuch_id_seq advanced to 1287
+ sequence tr_etoomuch_id_seq advanced to 1320
+ sequence tr_etoomuch_id_seq advanced to 1353
+ sequence tr_etoomuch_id_seq advanced to 1386
+ sequence tr_etoomuch_id_seq advanced to 1419
+ sequence tr_etoomuch_id_seq advanced to 1452
+ sequence tr_etoomuch_id_seq advanced to 1485
+ sequence tr_etoomuch_id_seq advanced to 1518
+ sequence tr_etoomuch_id_seq advanced to 1551
+ sequence tr_etoomuch_id_seq advanced to 1584
+ sequence tr_etoomuch_id_seq advanced to 1617
+ sequence tr_etoomuch_id_seq advanced to 1650
+ sequence tr_etoomuch_id_seq advanced to 1683
+ sequence tr_etoomuch_id_seq advanced to 1716
+ sequence tr_etoomuch_id_seq advanced to 1749
+ sequence tr_etoomuch_id_seq advanced to 1782
+ sequence tr_etoomuch_id_seq advanced to 1815
+ sequence tr_etoomuch_id_seq advanced to 1848
+ sequence tr_etoomuch_id_seq advanced to 1881
+ sequence tr_etoomuch_id_seq advanced to 1914
+ sequence tr_etoomuch_id_seq advanced to 1947
+ sequence tr_etoomuch_id_seq advanced to 1980
+ sequence tr_etoomuch_id_seq advanced to 2013
+ sequence tr_etoomuch_id_seq advanced to 2046
+ sequence tr_etoomuch_id_seq advanced to 2079
+ sequence tr_etoomuch_id_seq advanced to 2112
+ sequence tr_etoomuch_id_seq advanced to 2145
+ sequence tr_etoomuch_id_seq advanced to 2178
+ sequence tr_etoomuch_id_seq advanced to 2211
+ sequence tr_etoomuch_id_seq advanced to 2244
+ sequence tr_etoomuch_id_seq advanced to 2277
+ sequence tr_etoomuch_id_seq advanced to 2310
+ sequence tr_etoomuch_id_seq advanced to 2343
+ sequence tr_etoomuch_id_seq advanced to 2376
+ sequence tr_etoomuch_id_seq advanced to 2409
+ sequence tr_etoomuch_id_seq advanced to 2442
+ sequence tr_etoomuch_id_seq advanced to 2475
+ sequence tr_etoomuch_id_seq advanced to 2508
+ sequence tr_etoomuch_id_seq advanced to 2541
+ sequence tr_etoomuch_id_seq advanced to 2574
+ sequence tr_etoomuch_id_seq advanced to 2607
+ sequence tr_etoomuch_id_seq advanced to 2640
+ sequence tr_etoomuch_id_seq advanced to 2673
+ sequence tr_etoomuch_id_seq advanced to 2706
+ sequence tr_etoomuch_id_seq advanced to 2739
+ sequence tr_etoomuch_id_seq advanced to 2772
+ sequence tr_etoomuch_id_seq advanced to 2805
+ sequence tr_etoomuch_id_seq advanced to 2838
+ sequence tr_etoomuch_id_seq advanced to 2871
+ sequence tr_etoomuch_id_seq advanced to 2904
+ sequence tr_etoomuch_id_seq advanced to 2937
+ sequence tr_etoomuch_id_seq advanced to 2970
+ sequence tr_etoomuch_id_seq advanced to 3003
+ sequence tr_etoomuch_id_seq advanced to 3036
+ sequence tr_etoomuch_id_seq advanced to 3069
+ sequence tr_etoomuch_id_seq advanced to 3102
+ sequence tr_etoomuch_id_seq advanced to 3135
+ sequence tr_etoomuch_id_seq advanced to 3168
+ sequence tr_etoomuch_id_seq advanced to 3201
+ sequence tr_etoomuch_id_seq advanced to 3234
+ sequence tr_etoomuch_id_seq advanced to 3267
+ sequence tr_etoomuch_id_seq advanced to 3300
+ sequence tr_etoomuch_id_seq advanced to 3333
+ sequence tr_etoomuch_id_seq advanced to 3366
+ sequence tr_etoomuch_id_seq advanced to 3399
+ sequence tr_etoomuch_id_seq advanced to 3432
+ sequence tr_etoomuch_id_seq advanced to 3465
+ sequence tr_etoomuch_id_seq advanced to 3498
+ sequence tr_etoomuch_id_seq advanced to 3531
+ sequence tr_etoomuch_id_seq advanced to 3564
+ sequence tr_etoomuch_id_seq advanced to 3597
+ sequence tr_etoomuch_id_seq advanced to 3630
+ sequence tr_etoomuch_id_seq advanced to 3663
+ sequence tr_etoomuch_id_seq advanced to 3696
+ sequence tr_etoomuch_id_seq advanced to 3729
+ sequence tr_etoomuch_id_seq advanced to 3762
+ sequence tr_etoomuch_id_seq advanced to 3795
+ sequence tr_etoomuch_id_seq advanced to 3828
+ sequence tr_etoomuch_id_seq advanced to 3861
+ sequence tr_etoomuch_id_seq advanced to 3894
+ sequence tr_etoomuch_id_seq advanced to 3927
+ sequence tr_etoomuch_id_seq advanced to 3960
+ sequence tr_etoomuch_id_seq advanced to 3993
+ sequence tr_etoomuch_id_seq advanced to 4026
+ sequence tr_etoomuch_id_seq advanced to 4059
+ sequence tr_etoomuch_id_seq advanced to 4092
+ sequence tr_etoomuch_id_seq advanced to 4125
+ sequence tr_etoomuch_id_seq advanced to 4158
+ sequence tr_etoomuch_id_seq advanced to 4191
+ sequence tr_etoomuch_id_seq advanced to 4224
+ sequence tr_etoomuch_id_seq advanced to 4257
+ sequence tr_etoomuch_id_seq advanced to 4290
+ sequence tr_etoomuch_id_seq advanced to 4323
+ sequence tr_etoomuch_id_seq advanced to 4356
+ sequence tr_etoomuch_id_seq advanced to 4389
+ sequence tr_etoomuch_id_seq advanced to 4422
+ sequence tr_etoomuch_id_seq advanced to 4455
+ sequence tr_etoomuch_id_seq advanced to 4488
+ sequence tr_etoomuch_id_seq advanced to 4521
+ sequence tr_etoomuch_id_seq advanced to 4554
+ sequence tr_etoomuch_id_seq advanced to 4587
+ sequence tr_etoomuch_id_seq advanced to 4620
+ sequence tr_etoomuch_id_seq advanced to 4653
+ sequence tr_etoomuch_id_seq advanced to 4686
+ sequence tr_etoomuch_id_seq advanced to 4719
+ sequence tr_etoomuch_id_seq advanced to 4752
+ sequence tr_etoomuch_id_seq advanced to 4785
+ sequence tr_etoomuch_id_seq advanced to 4818
+ sequence tr_etoomuch_id_seq advanced to 4851
+ sequence tr_etoomuch_id_seq advanced to 4884
+ sequence tr_etoomuch_id_seq advanced to 4917
+ sequence tr_etoomuch_id_seq advanced to 4950
+ sequence tr_etoomuch_id_seq advanced to 4983
+ sequence tr_etoomuch_id_seq advanced to 5016
+ sequence tr_etoomuch_id_seq advanced to 5049
+ sequence tr_etoomuch_id_seq advanced to 5082
+ sequence tr_etoomuch_id_seq advanced to 5115
+ sequence tr_etoomuch_id_seq advanced to 5148
+ sequence tr_etoomuch_id_seq advanced to 5181
+ sequence tr_etoomuch_id_seq advanced to 5214
+ sequence tr_etoomuch_id_seq advanced to 5247
+ sequence tr_etoomuch_id_seq advanced to 5280
+ sequence tr_etoomuch_id_seq advanced to 5313
+ sequence tr_etoomuch_id_seq advanced to 5346
+ sequence tr_etoomuch_id_seq advanced to 5379
+ sequence tr_etoomuch_id_seq advanced to 5412
+ sequence tr_etoomuch_id_seq advanced to 5445
+ sequence tr_etoomuch_id_seq advanced to 5478
+ sequence tr_etoomuch_id_seq advanced to 5511
+ sequence tr_etoomuch_id_seq advanced to 5544
+ sequence tr_etoomuch_id_seq advanced to 5577
+ sequence tr_etoomuch_id_seq advanced to 5610
+ sequence tr_etoomuch_id_seq advanced to 5643
+ sequence tr_etoomuch_id_seq advanced to 5676
+ sequence tr_etoomuch_id_seq advanced to 5709
+ sequence tr_etoomuch_id_seq advanced to 5742
+ sequence tr_etoomuch_id_seq advanced to 5775
+ sequence tr_etoomuch_id_seq advanced to 5808
+ sequence tr_etoomuch_id_seq advanced to 5841
+ sequence tr_etoomuch_id_seq advanced to 5874
+ sequence tr_etoomuch_id_seq advanced to 5907
+ sequence tr_etoomuch_id_seq advanced to 5940
+ sequence tr_etoomuch_id_seq advanced to 5973
+ sequence tr_etoomuch_id_seq advanced to 6006
+ sequence tr_etoomuch_id_seq advanced to 6039
+ sequence tr_etoomuch_id_seq advanced to 6072
+ sequence tr_etoomuch_id_seq advanced to 6105
+ sequence tr_etoomuch_id_seq advanced to 6138
+ sequence tr_etoomuch_id_seq advanced to 6171
+ sequence tr_etoomuch_id_seq advanced to 6204
+ sequence tr_etoomuch_id_seq advanced to 6237
+ sequence tr_etoomuch_id_seq advanced to 6270
+ sequence tr_etoomuch_id_seq advanced to 6303
+ sequence tr_etoomuch_id_seq advanced to 6336
+ sequence tr_etoomuch_id_seq advanced to 6369
+ sequence tr_etoomuch_id_seq advanced to 6402
+ sequence tr_etoomuch_id_seq advanced to 6435
+ sequence tr_etoomuch_id_seq advanced to 6468
+ sequence tr_etoomuch_id_seq advanced to 6501
+ sequence tr_etoomuch_id_seq advanced to 6534
+ sequence tr_etoomuch_id_seq advanced to 6567
+ sequence tr_etoomuch_id_seq advanced to 6600
+ sequence tr_etoomuch_id_seq advanced to 6633
+ sequence tr_etoomuch_id_seq advanced to 6666
+ sequence tr_etoomuch_id_seq advanced to 6699
+ sequence tr_etoomuch_id_seq advanced to 6732
+ sequence tr_etoomuch_id_seq advanced to 6765
+ sequence tr_etoomuch_id_seq advanced to 6798
+ sequence tr_etoomuch_id_seq advanced to 6831
+ sequence tr_etoomuch_id_seq advanced to 6864
+ sequence tr_etoomuch_id_seq advanced to 6897
+ sequence tr_etoomuch_id_seq advanced to 6930
+ sequence tr_etoomuch_id_seq advanced to 6963
+ sequence tr_etoomuch_id_seq advanced to 6996
+ sequence tr_etoomuch_id_seq advanced to 7029
+ sequence tr_etoomuch_id_seq advanced to 7062
+ sequence tr_etoomuch_id_seq advanced to 7095
+ sequence tr_etoomuch_id_seq advanced to 7128
+ sequence tr_etoomuch_id_seq advanced to 7161
+ sequence tr_etoomuch_id_seq advanced to 7194
+ sequence tr_etoomuch_id_seq advanced to 7227
+ sequence tr_etoomuch_id_seq advanced to 7260
+ sequence tr_etoomuch_id_seq advanced to 7293
+ sequence tr_etoomuch_id_seq advanced to 7326
+ sequence tr_etoomuch_id_seq advanced to 7359
+ sequence tr_etoomuch_id_seq advanced to 7392
+ sequence tr_etoomuch_id_seq advanced to 7425
+ sequence tr_etoomuch_id_seq advanced to 7458
+ sequence tr_etoomuch_id_seq advanced to 7491
+ sequence tr_etoomuch_id_seq advanced to 7524
+ sequence tr_etoomuch_id_seq advanced to 7557
+ sequence tr_etoomuch_id_seq advanced to 7590
+ sequence tr_etoomuch_id_seq advanced to 7623
+ sequence tr_etoomuch_id_seq advanced to 7656
+ sequence tr_etoomuch_id_seq advanced to 7689
+ sequence tr_etoomuch_id_seq advanced to 7722
+ sequence tr_etoomuch_id_seq advanced to 7755
+ sequence tr_etoomuch_id_seq advanced to 7788
+ sequence tr_etoomuch_id_seq advanced to 7821
+ sequence tr_etoomuch_id_seq advanced to 7854
+ sequence tr_etoomuch_id_seq advanced to 7887
+ sequence tr_etoomuch_id_seq advanced to 7920
+ sequence tr_etoomuch_id_seq advanced to 7953
+ sequence tr_etoomuch_id_seq advanced to 7986
+ sequence tr_etoomuch_id_seq advanced to 8019
+ sequence tr_etoomuch_id_seq advanced to 8052
+ sequence tr_etoomuch_id_seq advanced to 8085
+ sequence tr_etoomuch_id_seq advanced to 8118
+ sequence tr_etoomuch_id_seq advanced to 8151
+ sequence tr_etoomuch_id_seq advanced to 8184
+ sequence tr_etoomuch_id_seq advanced to 8217
+ sequence tr_etoomuch_id_seq advanced to 8250
+ sequence tr_etoomuch_id_seq advanced to 8283
+ sequence tr_etoomuch_id_seq advanced to 8316
+ sequence tr_etoomuch_id_seq advanced to 8349
+ sequence tr_etoomuch_id_seq advanced to 8382
+ sequence tr_etoomuch_id_seq advanced to 8415
+ sequence tr_etoomuch_id_seq advanced to 8448
+ sequence tr_etoomuch_id_seq advanced to 8481
+ sequence tr_etoomuch_id_seq advanced to 8514
+ sequence tr_etoomuch_id_seq advanced to 8547
+ sequence tr_etoomuch_id_seq advanced to 8580
+ sequence tr_etoomuch_id_seq advanced to 8613
+ sequence tr_etoomuch_id_seq advanced to 8646
+ sequence tr_etoomuch_id_seq advanced to 8679
+ sequence tr_etoomuch_id_seq advanced to 8712
+ sequence tr_etoomuch_id_seq advanced to 8745
+ sequence tr_etoomuch_id_seq advanced to 8778
+ sequence tr_etoomuch_id_seq advanced to 8811
+ sequence tr_etoomuch_id_seq advanced to 8844
+ sequence tr_etoomuch_id_seq advanced to 8877
+ sequence tr_etoomuch_id_seq advanced to 8910
+ sequence tr_etoomuch_id_seq advanced to 8943
+ sequence tr_etoomuch_id_seq advanced to 8976
+ sequence tr_etoomuch_id_seq advanced to 9009
+ sequence tr_etoomuch_id_seq advanced to 9042
+ sequence tr_etoomuch_id_seq advanced to 9075
+ sequence tr_etoomuch_id_seq advanced to 9108
+ sequence tr_etoomuch_id_seq advanced to 9141
+ sequence tr_etoomuch_id_seq advanced to 9174
+ sequence tr_etoomuch_id_seq advanced to 9207
+ sequence tr_etoomuch_id_seq advanced to 9240
+ sequence tr_etoomuch_id_seq advanced to 9273
+ sequence tr_etoomuch_id_seq advanced to 9306
+ sequence tr_etoomuch_id_seq advanced to 9339
+ sequence tr_etoomuch_id_seq advanced to 9372
+ sequence tr_etoomuch_id_seq advanced to 9405
+ sequence tr_etoomuch_id_seq advanced to 9438
+ sequence tr_etoomuch_id_seq advanced to 9471
+ sequence tr_etoomuch_id_seq advanced to 9504
+ sequence tr_etoomuch_id_seq advanced to 9537
+ sequence tr_etoomuch_id_seq advanced to 9570
+ sequence tr_etoomuch_id_seq advanced to 9603
+ sequence tr_etoomuch_id_seq advanced to 9636
+ sequence tr_etoomuch_id_seq advanced to 9669
+ sequence tr_etoomuch_id_seq advanced to 9702
+ sequence tr_etoomuch_id_seq advanced to 9735
+ sequence tr_etoomuch_id_seq advanced to 9768
+ sequence tr_etoomuch_id_seq advanced to 9801
+ sequence tr_etoomuch_id_seq advanced to 9834
+ sequence tr_etoomuch_id_seq advanced to 9867
+ sequence tr_etoomuch_id_seq advanced to 9900
+ sequence tr_etoomuch_id_seq advanced to 9933
+ sequence tr_etoomuch_id_seq advanced to 9966
+ sequence tr_etoomuch_id_seq advanced to 9999
+ sequence tr_etoomuch_id_seq advanced to 10032
+ sequence tr_etoomuch_id_seq advanced to 10065
+ sequence tr_etoomuch_id_seq advanced to 10098
+ sequence tr_etoomuch_id_seq advanced to 10131
+ sequence tr_etoomuch_id_seq advanced to 10164
+ sequence tr_etoomuch_id_seq advanced to 10197
+ sequence tr_etoomuch_id_seq advanced to 10230
+ sequence tr_etoomuch_id_seq advanced to 10263
+ sequence tr_sub_id_seq advanced to 1
+ sequence tr_sub_id_seq advanced to 1
+ sequence tr_sub_id_seq advanced to 33
  BEGIN
  table public.tr_sub: INSERT: id[integer]:7 path[text]:'2-top-1...--#1'
  table public.tr_sub: INSERT: id[integer]:8 path[text]:'2-top-1...--#2'
  table public.tr_sub: INSERT: id[integer]:9 path[text]:'2-top-1...--#3'
  table public.tr_sub: INSERT: id[integer]:10 path[text]:'2-top-#1'
  COMMIT
-(6 rows)
+(331 rows)
 
 -- make sure rollbacked subtransactions aren't decoded
 BEGIN;
@@ -339,12 +1015,337 @@ COMMIT;
 SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
                                  data                                  
 -----------------------------------------------------------------------
+ sequence replication_example_id_seq advanced to 1
+ sequence replication_example_id_seq advanced to 1
+ sequence replication_example_id_seq advanced to 33
+ sequence tr_unique_id2_seq advanced to 1
+ sequence tr_unique_id2_seq advanced to 1
+ sequence tr_unique_id2_seq advanced to 33
+ sequence tr_pkey_id_seq advanced to 1
+ sequence tr_pkey_id_seq advanced to 33
+ sequence tr_pkey_id_seq advanced to 1
+ sequence tr_etoomuch_id_seq advanced to 1
+ sequence tr_etoomuch_id_seq advanced to 1
+ sequence tr_etoomuch_id_seq advanced to 33
+ sequence tr_etoomuch_id_seq advanced to 66
+ sequence tr_etoomuch_id_seq advanced to 99
+ sequence tr_etoomuch_id_seq advanced to 132
+ sequence tr_etoomuch_id_seq advanced to 165
+ sequence tr_etoomuch_id_seq advanced to 198
+ sequence tr_etoomuch_id_seq advanced to 231
+ sequence tr_etoomuch_id_seq advanced to 264
+ sequence tr_etoomuch_id_seq advanced to 297
+ sequence tr_etoomuch_id_seq advanced to 330
+ sequence tr_etoomuch_id_seq advanced to 363
+ sequence tr_etoomuch_id_seq advanced to 396
+ sequence tr_etoomuch_id_seq advanced to 429
+ sequence tr_etoomuch_id_seq advanced to 462
+ sequence tr_etoomuch_id_seq advanced to 495
+ sequence tr_etoomuch_id_seq advanced to 528
+ sequence tr_etoomuch_id_seq advanced to 561
+ sequence tr_etoomuch_id_seq advanced to 594
+ sequence tr_etoomuch_id_seq advanced to 627
+ sequence tr_etoomuch_id_seq advanced to 660
+ sequence tr_etoomuch_id_seq advanced to 693
+ sequence tr_etoomuch_id_seq advanced to 726
+ sequence tr_etoomuch_id_seq advanced to 759
+ sequence tr_etoomuch_id_seq advanced to 792
+ sequence tr_etoomuch_id_seq advanced to 825
+ sequence tr_etoomuch_id_seq advanced to 858
+ sequence tr_etoomuch_id_seq advanced to 891
+ sequence tr_etoomuch_id_seq advanced to 924
+ sequence tr_etoomuch_id_seq advanced to 957
+ sequence tr_etoomuch_id_seq advanced to 990
+ sequence tr_etoomuch_id_seq advanced to 1023
+ sequence tr_etoomuch_id_seq advanced to 1056
+ sequence tr_etoomuch_id_seq advanced to 1089
+ sequence tr_etoomuch_id_seq advanced to 1122
+ sequence tr_etoomuch_id_seq advanced to 1155
+ sequence tr_etoomuch_id_seq advanced to 1188
+ sequence tr_etoomuch_id_seq advanced to 1221
+ sequence tr_etoomuch_id_seq advanced to 1254
+ sequence tr_etoomuch_id_seq advanced to 1287
+ sequence tr_etoomuch_id_seq advanced to 1320
+ sequence tr_etoomuch_id_seq advanced to 1353
+ sequence tr_etoomuch_id_seq advanced to 1386
+ sequence tr_etoomuch_id_seq advanced to 1419
+ sequence tr_etoomuch_id_seq advanced to 1452
+ sequence tr_etoomuch_id_seq advanced to 1485
+ sequence tr_etoomuch_id_seq advanced to 1518
+ sequence tr_etoomuch_id_seq advanced to 1551
+ sequence tr_etoomuch_id_seq advanced to 1584
+ sequence tr_etoomuch_id_seq advanced to 1617
+ sequence tr_etoomuch_id_seq advanced to 1650
+ sequence tr_etoomuch_id_seq advanced to 1683
+ sequence tr_etoomuch_id_seq advanced to 1716
+ sequence tr_etoomuch_id_seq advanced to 1749
+ sequence tr_etoomuch_id_seq advanced to 1782
+ sequence tr_etoomuch_id_seq advanced to 1815
+ sequence tr_etoomuch_id_seq advanced to 1848
+ sequence tr_etoomuch_id_seq advanced to 1881
+ sequence tr_etoomuch_id_seq advanced to 1914
+ sequence tr_etoomuch_id_seq advanced to 1947
+ sequence tr_etoomuch_id_seq advanced to 1980
+ sequence tr_etoomuch_id_seq advanced to 2013
+ sequence tr_etoomuch_id_seq advanced to 2046
+ sequence tr_etoomuch_id_seq advanced to 2079
+ sequence tr_etoomuch_id_seq advanced to 2112
+ sequence tr_etoomuch_id_seq advanced to 2145
+ sequence tr_etoomuch_id_seq advanced to 2178
+ sequence tr_etoomuch_id_seq advanced to 2211
+ sequence tr_etoomuch_id_seq advanced to 2244
+ sequence tr_etoomuch_id_seq advanced to 2277
+ sequence tr_etoomuch_id_seq advanced to 2310
+ sequence tr_etoomuch_id_seq advanced to 2343
+ sequence tr_etoomuch_id_seq advanced to 2376
+ sequence tr_etoomuch_id_seq advanced to 2409
+ sequence tr_etoomuch_id_seq advanced to 2442
+ sequence tr_etoomuch_id_seq advanced to 2475
+ sequence tr_etoomuch_id_seq advanced to 2508
+ sequence tr_etoomuch_id_seq advanced to 2541
+ sequence tr_etoomuch_id_seq advanced to 2574
+ sequence tr_etoomuch_id_seq advanced to 2607
+ sequence tr_etoomuch_id_seq advanced to 2640
+ sequence tr_etoomuch_id_seq advanced to 2673
+ sequence tr_etoomuch_id_seq advanced to 2706
+ sequence tr_etoomuch_id_seq advanced to 2739
+ sequence tr_etoomuch_id_seq advanced to 2772
+ sequence tr_etoomuch_id_seq advanced to 2805
+ sequence tr_etoomuch_id_seq advanced to 2838
+ sequence tr_etoomuch_id_seq advanced to 2871
+ sequence tr_etoomuch_id_seq advanced to 2904
+ sequence tr_etoomuch_id_seq advanced to 2937
+ sequence tr_etoomuch_id_seq advanced to 2970
+ sequence tr_etoomuch_id_seq advanced to 3003
+ sequence tr_etoomuch_id_seq advanced to 3036
+ sequence tr_etoomuch_id_seq advanced to 3069
+ sequence tr_etoomuch_id_seq advanced to 3102
+ sequence tr_etoomuch_id_seq advanced to 3135
+ sequence tr_etoomuch_id_seq advanced to 3168
+ sequence tr_etoomuch_id_seq advanced to 3201
+ sequence tr_etoomuch_id_seq advanced to 3234
+ sequence tr_etoomuch_id_seq advanced to 3267
+ sequence tr_etoomuch_id_seq advanced to 3300
+ sequence tr_etoomuch_id_seq advanced to 3333
+ sequence tr_etoomuch_id_seq advanced to 3366
+ sequence tr_etoomuch_id_seq advanced to 3399
+ sequence tr_etoomuch_id_seq advanced to 3432
+ sequence tr_etoomuch_id_seq advanced to 3465
+ sequence tr_etoomuch_id_seq advanced to 3498
+ sequence tr_etoomuch_id_seq advanced to 3531
+ sequence tr_etoomuch_id_seq advanced to 3564
+ sequence tr_etoomuch_id_seq advanced to 3597
+ sequence tr_etoomuch_id_seq advanced to 3630
+ sequence tr_etoomuch_id_seq advanced to 3663
+ sequence tr_etoomuch_id_seq advanced to 3696
+ sequence tr_etoomuch_id_seq advanced to 3729
+ sequence tr_etoomuch_id_seq advanced to 3762
+ sequence tr_etoomuch_id_seq advanced to 3795
+ sequence tr_etoomuch_id_seq advanced to 3828
+ sequence tr_etoomuch_id_seq advanced to 3861
+ sequence tr_etoomuch_id_seq advanced to 3894
+ sequence tr_etoomuch_id_seq advanced to 3927
+ sequence tr_etoomuch_id_seq advanced to 3960
+ sequence tr_etoomuch_id_seq advanced to 3993
+ sequence tr_etoomuch_id_seq advanced to 4026
+ sequence tr_etoomuch_id_seq advanced to 4059
+ sequence tr_etoomuch_id_seq advanced to 4092
+ sequence tr_etoomuch_id_seq advanced to 4125
+ sequence tr_etoomuch_id_seq advanced to 4158
+ sequence tr_etoomuch_id_seq advanced to 4191
+ sequence tr_etoomuch_id_seq advanced to 4224
+ sequence tr_etoomuch_id_seq advanced to 4257
+ sequence tr_etoomuch_id_seq advanced to 4290
+ sequence tr_etoomuch_id_seq advanced to 4323
+ sequence tr_etoomuch_id_seq advanced to 4356
+ sequence tr_etoomuch_id_seq advanced to 4389
+ sequence tr_etoomuch_id_seq advanced to 4422
+ sequence tr_etoomuch_id_seq advanced to 4455
+ sequence tr_etoomuch_id_seq advanced to 4488
+ sequence tr_etoomuch_id_seq advanced to 4521
+ sequence tr_etoomuch_id_seq advanced to 4554
+ sequence tr_etoomuch_id_seq advanced to 4587
+ sequence tr_etoomuch_id_seq advanced to 4620
+ sequence tr_etoomuch_id_seq advanced to 4653
+ sequence tr_etoomuch_id_seq advanced to 4686
+ sequence tr_etoomuch_id_seq advanced to 4719
+ sequence tr_etoomuch_id_seq advanced to 4752
+ sequence tr_etoomuch_id_seq advanced to 4785
+ sequence tr_etoomuch_id_seq advanced to 4818
+ sequence tr_etoomuch_id_seq advanced to 4851
+ sequence tr_etoomuch_id_seq advanced to 4884
+ sequence tr_etoomuch_id_seq advanced to 4917
+ sequence tr_etoomuch_id_seq advanced to 4950
+ sequence tr_etoomuch_id_seq advanced to 4983
+ sequence tr_etoomuch_id_seq advanced to 5016
+ sequence tr_etoomuch_id_seq advanced to 5049
+ sequence tr_etoomuch_id_seq advanced to 5082
+ sequence tr_etoomuch_id_seq advanced to 5115
+ sequence tr_etoomuch_id_seq advanced to 5148
+ sequence tr_etoomuch_id_seq advanced to 5181
+ sequence tr_etoomuch_id_seq advanced to 5214
+ sequence tr_etoomuch_id_seq advanced to 5247
+ sequence tr_etoomuch_id_seq advanced to 5280
+ sequence tr_etoomuch_id_seq advanced to 5313
+ sequence tr_etoomuch_id_seq advanced to 5346
+ sequence tr_etoomuch_id_seq advanced to 5379
+ sequence tr_etoomuch_id_seq advanced to 5412
+ sequence tr_etoomuch_id_seq advanced to 5445
+ sequence tr_etoomuch_id_seq advanced to 5478
+ sequence tr_etoomuch_id_seq advanced to 5511
+ sequence tr_etoomuch_id_seq advanced to 5544
+ sequence tr_etoomuch_id_seq advanced to 5577
+ sequence tr_etoomuch_id_seq advanced to 5610
+ sequence tr_etoomuch_id_seq advanced to 5643
+ sequence tr_etoomuch_id_seq advanced to 5676
+ sequence tr_etoomuch_id_seq advanced to 5709
+ sequence tr_etoomuch_id_seq advanced to 5742
+ sequence tr_etoomuch_id_seq advanced to 5775
+ sequence tr_etoomuch_id_seq advanced to 5808
+ sequence tr_etoomuch_id_seq advanced to 5841
+ sequence tr_etoomuch_id_seq advanced to 5874
+ sequence tr_etoomuch_id_seq advanced to 5907
+ sequence tr_etoomuch_id_seq advanced to 5940
+ sequence tr_etoomuch_id_seq advanced to 5973
+ sequence tr_etoomuch_id_seq advanced to 6006
+ sequence tr_etoomuch_id_seq advanced to 6039
+ sequence tr_etoomuch_id_seq advanced to 6072
+ sequence tr_etoomuch_id_seq advanced to 6105
+ sequence tr_etoomuch_id_seq advanced to 6138
+ sequence tr_etoomuch_id_seq advanced to 6171
+ sequence tr_etoomuch_id_seq advanced to 6204
+ sequence tr_etoomuch_id_seq advanced to 6237
+ sequence tr_etoomuch_id_seq advanced to 6270
+ sequence tr_etoomuch_id_seq advanced to 6303
+ sequence tr_etoomuch_id_seq advanced to 6336
+ sequence tr_etoomuch_id_seq advanced to 6369
+ sequence tr_etoomuch_id_seq advanced to 6402
+ sequence tr_etoomuch_id_seq advanced to 6435
+ sequence tr_etoomuch_id_seq advanced to 6468
+ sequence tr_etoomuch_id_seq advanced to 6501
+ sequence tr_etoomuch_id_seq advanced to 6534
+ sequence tr_etoomuch_id_seq advanced to 6567
+ sequence tr_etoomuch_id_seq advanced to 6600
+ sequence tr_etoomuch_id_seq advanced to 6633
+ sequence tr_etoomuch_id_seq advanced to 6666
+ sequence tr_etoomuch_id_seq advanced to 6699
+ sequence tr_etoomuch_id_seq advanced to 6732
+ sequence tr_etoomuch_id_seq advanced to 6765
+ sequence tr_etoomuch_id_seq advanced to 6798
+ sequence tr_etoomuch_id_seq advanced to 6831
+ sequence tr_etoomuch_id_seq advanced to 6864
+ sequence tr_etoomuch_id_seq advanced to 6897
+ sequence tr_etoomuch_id_seq advanced to 6930
+ sequence tr_etoomuch_id_seq advanced to 6963
+ sequence tr_etoomuch_id_seq advanced to 6996
+ sequence tr_etoomuch_id_seq advanced to 7029
+ sequence tr_etoomuch_id_seq advanced to 7062
+ sequence tr_etoomuch_id_seq advanced to 7095
+ sequence tr_etoomuch_id_seq advanced to 7128
+ sequence tr_etoomuch_id_seq advanced to 7161
+ sequence tr_etoomuch_id_seq advanced to 7194
+ sequence tr_etoomuch_id_seq advanced to 7227
+ sequence tr_etoomuch_id_seq advanced to 7260
+ sequence tr_etoomuch_id_seq advanced to 7293
+ sequence tr_etoomuch_id_seq advanced to 7326
+ sequence tr_etoomuch_id_seq advanced to 7359
+ sequence tr_etoomuch_id_seq advanced to 7392
+ sequence tr_etoomuch_id_seq advanced to 7425
+ sequence tr_etoomuch_id_seq advanced to 7458
+ sequence tr_etoomuch_id_seq advanced to 7491
+ sequence tr_etoomuch_id_seq advanced to 7524
+ sequence tr_etoomuch_id_seq advanced to 7557
+ sequence tr_etoomuch_id_seq advanced to 7590
+ sequence tr_etoomuch_id_seq advanced to 7623
+ sequence tr_etoomuch_id_seq advanced to 7656
+ sequence tr_etoomuch_id_seq advanced to 7689
+ sequence tr_etoomuch_id_seq advanced to 7722
+ sequence tr_etoomuch_id_seq advanced to 7755
+ sequence tr_etoomuch_id_seq advanced to 7788
+ sequence tr_etoomuch_id_seq advanced to 7821
+ sequence tr_etoomuch_id_seq advanced to 7854
+ sequence tr_etoomuch_id_seq advanced to 7887
+ sequence tr_etoomuch_id_seq advanced to 7920
+ sequence tr_etoomuch_id_seq advanced to 7953
+ sequence tr_etoomuch_id_seq advanced to 7986
+ sequence tr_etoomuch_id_seq advanced to 8019
+ sequence tr_etoomuch_id_seq advanced to 8052
+ sequence tr_etoomuch_id_seq advanced to 8085
+ sequence tr_etoomuch_id_seq advanced to 8118
+ sequence tr_etoomuch_id_seq advanced to 8151
+ sequence tr_etoomuch_id_seq advanced to 8184
+ sequence tr_etoomuch_id_seq advanced to 8217
+ sequence tr_etoomuch_id_seq advanced to 8250
+ sequence tr_etoomuch_id_seq advanced to 8283
+ sequence tr_etoomuch_id_seq advanced to 8316
+ sequence tr_etoomuch_id_seq advanced to 8349
+ sequence tr_etoomuch_id_seq advanced to 8382
+ sequence tr_etoomuch_id_seq advanced to 8415
+ sequence tr_etoomuch_id_seq advanced to 8448
+ sequence tr_etoomuch_id_seq advanced to 8481
+ sequence tr_etoomuch_id_seq advanced to 8514
+ sequence tr_etoomuch_id_seq advanced to 8547
+ sequence tr_etoomuch_id_seq advanced to 8580
+ sequence tr_etoomuch_id_seq advanced to 8613
+ sequence tr_etoomuch_id_seq advanced to 8646
+ sequence tr_etoomuch_id_seq advanced to 8679
+ sequence tr_etoomuch_id_seq advanced to 8712
+ sequence tr_etoomuch_id_seq advanced to 8745
+ sequence tr_etoomuch_id_seq advanced to 8778
+ sequence tr_etoomuch_id_seq advanced to 8811
+ sequence tr_etoomuch_id_seq advanced to 8844
+ sequence tr_etoomuch_id_seq advanced to 8877
+ sequence tr_etoomuch_id_seq advanced to 8910
+ sequence tr_etoomuch_id_seq advanced to 8943
+ sequence tr_etoomuch_id_seq advanced to 8976
+ sequence tr_etoomuch_id_seq advanced to 9009
+ sequence tr_etoomuch_id_seq advanced to 9042
+ sequence tr_etoomuch_id_seq advanced to 9075
+ sequence tr_etoomuch_id_seq advanced to 9108
+ sequence tr_etoomuch_id_seq advanced to 9141
+ sequence tr_etoomuch_id_seq advanced to 9174
+ sequence tr_etoomuch_id_seq advanced to 9207
+ sequence tr_etoomuch_id_seq advanced to 9240
+ sequence tr_etoomuch_id_seq advanced to 9273
+ sequence tr_etoomuch_id_seq advanced to 9306
+ sequence tr_etoomuch_id_seq advanced to 9339
+ sequence tr_etoomuch_id_seq advanced to 9372
+ sequence tr_etoomuch_id_seq advanced to 9405
+ sequence tr_etoomuch_id_seq advanced to 9438
+ sequence tr_etoomuch_id_seq advanced to 9471
+ sequence tr_etoomuch_id_seq advanced to 9504
+ sequence tr_etoomuch_id_seq advanced to 9537
+ sequence tr_etoomuch_id_seq advanced to 9570
+ sequence tr_etoomuch_id_seq advanced to 9603
+ sequence tr_etoomuch_id_seq advanced to 9636
+ sequence tr_etoomuch_id_seq advanced to 9669
+ sequence tr_etoomuch_id_seq advanced to 9702
+ sequence tr_etoomuch_id_seq advanced to 9735
+ sequence tr_etoomuch_id_seq advanced to 9768
+ sequence tr_etoomuch_id_seq advanced to 9801
+ sequence tr_etoomuch_id_seq advanced to 9834
+ sequence tr_etoomuch_id_seq advanced to 9867
+ sequence tr_etoomuch_id_seq advanced to 9900
+ sequence tr_etoomuch_id_seq advanced to 9933
+ sequence tr_etoomuch_id_seq advanced to 9966
+ sequence tr_etoomuch_id_seq advanced to 9999
+ sequence tr_etoomuch_id_seq advanced to 10032
+ sequence tr_etoomuch_id_seq advanced to 10065
+ sequence tr_etoomuch_id_seq advanced to 10098
+ sequence tr_etoomuch_id_seq advanced to 10131
+ sequence tr_etoomuch_id_seq advanced to 10164
+ sequence tr_etoomuch_id_seq advanced to 10197
+ sequence tr_etoomuch_id_seq advanced to 10230
+ sequence tr_etoomuch_id_seq advanced to 10263
+ sequence tr_sub_id_seq advanced to 1
+ sequence tr_sub_id_seq advanced to 1
+ sequence tr_sub_id_seq advanced to 33
  BEGIN
  table public.tr_sub: INSERT: id[integer]:11 path[text]:'3-top-2-#1'
  table public.tr_sub: INSERT: id[integer]:12 path[text]:'3-top-2-1-#1'
  table public.tr_sub: INSERT: id[integer]:14 path[text]:'3-top-2-#2'
  COMMIT
-(5 rows)
+(330 rows)
 
 -- test whether a known, but not yet logged toplevel xact, followed by a
 -- subxact commit is handled correctly
@@ -368,13 +1369,338 @@ COMMIT;
 SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
                                 data                                 
 ---------------------------------------------------------------------
+ sequence replication_example_id_seq advanced to 1
+ sequence replication_example_id_seq advanced to 1
+ sequence replication_example_id_seq advanced to 33
+ sequence tr_unique_id2_seq advanced to 1
+ sequence tr_unique_id2_seq advanced to 1
+ sequence tr_unique_id2_seq advanced to 33
+ sequence tr_pkey_id_seq advanced to 1
+ sequence tr_pkey_id_seq advanced to 33
+ sequence tr_pkey_id_seq advanced to 1
+ sequence tr_etoomuch_id_seq advanced to 1
+ sequence tr_etoomuch_id_seq advanced to 1
+ sequence tr_etoomuch_id_seq advanced to 33
+ sequence tr_etoomuch_id_seq advanced to 66
+ sequence tr_etoomuch_id_seq advanced to 99
+ sequence tr_etoomuch_id_seq advanced to 132
+ sequence tr_etoomuch_id_seq advanced to 165
+ sequence tr_etoomuch_id_seq advanced to 198
+ sequence tr_etoomuch_id_seq advanced to 231
+ sequence tr_etoomuch_id_seq advanced to 264
+ sequence tr_etoomuch_id_seq advanced to 297
+ sequence tr_etoomuch_id_seq advanced to 330
+ sequence tr_etoomuch_id_seq advanced to 363
+ sequence tr_etoomuch_id_seq advanced to 396
+ sequence tr_etoomuch_id_seq advanced to 429
+ sequence tr_etoomuch_id_seq advanced to 462
+ sequence tr_etoomuch_id_seq advanced to 495
+ sequence tr_etoomuch_id_seq advanced to 528
+ sequence tr_etoomuch_id_seq advanced to 561
+ sequence tr_etoomuch_id_seq advanced to 594
+ sequence tr_etoomuch_id_seq advanced to 627
+ sequence tr_etoomuch_id_seq advanced to 660
+ sequence tr_etoomuch_id_seq advanced to 693
+ sequence tr_etoomuch_id_seq advanced to 726
+ sequence tr_etoomuch_id_seq advanced to 759
+ sequence tr_etoomuch_id_seq advanced to 792
+ sequence tr_etoomuch_id_seq advanced to 825
+ sequence tr_etoomuch_id_seq advanced to 858
+ sequence tr_etoomuch_id_seq advanced to 891
+ sequence tr_etoomuch_id_seq advanced to 924
+ sequence tr_etoomuch_id_seq advanced to 957
+ sequence tr_etoomuch_id_seq advanced to 990
+ sequence tr_etoomuch_id_seq advanced to 1023
+ sequence tr_etoomuch_id_seq advanced to 1056
+ sequence tr_etoomuch_id_seq advanced to 1089
+ sequence tr_etoomuch_id_seq advanced to 1122
+ sequence tr_etoomuch_id_seq advanced to 1155
+ sequence tr_etoomuch_id_seq advanced to 1188
+ sequence tr_etoomuch_id_seq advanced to 1221
+ sequence tr_etoomuch_id_seq advanced to 1254
+ sequence tr_etoomuch_id_seq advanced to 1287
+ sequence tr_etoomuch_id_seq advanced to 1320
+ sequence tr_etoomuch_id_seq advanced to 1353
+ sequence tr_etoomuch_id_seq advanced to 1386
+ sequence tr_etoomuch_id_seq advanced to 1419
+ sequence tr_etoomuch_id_seq advanced to 1452
+ sequence tr_etoomuch_id_seq advanced to 1485
+ sequence tr_etoomuch_id_seq advanced to 1518
+ sequence tr_etoomuch_id_seq advanced to 1551
+ sequence tr_etoomuch_id_seq advanced to 1584
+ sequence tr_etoomuch_id_seq advanced to 1617
+ sequence tr_etoomuch_id_seq advanced to 1650
+ sequence tr_etoomuch_id_seq advanced to 1683
+ sequence tr_etoomuch_id_seq advanced to 1716
+ sequence tr_etoomuch_id_seq advanced to 1749
+ sequence tr_etoomuch_id_seq advanced to 1782
+ sequence tr_etoomuch_id_seq advanced to 1815
+ sequence tr_etoomuch_id_seq advanced to 1848
+ sequence tr_etoomuch_id_seq advanced to 1881
+ sequence tr_etoomuch_id_seq advanced to 1914
+ sequence tr_etoomuch_id_seq advanced to 1947
+ sequence tr_etoomuch_id_seq advanced to 1980
+ sequence tr_etoomuch_id_seq advanced to 2013
+ sequence tr_etoomuch_id_seq advanced to 2046
+ sequence tr_etoomuch_id_seq advanced to 2079
+ sequence tr_etoomuch_id_seq advanced to 2112
+ sequence tr_etoomuch_id_seq advanced to 2145
+ sequence tr_etoomuch_id_seq advanced to 2178
+ sequence tr_etoomuch_id_seq advanced to 2211
+ sequence tr_etoomuch_id_seq advanced to 2244
+ sequence tr_etoomuch_id_seq advanced to 2277
+ sequence tr_etoomuch_id_seq advanced to 2310
+ sequence tr_etoomuch_id_seq advanced to 2343
+ sequence tr_etoomuch_id_seq advanced to 2376
+ sequence tr_etoomuch_id_seq advanced to 2409
+ sequence tr_etoomuch_id_seq advanced to 2442
+ sequence tr_etoomuch_id_seq advanced to 2475
+ sequence tr_etoomuch_id_seq advanced to 2508
+ sequence tr_etoomuch_id_seq advanced to 2541
+ sequence tr_etoomuch_id_seq advanced to 2574
+ sequence tr_etoomuch_id_seq advanced to 2607
+ sequence tr_etoomuch_id_seq advanced to 2640
+ sequence tr_etoomuch_id_seq advanced to 2673
+ sequence tr_etoomuch_id_seq advanced to 2706
+ sequence tr_etoomuch_id_seq advanced to 2739
+ sequence tr_etoomuch_id_seq advanced to 2772
+ sequence tr_etoomuch_id_seq advanced to 2805
+ sequence tr_etoomuch_id_seq advanced to 2838
+ sequence tr_etoomuch_id_seq advanced to 2871
+ sequence tr_etoomuch_id_seq advanced to 2904
+ sequence tr_etoomuch_id_seq advanced to 2937
+ sequence tr_etoomuch_id_seq advanced to 2970
+ sequence tr_etoomuch_id_seq advanced to 3003
+ sequence tr_etoomuch_id_seq advanced to 3036
+ sequence tr_etoomuch_id_seq advanced to 3069
+ sequence tr_etoomuch_id_seq advanced to 3102
+ sequence tr_etoomuch_id_seq advanced to 3135
+ sequence tr_etoomuch_id_seq advanced to 3168
+ sequence tr_etoomuch_id_seq advanced to 3201
+ sequence tr_etoomuch_id_seq advanced to 3234
+ sequence tr_etoomuch_id_seq advanced to 3267
+ sequence tr_etoomuch_id_seq advanced to 3300
+ sequence tr_etoomuch_id_seq advanced to 3333
+ sequence tr_etoomuch_id_seq advanced to 3366
+ sequence tr_etoomuch_id_seq advanced to 3399
+ sequence tr_etoomuch_id_seq advanced to 3432
+ sequence tr_etoomuch_id_seq advanced to 3465
+ sequence tr_etoomuch_id_seq advanced to 3498
+ sequence tr_etoomuch_id_seq advanced to 3531
+ sequence tr_etoomuch_id_seq advanced to 3564
+ sequence tr_etoomuch_id_seq advanced to 3597
+ sequence tr_etoomuch_id_seq advanced to 3630
+ sequence tr_etoomuch_id_seq advanced to 3663
+ sequence tr_etoomuch_id_seq advanced to 3696
+ sequence tr_etoomuch_id_seq advanced to 3729
+ sequence tr_etoomuch_id_seq advanced to 3762
+ sequence tr_etoomuch_id_seq advanced to 3795
+ sequence tr_etoomuch_id_seq advanced to 3828
+ sequence tr_etoomuch_id_seq advanced to 3861
+ sequence tr_etoomuch_id_seq advanced to 3894
+ sequence tr_etoomuch_id_seq advanced to 3927
+ sequence tr_etoomuch_id_seq advanced to 3960
+ sequence tr_etoomuch_id_seq advanced to 3993
+ sequence tr_etoomuch_id_seq advanced to 4026
+ sequence tr_etoomuch_id_seq advanced to 4059
+ sequence tr_etoomuch_id_seq advanced to 4092
+ sequence tr_etoomuch_id_seq advanced to 4125
+ sequence tr_etoomuch_id_seq advanced to 4158
+ sequence tr_etoomuch_id_seq advanced to 4191
+ sequence tr_etoomuch_id_seq advanced to 4224
+ sequence tr_etoomuch_id_seq advanced to 4257
+ sequence tr_etoomuch_id_seq advanced to 4290
+ sequence tr_etoomuch_id_seq advanced to 4323
+ sequence tr_etoomuch_id_seq advanced to 4356
+ sequence tr_etoomuch_id_seq advanced to 4389
+ sequence tr_etoomuch_id_seq advanced to 4422
+ sequence tr_etoomuch_id_seq advanced to 4455
+ sequence tr_etoomuch_id_seq advanced to 4488
+ sequence tr_etoomuch_id_seq advanced to 4521
+ sequence tr_etoomuch_id_seq advanced to 4554
+ sequence tr_etoomuch_id_seq advanced to 4587
+ sequence tr_etoomuch_id_seq advanced to 4620
+ sequence tr_etoomuch_id_seq advanced to 4653
+ sequence tr_etoomuch_id_seq advanced to 4686
+ sequence tr_etoomuch_id_seq advanced to 4719
+ sequence tr_etoomuch_id_seq advanced to 4752
+ sequence tr_etoomuch_id_seq advanced to 4785
+ sequence tr_etoomuch_id_seq advanced to 4818
+ sequence tr_etoomuch_id_seq advanced to 4851
+ sequence tr_etoomuch_id_seq advanced to 4884
+ sequence tr_etoomuch_id_seq advanced to 4917
+ sequence tr_etoomuch_id_seq advanced to 4950
+ sequence tr_etoomuch_id_seq advanced to 4983
+ sequence tr_etoomuch_id_seq advanced to 5016
+ sequence tr_etoomuch_id_seq advanced to 5049
+ sequence tr_etoomuch_id_seq advanced to 5082
+ sequence tr_etoomuch_id_seq advanced to 5115
+ sequence tr_etoomuch_id_seq advanced to 5148
+ sequence tr_etoomuch_id_seq advanced to 5181
+ sequence tr_etoomuch_id_seq advanced to 5214
+ sequence tr_etoomuch_id_seq advanced to 5247
+ sequence tr_etoomuch_id_seq advanced to 5280
+ sequence tr_etoomuch_id_seq advanced to 5313
+ sequence tr_etoomuch_id_seq advanced to 5346
+ sequence tr_etoomuch_id_seq advanced to 5379
+ sequence tr_etoomuch_id_seq advanced to 5412
+ sequence tr_etoomuch_id_seq advanced to 5445
+ sequence tr_etoomuch_id_seq advanced to 5478
+ sequence tr_etoomuch_id_seq advanced to 5511
+ sequence tr_etoomuch_id_seq advanced to 5544
+ sequence tr_etoomuch_id_seq advanced to 5577
+ sequence tr_etoomuch_id_seq advanced to 5610
+ sequence tr_etoomuch_id_seq advanced to 5643
+ sequence tr_etoomuch_id_seq advanced to 5676
+ sequence tr_etoomuch_id_seq advanced to 5709
+ sequence tr_etoomuch_id_seq advanced to 5742
+ sequence tr_etoomuch_id_seq advanced to 5775
+ sequence tr_etoomuch_id_seq advanced to 5808
+ sequence tr_etoomuch_id_seq advanced to 5841
+ sequence tr_etoomuch_id_seq advanced to 5874
+ sequence tr_etoomuch_id_seq advanced to 5907
+ sequence tr_etoomuch_id_seq advanced to 5940
+ sequence tr_etoomuch_id_seq advanced to 5973
+ sequence tr_etoomuch_id_seq advanced to 6006
+ sequence tr_etoomuch_id_seq advanced to 6039
+ sequence tr_etoomuch_id_seq advanced to 6072
+ sequence tr_etoomuch_id_seq advanced to 6105
+ sequence tr_etoomuch_id_seq advanced to 6138
+ sequence tr_etoomuch_id_seq advanced to 6171
+ sequence tr_etoomuch_id_seq advanced to 6204
+ sequence tr_etoomuch_id_seq advanced to 6237
+ sequence tr_etoomuch_id_seq advanced to 6270
+ sequence tr_etoomuch_id_seq advanced to 6303
+ sequence tr_etoomuch_id_seq advanced to 6336
+ sequence tr_etoomuch_id_seq advanced to 6369
+ sequence tr_etoomuch_id_seq advanced to 6402
+ sequence tr_etoomuch_id_seq advanced to 6435
+ sequence tr_etoomuch_id_seq advanced to 6468
+ sequence tr_etoomuch_id_seq advanced to 6501
+ sequence tr_etoomuch_id_seq advanced to 6534
+ sequence tr_etoomuch_id_seq advanced to 6567
+ sequence tr_etoomuch_id_seq advanced to 6600
+ sequence tr_etoomuch_id_seq advanced to 6633
+ sequence tr_etoomuch_id_seq advanced to 6666
+ sequence tr_etoomuch_id_seq advanced to 6699
+ sequence tr_etoomuch_id_seq advanced to 6732
+ sequence tr_etoomuch_id_seq advanced to 6765
+ sequence tr_etoomuch_id_seq advanced to 6798
+ sequence tr_etoomuch_id_seq advanced to 6831
+ sequence tr_etoomuch_id_seq advanced to 6864
+ sequence tr_etoomuch_id_seq advanced to 6897
+ sequence tr_etoomuch_id_seq advanced to 6930
+ sequence tr_etoomuch_id_seq advanced to 6963
+ sequence tr_etoomuch_id_seq advanced to 6996
+ sequence tr_etoomuch_id_seq advanced to 7029
+ sequence tr_etoomuch_id_seq advanced to 7062
+ sequence tr_etoomuch_id_seq advanced to 7095
+ sequence tr_etoomuch_id_seq advanced to 7128
+ sequence tr_etoomuch_id_seq advanced to 7161
+ sequence tr_etoomuch_id_seq advanced to 7194
+ sequence tr_etoomuch_id_seq advanced to 7227
+ sequence tr_etoomuch_id_seq advanced to 7260
+ sequence tr_etoomuch_id_seq advanced to 7293
+ sequence tr_etoomuch_id_seq advanced to 7326
+ sequence tr_etoomuch_id_seq advanced to 7359
+ sequence tr_etoomuch_id_seq advanced to 7392
+ sequence tr_etoomuch_id_seq advanced to 7425
+ sequence tr_etoomuch_id_seq advanced to 7458
+ sequence tr_etoomuch_id_seq advanced to 7491
+ sequence tr_etoomuch_id_seq advanced to 7524
+ sequence tr_etoomuch_id_seq advanced to 7557
+ sequence tr_etoomuch_id_seq advanced to 7590
+ sequence tr_etoomuch_id_seq advanced to 7623
+ sequence tr_etoomuch_id_seq advanced to 7656
+ sequence tr_etoomuch_id_seq advanced to 7689
+ sequence tr_etoomuch_id_seq advanced to 7722
+ sequence tr_etoomuch_id_seq advanced to 7755
+ sequence tr_etoomuch_id_seq advanced to 7788
+ sequence tr_etoomuch_id_seq advanced to 7821
+ sequence tr_etoomuch_id_seq advanced to 7854
+ sequence tr_etoomuch_id_seq advanced to 7887
+ sequence tr_etoomuch_id_seq advanced to 7920
+ sequence tr_etoomuch_id_seq advanced to 7953
+ sequence tr_etoomuch_id_seq advanced to 7986
+ sequence tr_etoomuch_id_seq advanced to 8019
+ sequence tr_etoomuch_id_seq advanced to 8052
+ sequence tr_etoomuch_id_seq advanced to 8085
+ sequence tr_etoomuch_id_seq advanced to 8118
+ sequence tr_etoomuch_id_seq advanced to 8151
+ sequence tr_etoomuch_id_seq advanced to 8184
+ sequence tr_etoomuch_id_seq advanced to 8217
+ sequence tr_etoomuch_id_seq advanced to 8250
+ sequence tr_etoomuch_id_seq advanced to 8283
+ sequence tr_etoomuch_id_seq advanced to 8316
+ sequence tr_etoomuch_id_seq advanced to 8349
+ sequence tr_etoomuch_id_seq advanced to 8382
+ sequence tr_etoomuch_id_seq advanced to 8415
+ sequence tr_etoomuch_id_seq advanced to 8448
+ sequence tr_etoomuch_id_seq advanced to 8481
+ sequence tr_etoomuch_id_seq advanced to 8514
+ sequence tr_etoomuch_id_seq advanced to 8547
+ sequence tr_etoomuch_id_seq advanced to 8580
+ sequence tr_etoomuch_id_seq advanced to 8613
+ sequence tr_etoomuch_id_seq advanced to 8646
+ sequence tr_etoomuch_id_seq advanced to 8679
+ sequence tr_etoomuch_id_seq advanced to 8712
+ sequence tr_etoomuch_id_seq advanced to 8745
+ sequence tr_etoomuch_id_seq advanced to 8778
+ sequence tr_etoomuch_id_seq advanced to 8811
+ sequence tr_etoomuch_id_seq advanced to 8844
+ sequence tr_etoomuch_id_seq advanced to 8877
+ sequence tr_etoomuch_id_seq advanced to 8910
+ sequence tr_etoomuch_id_seq advanced to 8943
+ sequence tr_etoomuch_id_seq advanced to 8976
+ sequence tr_etoomuch_id_seq advanced to 9009
+ sequence tr_etoomuch_id_seq advanced to 9042
+ sequence tr_etoomuch_id_seq advanced to 9075
+ sequence tr_etoomuch_id_seq advanced to 9108
+ sequence tr_etoomuch_id_seq advanced to 9141
+ sequence tr_etoomuch_id_seq advanced to 9174
+ sequence tr_etoomuch_id_seq advanced to 9207
+ sequence tr_etoomuch_id_seq advanced to 9240
+ sequence tr_etoomuch_id_seq advanced to 9273
+ sequence tr_etoomuch_id_seq advanced to 9306
+ sequence tr_etoomuch_id_seq advanced to 9339
+ sequence tr_etoomuch_id_seq advanced to 9372
+ sequence tr_etoomuch_id_seq advanced to 9405
+ sequence tr_etoomuch_id_seq advanced to 9438
+ sequence tr_etoomuch_id_seq advanced to 9471
+ sequence tr_etoomuch_id_seq advanced to 9504
+ sequence tr_etoomuch_id_seq advanced to 9537
+ sequence tr_etoomuch_id_seq advanced to 9570
+ sequence tr_etoomuch_id_seq advanced to 9603
+ sequence tr_etoomuch_id_seq advanced to 9636
+ sequence tr_etoomuch_id_seq advanced to 9669
+ sequence tr_etoomuch_id_seq advanced to 9702
+ sequence tr_etoomuch_id_seq advanced to 9735
+ sequence tr_etoomuch_id_seq advanced to 9768
+ sequence tr_etoomuch_id_seq advanced to 9801
+ sequence tr_etoomuch_id_seq advanced to 9834
+ sequence tr_etoomuch_id_seq advanced to 9867
+ sequence tr_etoomuch_id_seq advanced to 9900
+ sequence tr_etoomuch_id_seq advanced to 9933
+ sequence tr_etoomuch_id_seq advanced to 9966
+ sequence tr_etoomuch_id_seq advanced to 9999
+ sequence tr_etoomuch_id_seq advanced to 10032
+ sequence tr_etoomuch_id_seq advanced to 10065
+ sequence tr_etoomuch_id_seq advanced to 10098
+ sequence tr_etoomuch_id_seq advanced to 10131
+ sequence tr_etoomuch_id_seq advanced to 10164
+ sequence tr_etoomuch_id_seq advanced to 10197
+ sequence tr_etoomuch_id_seq advanced to 10230
+ sequence tr_etoomuch_id_seq advanced to 10263
+ sequence tr_sub_id_seq advanced to 1
+ sequence tr_sub_id_seq advanced to 1
+ sequence tr_sub_id_seq advanced to 33
  BEGIN
  table public.tr_sub: INSERT: id[integer]:15 path[text]:'4-top-1-#1'
  COMMIT
  BEGIN
  table public.tr_sub: INSERT: id[integer]:16 path[text]:'5-top-1-#1'
  COMMIT
-(6 rows)
+(331 rows)
 
 /*
  * Check whether treating a table as a catalog table works somewhat
@@ -448,6 +1774,334 @@ VALUES ('zaphod', NULL);
 SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
                                                                 data                                                                
 ------------------------------------------------------------------------------------------------------------------------------------
+ sequence replication_example_id_seq advanced to 1
+ sequence replication_example_id_seq advanced to 1
+ sequence replication_example_id_seq advanced to 33
+ sequence tr_unique_id2_seq advanced to 1
+ sequence tr_unique_id2_seq advanced to 1
+ sequence tr_unique_id2_seq advanced to 33
+ sequence tr_pkey_id_seq advanced to 1
+ sequence tr_pkey_id_seq advanced to 33
+ sequence tr_pkey_id_seq advanced to 1
+ sequence tr_etoomuch_id_seq advanced to 1
+ sequence tr_etoomuch_id_seq advanced to 1
+ sequence tr_etoomuch_id_seq advanced to 33
+ sequence tr_etoomuch_id_seq advanced to 66
+ sequence tr_etoomuch_id_seq advanced to 99
+ sequence tr_etoomuch_id_seq advanced to 132
+ sequence tr_etoomuch_id_seq advanced to 165
+ sequence tr_etoomuch_id_seq advanced to 198
+ sequence tr_etoomuch_id_seq advanced to 231
+ sequence tr_etoomuch_id_seq advanced to 264
+ sequence tr_etoomuch_id_seq advanced to 297
+ sequence tr_etoomuch_id_seq advanced to 330
+ sequence tr_etoomuch_id_seq advanced to 363
+ sequence tr_etoomuch_id_seq advanced to 396
+ sequence tr_etoomuch_id_seq advanced to 429
+ sequence tr_etoomuch_id_seq advanced to 462
+ sequence tr_etoomuch_id_seq advanced to 495
+ sequence tr_etoomuch_id_seq advanced to 528
+ sequence tr_etoomuch_id_seq advanced to 561
+ sequence tr_etoomuch_id_seq advanced to 594
+ sequence tr_etoomuch_id_seq advanced to 627
+ sequence tr_etoomuch_id_seq advanced to 660
+ sequence tr_etoomuch_id_seq advanced to 693
+ sequence tr_etoomuch_id_seq advanced to 726
+ sequence tr_etoomuch_id_seq advanced to 759
+ sequence tr_etoomuch_id_seq advanced to 792
+ sequence tr_etoomuch_id_seq advanced to 825
+ sequence tr_etoomuch_id_seq advanced to 858
+ sequence tr_etoomuch_id_seq advanced to 891
+ sequence tr_etoomuch_id_seq advanced to 924
+ sequence tr_etoomuch_id_seq advanced to 957
+ sequence tr_etoomuch_id_seq advanced to 990
+ sequence tr_etoomuch_id_seq advanced to 1023
+ sequence tr_etoomuch_id_seq advanced to 1056
+ sequence tr_etoomuch_id_seq advanced to 1089
+ sequence tr_etoomuch_id_seq advanced to 1122
+ sequence tr_etoomuch_id_seq advanced to 1155
+ sequence tr_etoomuch_id_seq advanced to 1188
+ sequence tr_etoomuch_id_seq advanced to 1221
+ sequence tr_etoomuch_id_seq advanced to 1254
+ sequence tr_etoomuch_id_seq advanced to 1287
+ sequence tr_etoomuch_id_seq advanced to 1320
+ sequence tr_etoomuch_id_seq advanced to 1353
+ sequence tr_etoomuch_id_seq advanced to 1386
+ sequence tr_etoomuch_id_seq advanced to 1419
+ sequence tr_etoomuch_id_seq advanced to 1452
+ sequence tr_etoomuch_id_seq advanced to 1485
+ sequence tr_etoomuch_id_seq advanced to 1518
+ sequence tr_etoomuch_id_seq advanced to 1551
+ sequence tr_etoomuch_id_seq advanced to 1584
+ sequence tr_etoomuch_id_seq advanced to 1617
+ sequence tr_etoomuch_id_seq advanced to 1650
+ sequence tr_etoomuch_id_seq advanced to 1683
+ sequence tr_etoomuch_id_seq advanced to 1716
+ sequence tr_etoomuch_id_seq advanced to 1749
+ sequence tr_etoomuch_id_seq advanced to 1782
+ sequence tr_etoomuch_id_seq advanced to 1815
+ sequence tr_etoomuch_id_seq advanced to 1848
+ sequence tr_etoomuch_id_seq advanced to 1881
+ sequence tr_etoomuch_id_seq advanced to 1914
+ sequence tr_etoomuch_id_seq advanced to 1947
+ sequence tr_etoomuch_id_seq advanced to 1980
+ sequence tr_etoomuch_id_seq advanced to 2013
+ sequence tr_etoomuch_id_seq advanced to 2046
+ sequence tr_etoomuch_id_seq advanced to 2079
+ sequence tr_etoomuch_id_seq advanced to 2112
+ sequence tr_etoomuch_id_seq advanced to 2145
+ sequence tr_etoomuch_id_seq advanced to 2178
+ sequence tr_etoomuch_id_seq advanced to 2211
+ sequence tr_etoomuch_id_seq advanced to 2244
+ sequence tr_etoomuch_id_seq advanced to 2277
+ sequence tr_etoomuch_id_seq advanced to 2310
+ sequence tr_etoomuch_id_seq advanced to 2343
+ sequence tr_etoomuch_id_seq advanced to 2376
+ sequence tr_etoomuch_id_seq advanced to 2409
+ sequence tr_etoomuch_id_seq advanced to 2442
+ sequence tr_etoomuch_id_seq advanced to 2475
+ sequence tr_etoomuch_id_seq advanced to 2508
+ sequence tr_etoomuch_id_seq advanced to 2541
+ sequence tr_etoomuch_id_seq advanced to 2574
+ sequence tr_etoomuch_id_seq advanced to 2607
+ sequence tr_etoomuch_id_seq advanced to 2640
+ sequence tr_etoomuch_id_seq advanced to 2673
+ sequence tr_etoomuch_id_seq advanced to 2706
+ sequence tr_etoomuch_id_seq advanced to 2739
+ sequence tr_etoomuch_id_seq advanced to 2772
+ sequence tr_etoomuch_id_seq advanced to 2805
+ sequence tr_etoomuch_id_seq advanced to 2838
+ sequence tr_etoomuch_id_seq advanced to 2871
+ sequence tr_etoomuch_id_seq advanced to 2904
+ sequence tr_etoomuch_id_seq advanced to 2937
+ sequence tr_etoomuch_id_seq advanced to 2970
+ sequence tr_etoomuch_id_seq advanced to 3003
+ sequence tr_etoomuch_id_seq advanced to 3036
+ sequence tr_etoomuch_id_seq advanced to 3069
+ sequence tr_etoomuch_id_seq advanced to 3102
+ sequence tr_etoomuch_id_seq advanced to 3135
+ sequence tr_etoomuch_id_seq advanced to 3168
+ sequence tr_etoomuch_id_seq advanced to 3201
+ sequence tr_etoomuch_id_seq advanced to 3234
+ sequence tr_etoomuch_id_seq advanced to 3267
+ sequence tr_etoomuch_id_seq advanced to 3300
+ sequence tr_etoomuch_id_seq advanced to 3333
+ sequence tr_etoomuch_id_seq advanced to 3366
+ sequence tr_etoomuch_id_seq advanced to 3399
+ sequence tr_etoomuch_id_seq advanced to 3432
+ sequence tr_etoomuch_id_seq advanced to 3465
+ sequence tr_etoomuch_id_seq advanced to 3498
+ sequence tr_etoomuch_id_seq advanced to 3531
+ sequence tr_etoomuch_id_seq advanced to 3564
+ sequence tr_etoomuch_id_seq advanced to 3597
+ sequence tr_etoomuch_id_seq advanced to 3630
+ sequence tr_etoomuch_id_seq advanced to 3663
+ sequence tr_etoomuch_id_seq advanced to 3696
+ sequence tr_etoomuch_id_seq advanced to 3729
+ sequence tr_etoomuch_id_seq advanced to 3762
+ sequence tr_etoomuch_id_seq advanced to 3795
+ sequence tr_etoomuch_id_seq advanced to 3828
+ sequence tr_etoomuch_id_seq advanced to 3861
+ sequence tr_etoomuch_id_seq advanced to 3894
+ sequence tr_etoomuch_id_seq advanced to 3927
+ sequence tr_etoomuch_id_seq advanced to 3960
+ sequence tr_etoomuch_id_seq advanced to 3993
+ sequence tr_etoomuch_id_seq advanced to 4026
+ sequence tr_etoomuch_id_seq advanced to 4059
+ sequence tr_etoomuch_id_seq advanced to 4092
+ sequence tr_etoomuch_id_seq advanced to 4125
+ sequence tr_etoomuch_id_seq advanced to 4158
+ sequence tr_etoomuch_id_seq advanced to 4191
+ sequence tr_etoomuch_id_seq advanced to 4224
+ sequence tr_etoomuch_id_seq advanced to 4257
+ sequence tr_etoomuch_id_seq advanced to 4290
+ sequence tr_etoomuch_id_seq advanced to 4323
+ sequence tr_etoomuch_id_seq advanced to 4356
+ sequence tr_etoomuch_id_seq advanced to 4389
+ sequence tr_etoomuch_id_seq advanced to 4422
+ sequence tr_etoomuch_id_seq advanced to 4455
+ sequence tr_etoomuch_id_seq advanced to 4488
+ sequence tr_etoomuch_id_seq advanced to 4521
+ sequence tr_etoomuch_id_seq advanced to 4554
+ sequence tr_etoomuch_id_seq advanced to 4587
+ sequence tr_etoomuch_id_seq advanced to 4620
+ sequence tr_etoomuch_id_seq advanced to 4653
+ sequence tr_etoomuch_id_seq advanced to 4686
+ sequence tr_etoomuch_id_seq advanced to 4719
+ sequence tr_etoomuch_id_seq advanced to 4752
+ sequence tr_etoomuch_id_seq advanced to 4785
+ sequence tr_etoomuch_id_seq advanced to 4818
+ sequence tr_etoomuch_id_seq advanced to 4851
+ sequence tr_etoomuch_id_seq advanced to 4884
+ sequence tr_etoomuch_id_seq advanced to 4917
+ sequence tr_etoomuch_id_seq advanced to 4950
+ sequence tr_etoomuch_id_seq advanced to 4983
+ sequence tr_etoomuch_id_seq advanced to 5016
+ sequence tr_etoomuch_id_seq advanced to 5049
+ sequence tr_etoomuch_id_seq advanced to 5082
+ sequence tr_etoomuch_id_seq advanced to 5115
+ sequence tr_etoomuch_id_seq advanced to 5148
+ sequence tr_etoomuch_id_seq advanced to 5181
+ sequence tr_etoomuch_id_seq advanced to 5214
+ sequence tr_etoomuch_id_seq advanced to 5247
+ sequence tr_etoomuch_id_seq advanced to 5280
+ sequence tr_etoomuch_id_seq advanced to 5313
+ sequence tr_etoomuch_id_seq advanced to 5346
+ sequence tr_etoomuch_id_seq advanced to 5379
+ sequence tr_etoomuch_id_seq advanced to 5412
+ sequence tr_etoomuch_id_seq advanced to 5445
+ sequence tr_etoomuch_id_seq advanced to 5478
+ sequence tr_etoomuch_id_seq advanced to 5511
+ sequence tr_etoomuch_id_seq advanced to 5544
+ sequence tr_etoomuch_id_seq advanced to 5577
+ sequence tr_etoomuch_id_seq advanced to 5610
+ sequence tr_etoomuch_id_seq advanced to 5643
+ sequence tr_etoomuch_id_seq advanced to 5676
+ sequence tr_etoomuch_id_seq advanced to 5709
+ sequence tr_etoomuch_id_seq advanced to 5742
+ sequence tr_etoomuch_id_seq advanced to 5775
+ sequence tr_etoomuch_id_seq advanced to 5808
+ sequence tr_etoomuch_id_seq advanced to 5841
+ sequence tr_etoomuch_id_seq advanced to 5874
+ sequence tr_etoomuch_id_seq advanced to 5907
+ sequence tr_etoomuch_id_seq advanced to 5940
+ sequence tr_etoomuch_id_seq advanced to 5973
+ sequence tr_etoomuch_id_seq advanced to 6006
+ sequence tr_etoomuch_id_seq advanced to 6039
+ sequence tr_etoomuch_id_seq advanced to 6072
+ sequence tr_etoomuch_id_seq advanced to 6105
+ sequence tr_etoomuch_id_seq advanced to 6138
+ sequence tr_etoomuch_id_seq advanced to 6171
+ sequence tr_etoomuch_id_seq advanced to 6204
+ sequence tr_etoomuch_id_seq advanced to 6237
+ sequence tr_etoomuch_id_seq advanced to 6270
+ sequence tr_etoomuch_id_seq advanced to 6303
+ sequence tr_etoomuch_id_seq advanced to 6336
+ sequence tr_etoomuch_id_seq advanced to 6369
+ sequence tr_etoomuch_id_seq advanced to 6402
+ sequence tr_etoomuch_id_seq advanced to 6435
+ sequence tr_etoomuch_id_seq advanced to 6468
+ sequence tr_etoomuch_id_seq advanced to 6501
+ sequence tr_etoomuch_id_seq advanced to 6534
+ sequence tr_etoomuch_id_seq advanced to 6567
+ sequence tr_etoomuch_id_seq advanced to 6600
+ sequence tr_etoomuch_id_seq advanced to 6633
+ sequence tr_etoomuch_id_seq advanced to 6666
+ sequence tr_etoomuch_id_seq advanced to 6699
+ sequence tr_etoomuch_id_seq advanced to 6732
+ sequence tr_etoomuch_id_seq advanced to 6765
+ sequence tr_etoomuch_id_seq advanced to 6798
+ sequence tr_etoomuch_id_seq advanced to 6831
+ sequence tr_etoomuch_id_seq advanced to 6864
+ sequence tr_etoomuch_id_seq advanced to 6897
+ sequence tr_etoomuch_id_seq advanced to 6930
+ sequence tr_etoomuch_id_seq advanced to 6963
+ sequence tr_etoomuch_id_seq advanced to 6996
+ sequence tr_etoomuch_id_seq advanced to 7029
+ sequence tr_etoomuch_id_seq advanced to 7062
+ sequence tr_etoomuch_id_seq advanced to 7095
+ sequence tr_etoomuch_id_seq advanced to 7128
+ sequence tr_etoomuch_id_seq advanced to 7161
+ sequence tr_etoomuch_id_seq advanced to 7194
+ sequence tr_etoomuch_id_seq advanced to 7227
+ sequence tr_etoomuch_id_seq advanced to 7260
+ sequence tr_etoomuch_id_seq advanced to 7293
+ sequence tr_etoomuch_id_seq advanced to 7326
+ sequence tr_etoomuch_id_seq advanced to 7359
+ sequence tr_etoomuch_id_seq advanced to 7392
+ sequence tr_etoomuch_id_seq advanced to 7425
+ sequence tr_etoomuch_id_seq advanced to 7458
+ sequence tr_etoomuch_id_seq advanced to 7491
+ sequence tr_etoomuch_id_seq advanced to 7524
+ sequence tr_etoomuch_id_seq advanced to 7557
+ sequence tr_etoomuch_id_seq advanced to 7590
+ sequence tr_etoomuch_id_seq advanced to 7623
+ sequence tr_etoomuch_id_seq advanced to 7656
+ sequence tr_etoomuch_id_seq advanced to 7689
+ sequence tr_etoomuch_id_seq advanced to 7722
+ sequence tr_etoomuch_id_seq advanced to 7755
+ sequence tr_etoomuch_id_seq advanced to 7788
+ sequence tr_etoomuch_id_seq advanced to 7821
+ sequence tr_etoomuch_id_seq advanced to 7854
+ sequence tr_etoomuch_id_seq advanced to 7887
+ sequence tr_etoomuch_id_seq advanced to 7920
+ sequence tr_etoomuch_id_seq advanced to 7953
+ sequence tr_etoomuch_id_seq advanced to 7986
+ sequence tr_etoomuch_id_seq advanced to 8019
+ sequence tr_etoomuch_id_seq advanced to 8052
+ sequence tr_etoomuch_id_seq advanced to 8085
+ sequence tr_etoomuch_id_seq advanced to 8118
+ sequence tr_etoomuch_id_seq advanced to 8151
+ sequence tr_etoomuch_id_seq advanced to 8184
+ sequence tr_etoomuch_id_seq advanced to 8217
+ sequence tr_etoomuch_id_seq advanced to 8250
+ sequence tr_etoomuch_id_seq advanced to 8283
+ sequence tr_etoomuch_id_seq advanced to 8316
+ sequence tr_etoomuch_id_seq advanced to 8349
+ sequence tr_etoomuch_id_seq advanced to 8382
+ sequence tr_etoomuch_id_seq advanced to 8415
+ sequence tr_etoomuch_id_seq advanced to 8448
+ sequence tr_etoomuch_id_seq advanced to 8481
+ sequence tr_etoomuch_id_seq advanced to 8514
+ sequence tr_etoomuch_id_seq advanced to 8547
+ sequence tr_etoomuch_id_seq advanced to 8580
+ sequence tr_etoomuch_id_seq advanced to 8613
+ sequence tr_etoomuch_id_seq advanced to 8646
+ sequence tr_etoomuch_id_seq advanced to 8679
+ sequence tr_etoomuch_id_seq advanced to 8712
+ sequence tr_etoomuch_id_seq advanced to 8745
+ sequence tr_etoomuch_id_seq advanced to 8778
+ sequence tr_etoomuch_id_seq advanced to 8811
+ sequence tr_etoomuch_id_seq advanced to 8844
+ sequence tr_etoomuch_id_seq advanced to 8877
+ sequence tr_etoomuch_id_seq advanced to 8910
+ sequence tr_etoomuch_id_seq advanced to 8943
+ sequence tr_etoomuch_id_seq advanced to 8976
+ sequence tr_etoomuch_id_seq advanced to 9009
+ sequence tr_etoomuch_id_seq advanced to 9042
+ sequence tr_etoomuch_id_seq advanced to 9075
+ sequence tr_etoomuch_id_seq advanced to 9108
+ sequence tr_etoomuch_id_seq advanced to 9141
+ sequence tr_etoomuch_id_seq advanced to 9174
+ sequence tr_etoomuch_id_seq advanced to 9207
+ sequence tr_etoomuch_id_seq advanced to 9240
+ sequence tr_etoomuch_id_seq advanced to 9273
+ sequence tr_etoomuch_id_seq advanced to 9306
+ sequence tr_etoomuch_id_seq advanced to 9339
+ sequence tr_etoomuch_id_seq advanced to 9372
+ sequence tr_etoomuch_id_seq advanced to 9405
+ sequence tr_etoomuch_id_seq advanced to 9438
+ sequence tr_etoomuch_id_seq advanced to 9471
+ sequence tr_etoomuch_id_seq advanced to 9504
+ sequence tr_etoomuch_id_seq advanced to 9537
+ sequence tr_etoomuch_id_seq advanced to 9570
+ sequence tr_etoomuch_id_seq advanced to 9603
+ sequence tr_etoomuch_id_seq advanced to 9636
+ sequence tr_etoomuch_id_seq advanced to 9669
+ sequence tr_etoomuch_id_seq advanced to 9702
+ sequence tr_etoomuch_id_seq advanced to 9735
+ sequence tr_etoomuch_id_seq advanced to 9768
+ sequence tr_etoomuch_id_seq advanced to 9801
+ sequence tr_etoomuch_id_seq advanced to 9834
+ sequence tr_etoomuch_id_seq advanced to 9867
+ sequence tr_etoomuch_id_seq advanced to 9900
+ sequence tr_etoomuch_id_seq advanced to 9933
+ sequence tr_etoomuch_id_seq advanced to 9966
+ sequence tr_etoomuch_id_seq advanced to 9999
+ sequence tr_etoomuch_id_seq advanced to 10032
+ sequence tr_etoomuch_id_seq advanced to 10065
+ sequence tr_etoomuch_id_seq advanced to 10098
+ sequence tr_etoomuch_id_seq advanced to 10131
+ sequence tr_etoomuch_id_seq advanced to 10164
+ sequence tr_etoomuch_id_seq advanced to 10197
+ sequence tr_etoomuch_id_seq advanced to 10230
+ sequence tr_etoomuch_id_seq advanced to 10263
+ sequence tr_sub_id_seq advanced to 1
+ sequence tr_sub_id_seq advanced to 1
+ sequence tr_sub_id_seq advanced to 33
+ sequence replication_metadata_id_seq advanced to 1
+ sequence replication_metadata_id_seq advanced to 1
+ sequence replication_metadata_id_seq advanced to 33
  BEGIN
  table public.replication_metadata: INSERT: id[integer]:1 relation[name]:'foo' options[text[]]:'{a,b}'
  COMMIT
@@ -460,7 +2114,7 @@ SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'inc
  BEGIN
  table public.replication_metadata: INSERT: id[integer]:4 relation[name]:'zaphod' options[text[]]:null rewritemeornot[integer]:null
  COMMIT
-(12 rows)
+(340 rows)
 
 /*
  * check whether we handle updates/deletes correct with & without a pkey
@@ -536,6 +2190,337 @@ WHERE id = 1;
 SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           data                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ sequence replication_example_id_seq advanced to 1
+ sequence replication_example_id_seq advanced to 1
+ sequence replication_example_id_seq advanced to 33
+ sequence tr_unique_id2_seq advanced to 1
+ sequence tr_unique_id2_seq advanced to 1
+ sequence tr_unique_id2_seq advanced to 33
+ sequence tr_pkey_id_seq advanced to 1
+ sequence tr_pkey_id_seq advanced to 33
+ sequence tr_pkey_id_seq advanced to 1
+ sequence tr_etoomuch_id_seq advanced to 1
+ sequence tr_etoomuch_id_seq advanced to 1
+ sequence tr_etoomuch_id_seq advanced to 33
+ sequence tr_etoomuch_id_seq advanced to 66
+ sequence tr_etoomuch_id_seq advanced to 99
+ sequence tr_etoomuch_id_seq advanced to 132
+ sequence tr_etoomuch_id_seq advanced to 165
+ sequence tr_etoomuch_id_seq advanced to 198
+ sequence tr_etoomuch_id_seq advanced to 231
+ sequence tr_etoomuch_id_seq advanced to 264
+ sequence tr_etoomuch_id_seq advanced to 297
+ sequence tr_etoomuch_id_seq advanced to 330
+ sequence tr_etoomuch_id_seq advanced to 363
+ sequence tr_etoomuch_id_seq advanced to 396
+ sequence tr_etoomuch_id_seq advanced to 429
+ sequence tr_etoomuch_id_seq advanced to 462
+ sequence tr_etoomuch_id_seq advanced to 495
+ sequence tr_etoomuch_id_seq advanced to 528
+ sequence tr_etoomuch_id_seq advanced to 561
+ sequence tr_etoomuch_id_seq advanced to 594
+ sequence tr_etoomuch_id_seq advanced to 627
+ sequence tr_etoomuch_id_seq advanced to 660
+ sequence tr_etoomuch_id_seq advanced to 693
+ sequence tr_etoomuch_id_seq advanced to 726
+ sequence tr_etoomuch_id_seq advanced to 759
+ sequence tr_etoomuch_id_seq advanced to 792
+ sequence tr_etoomuch_id_seq advanced to 825
+ sequence tr_etoomuch_id_seq advanced to 858
+ sequence tr_etoomuch_id_seq advanced to 891
+ sequence tr_etoomuch_id_seq advanced to 924
+ sequence tr_etoomuch_id_seq advanced to 957
+ sequence tr_etoomuch_id_seq advanced to 990
+ sequence tr_etoomuch_id_seq advanced to 1023
+ sequence tr_etoomuch_id_seq advanced to 1056
+ sequence tr_etoomuch_id_seq advanced to 1089
+ sequence tr_etoomuch_id_seq advanced to 1122
+ sequence tr_etoomuch_id_seq advanced to 1155
+ sequence tr_etoomuch_id_seq advanced to 1188
+ sequence tr_etoomuch_id_seq advanced to 1221
+ sequence tr_etoomuch_id_seq advanced to 1254
+ sequence tr_etoomuch_id_seq advanced to 1287
+ sequence tr_etoomuch_id_seq advanced to 1320
+ sequence tr_etoomuch_id_seq advanced to 1353
+ sequence tr_etoomuch_id_seq advanced to 1386
+ sequence tr_etoomuch_id_seq advanced to 1419
+ sequence tr_etoomuch_id_seq advanced to 1452
+ sequence tr_etoomuch_id_seq advanced to 1485
+ sequence tr_etoomuch_id_seq advanced to 1518
+ sequence tr_etoomuch_id_seq advanced to 1551
+ sequence tr_etoomuch_id_seq advanced to 1584
+ sequence tr_etoomuch_id_seq advanced to 1617
+ sequence tr_etoomuch_id_seq advanced to 1650
+ sequence tr_etoomuch_id_seq advanced to 1683
+ sequence tr_etoomuch_id_seq advanced to 1716
+ sequence tr_etoomuch_id_seq advanced to 1749
+ sequence tr_etoomuch_id_seq advanced to 1782
+ sequence tr_etoomuch_id_seq advanced to 1815
+ sequence tr_etoomuch_id_seq advanced to 1848
+ sequence tr_etoomuch_id_seq advanced to 1881
+ sequence tr_etoomuch_id_seq advanced to 1914
+ sequence tr_etoomuch_id_seq advanced to 1947
+ sequence tr_etoomuch_id_seq advanced to 1980
+ sequence tr_etoomuch_id_seq advanced to 2013
+ sequence tr_etoomuch_id_seq advanced to 2046
+ sequence tr_etoomuch_id_seq advanced to 2079
+ sequence tr_etoomuch_id_seq advanced to 2112
+ sequence tr_etoomuch_id_seq advanced to 2145
+ sequence tr_etoomuch_id_seq advanced to 2178
+ sequence tr_etoomuch_id_seq advanced to 2211
+ sequence tr_etoomuch_id_seq advanced to 2244
+ sequence tr_etoomuch_id_seq advanced to 2277
+ sequence tr_etoomuch_id_seq advanced to 2310
+ sequence tr_etoomuch_id_seq advanced to 2343
+ sequence tr_etoomuch_id_seq advanced to 2376
+ sequence tr_etoomuch_id_seq advanced to 2409
+ sequence tr_etoomuch_id_seq advanced to 2442
+ sequence tr_etoomuch_id_seq advanced to 2475
+ sequence tr_etoomuch_id_seq advanced to 2508
+ sequence tr_etoomuch_id_seq advanced to 2541
+ sequence tr_etoomuch_id_seq advanced to 2574
+ sequence tr_etoomuch_id_seq advanced to 2607
+ sequence tr_etoomuch_id_seq advanced to 2640
+ sequence tr_etoomuch_id_seq advanced to 2673
+ sequence tr_etoomuch_id_seq advanced to 2706
+ sequence tr_etoomuch_id_seq advanced to 2739
+ sequence tr_etoomuch_id_seq advanced to 2772
+ sequence tr_etoomuch_id_seq advanced to 2805
+ sequence tr_etoomuch_id_seq advanced to 2838
+ sequence tr_etoomuch_id_seq advanced to 2871
+ sequence tr_etoomuch_id_seq advanced to 2904
+ sequence tr_etoomuch_id_seq advanced to 2937
+ sequence tr_etoomuch_id_seq advanced to 2970
+ sequence tr_etoomuch_id_seq advanced to 3003
+ sequence tr_etoomuch_id_seq advanced to 3036
+ sequence tr_etoomuch_id_seq advanced to 3069
+ sequence tr_etoomuch_id_seq advanced to 3102
+ sequence tr_etoomuch_id_seq advanced to 3135
+ sequence tr_etoomuch_id_seq advanced to 3168
+ sequence tr_etoomuch_id_seq advanced to 3201
+ sequence tr_etoomuch_id_seq advanced to 3234
+ sequence tr_etoomuch_id_seq advanced to 3267
+ sequence tr_etoomuch_id_seq advanced to 3300
+ sequence tr_etoomuch_id_seq advanced to 3333
+ sequence tr_etoomuch_id_seq advanced to 3366
+ sequence tr_etoomuch_id_seq advanced to 3399
+ sequence tr_etoomuch_id_seq advanced to 3432
+ sequence tr_etoomuch_id_seq advanced to 3465
+ sequence tr_etoomuch_id_seq advanced to 3498
+ sequence tr_etoomuch_id_seq advanced to 3531
+ sequence tr_etoomuch_id_seq advanced to 3564
+ sequence tr_etoomuch_id_seq advanced to 3597
+ sequence tr_etoomuch_id_seq advanced to 3630
+ sequence tr_etoomuch_id_seq advanced to 3663
+ sequence tr_etoomuch_id_seq advanced to 3696
+ sequence tr_etoomuch_id_seq advanced to 3729
+ sequence tr_etoomuch_id_seq advanced to 3762
+ sequence tr_etoomuch_id_seq advanced to 3795
+ sequence tr_etoomuch_id_seq advanced to 3828
+ sequence tr_etoomuch_id_seq advanced to 3861
+ sequence tr_etoomuch_id_seq advanced to 3894
+ sequence tr_etoomuch_id_seq advanced to 3927
+ sequence tr_etoomuch_id_seq advanced to 3960
+ sequence tr_etoomuch_id_seq advanced to 3993
+ sequence tr_etoomuch_id_seq advanced to 4026
+ sequence tr_etoomuch_id_seq advanced to 4059
+ sequence tr_etoomuch_id_seq advanced to 4092
+ sequence tr_etoomuch_id_seq advanced to 4125
+ sequence tr_etoomuch_id_seq advanced to 4158
+ sequence tr_etoomuch_id_seq advanced to 4191
+ sequence tr_etoomuch_id_seq advanced to 4224
+ sequence tr_etoomuch_id_seq advanced to 4257
+ sequence tr_etoomuch_id_seq advanced to 4290
+ sequence tr_etoomuch_id_seq advanced to 4323
+ sequence tr_etoomuch_id_seq advanced to 4356
+ sequence tr_etoomuch_id_seq advanced to 4389
+ sequence tr_etoomuch_id_seq advanced to 4422
+ sequence tr_etoomuch_id_seq advanced to 4455
+ sequence tr_etoomuch_id_seq advanced to 4488
+ sequence tr_etoomuch_id_seq advanced to 4521
+ sequence tr_etoomuch_id_seq advanced to 4554
+ sequence tr_etoomuch_id_seq advanced to 4587
+ sequence tr_etoomuch_id_seq advanced to 4620
+ sequence tr_etoomuch_id_seq advanced to 4653
+ sequence tr_etoomuch_id_seq advanced to 4686
+ sequence tr_etoomuch_id_seq advanced to 4719
+ sequence tr_etoomuch_id_seq advanced to 4752
+ sequence tr_etoomuch_id_seq advanced to 4785
+ sequence tr_etoomuch_id_seq advanced to 4818
+ sequence tr_etoomuch_id_seq advanced to 4851
+ sequence tr_etoomuch_id_seq advanced to 4884
+ sequence tr_etoomuch_id_seq advanced to 4917
+ sequence tr_etoomuch_id_seq advanced to 4950
+ sequence tr_etoomuch_id_seq advanced to 4983
+ sequence tr_etoomuch_id_seq advanced to 5016
+ sequence tr_etoomuch_id_seq advanced to 5049
+ sequence tr_etoomuch_id_seq advanced to 5082
+ sequence tr_etoomuch_id_seq advanced to 5115
+ sequence tr_etoomuch_id_seq advanced to 5148
+ sequence tr_etoomuch_id_seq advanced to 5181
+ sequence tr_etoomuch_id_seq advanced to 5214
+ sequence tr_etoomuch_id_seq advanced to 5247
+ sequence tr_etoomuch_id_seq advanced to 5280
+ sequence tr_etoomuch_id_seq advanced to 5313
+ sequence tr_etoomuch_id_seq advanced to 5346
+ sequence tr_etoomuch_id_seq advanced to 5379
+ sequence tr_etoomuch_id_seq advanced to 5412
+ sequence tr_etoomuch_id_seq advanced to 5445
+ sequence tr_etoomuch_id_seq advanced to 5478
+ sequence tr_etoomuch_id_seq advanced to 5511
+ sequence tr_etoomuch_id_seq advanced to 5544
+ sequence tr_etoomuch_id_seq advanced to 5577
+ sequence tr_etoomuch_id_seq advanced to 5610
+ sequence tr_etoomuch_id_seq advanced to 5643
+ sequence tr_etoomuch_id_seq advanced to 5676
+ sequence tr_etoomuch_id_seq advanced to 5709
+ sequence tr_etoomuch_id_seq advanced to 5742
+ sequence tr_etoomuch_id_seq advanced to 5775
+ sequence tr_etoomuch_id_seq advanced to 5808
+ sequence tr_etoomuch_id_seq advanced to 5841
+ sequence tr_etoomuch_id_seq advanced to 5874
+ sequence tr_etoomuch_id_seq advanced to 5907
+ sequence tr_etoomuch_id_seq advanced to 5940
+ sequence tr_etoomuch_id_seq advanced to 5973
+ sequence tr_etoomuch_id_seq advanced to 6006
+ sequence tr_etoomuch_id_seq advanced to 6039
+ sequence tr_etoomuch_id_seq advanced to 6072
+ sequence tr_etoomuch_id_seq advanced to 6105
+ sequence tr_etoomuch_id_seq advanced to 6138
+ sequence tr_etoomuch_id_seq advanced to 6171
+ sequence tr_etoomuch_id_seq advanced to 6204
+ sequence tr_etoomuch_id_seq advanced to 6237
+ sequence tr_etoomuch_id_seq advanced to 6270
+ sequence tr_etoomuch_id_seq advanced to 6303
+ sequence tr_etoomuch_id_seq advanced to 6336
+ sequence tr_etoomuch_id_seq advanced to 6369
+ sequence tr_etoomuch_id_seq advanced to 6402
+ sequence tr_etoomuch_id_seq advanced to 6435
+ sequence tr_etoomuch_id_seq advanced to 6468
+ sequence tr_etoomuch_id_seq advanced to 6501
+ sequence tr_etoomuch_id_seq advanced to 6534
+ sequence tr_etoomuch_id_seq advanced to 6567
+ sequence tr_etoomuch_id_seq advanced to 6600
+ sequence tr_etoomuch_id_seq advanced to 6633
+ sequence tr_etoomuch_id_seq advanced to 6666
+ sequence tr_etoomuch_id_seq advanced to 6699
+ sequence tr_etoomuch_id_seq advanced to 6732
+ sequence tr_etoomuch_id_seq advanced to 6765
+ sequence tr_etoomuch_id_seq advanced to 6798
+ sequence tr_etoomuch_id_seq advanced to 6831
+ sequence tr_etoomuch_id_seq advanced to 6864
+ sequence tr_etoomuch_id_seq advanced to 6897
+ sequence tr_etoomuch_id_seq advanced to 6930
+ sequence tr_etoomuch_id_seq advanced to 6963
+ sequence tr_etoomuch_id_seq advanced to 6996
+ sequence tr_etoomuch_id_seq advanced to 7029
+ sequence tr_etoomuch_id_seq advanced to 7062
+ sequence tr_etoomuch_id_seq advanced to 7095
+ sequence tr_etoomuch_id_seq advanced to 7128
+ sequence tr_etoomuch_id_seq advanced to 7161
+ sequence tr_etoomuch_id_seq advanced to 7194
+ sequence tr_etoomuch_id_seq advanced to 7227
+ sequence tr_etoomuch_id_seq advanced to 7260
+ sequence tr_etoomuch_id_seq advanced to 7293
+ sequence tr_etoomuch_id_seq advanced to 7326
+ sequence tr_etoomuch_id_seq advanced to 7359
+ sequence tr_etoomuch_id_seq advanced to 7392
+ sequence tr_etoomuch_id_seq advanced to 7425
+ sequence tr_etoomuch_id_seq advanced to 7458
+ sequence tr_etoomuch_id_seq advanced to 7491
+ sequence tr_etoomuch_id_seq advanced to 7524
+ sequence tr_etoomuch_id_seq advanced to 7557
+ sequence tr_etoomuch_id_seq advanced to 7590
+ sequence tr_etoomuch_id_seq advanced to 7623
+ sequence tr_etoomuch_id_seq advanced to 7656
+ sequence tr_etoomuch_id_seq advanced to 7689
+ sequence tr_etoomuch_id_seq advanced to 7722
+ sequence tr_etoomuch_id_seq advanced to 7755
+ sequence tr_etoomuch_id_seq advanced to 7788
+ sequence tr_etoomuch_id_seq advanced to 7821
+ sequence tr_etoomuch_id_seq advanced to 7854
+ sequence tr_etoomuch_id_seq advanced to 7887
+ sequence tr_etoomuch_id_seq advanced to 7920
+ sequence tr_etoomuch_id_seq advanced to 7953
+ sequence tr_etoomuch_id_seq advanced to 7986
+ sequence tr_etoomuch_id_seq advanced to 8019
+ sequence tr_etoomuch_id_seq advanced to 8052
+ sequence tr_etoomuch_id_seq advanced to 8085
+ sequence tr_etoomuch_id_seq advanced to 8118
+ sequence tr_etoomuch_id_seq advanced to 8151
+ sequence tr_etoomuch_id_seq advanced to 8184
+ sequence tr_etoomuch_id_seq advanced to 8217
+ sequence tr_etoomuch_id_seq advanced to 8250
+ sequence tr_etoomuch_id_seq advanced to 8283
+ sequence tr_etoomuch_id_seq advanced to 8316
+ sequence tr_etoomuch_id_seq advanced to 8349
+ sequence tr_etoomuch_id_seq advanced to 8382
+ sequence tr_etoomuch_id_seq advanced to 8415
+ sequence tr_etoomuch_id_seq advanced to 8448
+ sequence tr_etoomuch_id_seq advanced to 8481
+ sequence tr_etoomuch_id_seq advanced to 8514
+ sequence tr_etoomuch_id_seq advanced to 8547
+ sequence tr_etoomuch_id_seq advanced to 8580
+ sequence tr_etoomuch_id_seq advanced to 8613
+ sequence tr_etoomuch_id_seq advanced to 8646
+ sequence tr_etoomuch_id_seq advanced to 8679
+ sequence tr_etoomuch_id_seq advanced to 8712
+ sequence tr_etoomuch_id_seq advanced to 8745
+ sequence tr_etoomuch_id_seq advanced to 8778
+ sequence tr_etoomuch_id_seq advanced to 8811
+ sequence tr_etoomuch_id_seq advanced to 8844
+ sequence tr_etoomuch_id_seq advanced to 8877
+ sequence tr_etoomuch_id_seq advanced to 8910
+ sequence tr_etoomuch_id_seq advanced to 8943
+ sequence tr_etoomuch_id_seq advanced to 8976
+ sequence tr_etoomuch_id_seq advanced to 9009
+ sequence tr_etoomuch_id_seq advanced to 9042
+ sequence tr_etoomuch_id_seq advanced to 9075
+ sequence tr_etoomuch_id_seq advanced to 9108
+ sequence tr_etoomuch_id_seq advanced to 9141
+ sequence tr_etoomuch_id_seq advanced to 9174
+ sequence tr_etoomuch_id_seq advanced to 9207
+ sequence tr_etoomuch_id_seq advanced to 9240
+ sequence tr_etoomuch_id_seq advanced to 9273
+ sequence tr_etoomuch_id_seq advanced to 9306
+ sequence tr_etoomuch_id_seq advanced to 9339
+ sequence tr_etoomuch_id_seq advanced to 9372
+ sequence tr_etoomuch_id_seq advanced to 9405
+ sequence tr_etoomuch_id_seq advanced to 9438
+ sequence tr_etoomuch_id_seq advanced to 9471
+ sequence tr_etoomuch_id_seq advanced to 9504
+ sequence tr_etoomuch_id_seq advanced to 9537
+ sequence tr_etoomuch_id_seq advanced to 9570
+ sequence tr_etoomuch_id_seq advanced to 9603
+ sequence tr_etoomuch_id_seq advanced to 9636
+ sequence tr_etoomuch_id_seq advanced to 9669
+ sequence tr_etoomuch_id_seq advanced to 9702
+ sequence tr_etoomuch_id_seq advanced to 9735
+ sequence tr_etoomuch_id_seq advanced to 9768
+ sequence tr_etoomuch_id_seq advanced to 9801
+ sequence tr_etoomuch_id_seq advanced to 9834
+ sequence tr_etoomuch_id_seq advanced to 9867
+ sequence tr_etoomuch_id_seq advanced to 9900
+ sequence tr_etoomuch_id_seq advanced to 9933
+ sequence tr_etoomuch_id_seq advanced to 9966
+ sequence tr_etoomuch_id_seq advanced to 9999
+ sequence tr_etoomuch_id_seq advanced to 10032
+ sequence tr_etoomuch_id_seq advanced to 10065
+ sequence tr_etoomuch_id_seq advanced to 10098
+ sequence tr_etoomuch_id_seq advanced to 10131
+ sequence tr_etoomuch_id_seq advanced to 10164
+ sequence tr_etoomuch_id_seq advanced to 10197
+ sequence tr_etoomuch_id_seq advanced to 10230
+ sequence tr_etoomuch_id_seq advanced to 10263
+ sequence tr_sub_id_seq advanced to 1
+ sequence tr_sub_id_seq advanced to 1
+ sequence tr_sub_id_seq advanced to 33
+ sequence replication_metadata_id_seq advanced to 1
+ sequence replication_metadata_id_seq advanced to 1
+ sequence replication_metadata_id_seq advanced to 33
+ sequence table_without_key_id_seq advanced to 1
+ sequence table_without_key_id_seq advanced to 1
+ sequence table_without_key_id_seq advanced to 33
  BEGIN
  table public.table_without_key: INSERT: id[integer]:1 data[integer]:1
  table public.table_without_key: INSERT: id[integer]:2 data[integer]:2
@@ -567,6 +2552,9 @@ SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'inc
  BEGIN
  table public.table_without_key: DELETE: id[integer]:2 data[integer]:3 new_column[text]:'someval'
  COMMIT
+ sequence table_with_pkey_id_seq advanced to 1
+ sequence table_with_pkey_id_seq advanced to 1
+ sequence table_with_pkey_id_seq advanced to 33
  BEGIN
  table public.table_with_pkey: INSERT: id[integer]:1 data[integer]:1
  table public.table_with_pkey: INSERT: id[integer]:2 data[integer]:2
@@ -592,6 +2580,9 @@ SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'inc
  BEGIN
  table public.table_with_pkey: DELETE: id[integer]:2
  COMMIT
+ sequence table_with_unique_not_null_id_seq advanced to 1
+ sequence table_with_unique_not_null_id_seq advanced to 1
+ sequence table_with_unique_not_null_id_seq advanced to 33
  BEGIN
  table public.table_with_unique_not_null: INSERT: id[integer]:1 data[integer]:1
  table public.table_with_unique_not_null: INSERT: id[integer]:2 data[integer]:2
@@ -630,6 +2621,11 @@ SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'inc
  BEGIN
  table public.table_with_unique_not_null: DELETE: id[integer]:4
  COMMIT
+ sequence toasttable_rand_seq advanced to 79
+ sequence toasttable_id_seq advanced to 1
+ sequence toasttable_id_seq advanced to 1
+ sequence toasttable_id_seq advanced to 33
+ sequence toasttable_rand_seq advanced to 48047
  BEGIN
  table public.toasttable: INSERT: id[integer]:1 toasted_col1[text]:'12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000' rand1[double precision]:79 toasted_col2[text]:null rand2[double precision]:1578
  COMMIT
@@ -639,7 +2635,7 @@ SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'inc
  BEGIN
  table public.toasttable: UPDATE: id[integer]:1 toasted_col1[text]:'12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000' rand1[double precision]:79 toasted_col2[text]:null rand2[double precision]:1578
  COMMIT
-(103 rows)
+(445 rows)
 
 INSERT INTO toasttable(toasted_col1) SELECT string_agg(g.i::text, '') FROM generate_series(1, 2000) g(i);
 -- update of second column, first column unchanged
@@ -651,19 +2647,703 @@ DROP TABLE toasttable;
 SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         data                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ sequence replication_example_id_seq advanced to 1
+ sequence replication_example_id_seq advanced to 1
+ sequence replication_example_id_seq advanced to 33
+ sequence tr_unique_id2_seq advanced to 1
+ sequence tr_unique_id2_seq advanced to 1
+ sequence tr_unique_id2_seq advanced to 33
+ sequence tr_pkey_id_seq advanced to 1
+ sequence tr_pkey_id_seq advanced to 33
+ sequence tr_pkey_id_seq advanced to 1
+ sequence tr_etoomuch_id_seq advanced to 1
+ sequence tr_etoomuch_id_seq advanced to 1
+ sequence tr_etoomuch_id_seq advanced to 33
+ sequence tr_etoomuch_id_seq advanced to 66
+ sequence tr_etoomuch_id_seq advanced to 99
+ sequence tr_etoomuch_id_seq advanced to 132
+ sequence tr_etoomuch_id_seq advanced to 165
+ sequence tr_etoomuch_id_seq advanced to 198
+ sequence tr_etoomuch_id_seq advanced to 231
+ sequence tr_etoomuch_id_seq advanced to 264
+ sequence tr_etoomuch_id_seq advanced to 297
+ sequence tr_etoomuch_id_seq advanced to 330
+ sequence tr_etoomuch_id_seq advanced to 363
+ sequence tr_etoomuch_id_seq advanced to 396
+ sequence tr_etoomuch_id_seq advanced to 429
+ sequence tr_etoomuch_id_seq advanced to 462
+ sequence tr_etoomuch_id_seq advanced to 495
+ sequence tr_etoomuch_id_seq advanced to 528
+ sequence tr_etoomuch_id_seq advanced to 561
+ sequence tr_etoomuch_id_seq advanced to 594
+ sequence tr_etoomuch_id_seq advanced to 627
+ sequence tr_etoomuch_id_seq advanced to 660
+ sequence tr_etoomuch_id_seq advanced to 693
+ sequence tr_etoomuch_id_seq advanced to 726
+ sequence tr_etoomuch_id_seq advanced to 759
+ sequence tr_etoomuch_id_seq advanced to 792
+ sequence tr_etoomuch_id_seq advanced to 825
+ sequence tr_etoomuch_id_seq advanced to 858
+ sequence tr_etoomuch_id_seq advanced to 891
+ sequence tr_etoomuch_id_seq advanced to 924
+ sequence tr_etoomuch_id_seq advanced to 957
+ sequence tr_etoomuch_id_seq advanced to 990
+ sequence tr_etoomuch_id_seq advanced to 1023
+ sequence tr_etoomuch_id_seq advanced to 1056
+ sequence tr_etoomuch_id_seq advanced to 1089
+ sequence tr_etoomuch_id_seq advanced to 1122
+ sequence tr_etoomuch_id_seq advanced to 1155
+ sequence tr_etoomuch_id_seq advanced to 1188
+ sequence tr_etoomuch_id_seq advanced to 1221
+ sequence tr_etoomuch_id_seq advanced to 1254
+ sequence tr_etoomuch_id_seq advanced to 1287
+ sequence tr_etoomuch_id_seq advanced to 1320
+ sequence tr_etoomuch_id_seq advanced to 1353
+ sequence tr_etoomuch_id_seq advanced to 1386
+ sequence tr_etoomuch_id_seq advanced to 1419
+ sequence tr_etoomuch_id_seq advanced to 1452
+ sequence tr_etoomuch_id_seq advanced to 1485
+ sequence tr_etoomuch_id_seq advanced to 1518
+ sequence tr_etoomuch_id_seq advanced to 1551
+ sequence tr_etoomuch_id_seq advanced to 1584
+ sequence tr_etoomuch_id_seq advanced to 1617
+ sequence tr_etoomuch_id_seq advanced to 1650
+ sequence tr_etoomuch_id_seq advanced to 1683
+ sequence tr_etoomuch_id_seq advanced to 1716
+ sequence tr_etoomuch_id_seq advanced to 1749
+ sequence tr_etoomuch_id_seq advanced to 1782
+ sequence tr_etoomuch_id_seq advanced to 1815
+ sequence tr_etoomuch_id_seq advanced to 1848
+ sequence tr_etoomuch_id_seq advanced to 1881
+ sequence tr_etoomuch_id_seq advanced to 1914
+ sequence tr_etoomuch_id_seq advanced to 1947
+ sequence tr_etoomuch_id_seq advanced to 1980
+ sequence tr_etoomuch_id_seq advanced to 2013
+ sequence tr_etoomuch_id_seq advanced to 2046
+ sequence tr_etoomuch_id_seq advanced to 2079
+ sequence tr_etoomuch_id_seq advanced to 2112
+ sequence tr_etoomuch_id_seq advanced to 2145
+ sequence tr_etoomuch_id_seq advanced to 2178
+ sequence tr_etoomuch_id_seq advanced to 2211
+ sequence tr_etoomuch_id_seq advanced to 2244
+ sequence tr_etoomuch_id_seq advanced to 2277
+ sequence tr_etoomuch_id_seq advanced to 2310
+ sequence tr_etoomuch_id_seq advanced to 2343
+ sequence tr_etoomuch_id_seq advanced to 2376
+ sequence tr_etoomuch_id_seq advanced to 2409
+ sequence tr_etoomuch_id_seq advanced to 2442
+ sequence tr_etoomuch_id_seq advanced to 2475
+ sequence tr_etoomuch_id_seq advanced to 2508
+ sequence tr_etoomuch_id_seq advanced to 2541
+ sequence tr_etoomuch_id_seq advanced to 2574
+ sequence tr_etoomuch_id_seq advanced to 2607
+ sequence tr_etoomuch_id_seq advanced to 2640
+ sequence tr_etoomuch_id_seq advanced to 2673
+ sequence tr_etoomuch_id_seq advanced to 2706
+ sequence tr_etoomuch_id_seq advanced to 2739
+ sequence tr_etoomuch_id_seq advanced to 2772
+ sequence tr_etoomuch_id_seq advanced to 2805
+ sequence tr_etoomuch_id_seq advanced to 2838
+ sequence tr_etoomuch_id_seq advanced to 2871
+ sequence tr_etoomuch_id_seq advanced to 2904
+ sequence tr_etoomuch_id_seq advanced to 2937
+ sequence tr_etoomuch_id_seq advanced to 2970
+ sequence tr_etoomuch_id_seq advanced to 3003
+ sequence tr_etoomuch_id_seq advanced to 3036
+ sequence tr_etoomuch_id_seq advanced to 3069
+ sequence tr_etoomuch_id_seq advanced to 3102
+ sequence tr_etoomuch_id_seq advanced to 3135
+ sequence tr_etoomuch_id_seq advanced to 3168
+ sequence tr_etoomuch_id_seq advanced to 3201
+ sequence tr_etoomuch_id_seq advanced to 3234
+ sequence tr_etoomuch_id_seq advanced to 3267
+ sequence tr_etoomuch_id_seq advanced to 3300
+ sequence tr_etoomuch_id_seq advanced to 3333
+ sequence tr_etoomuch_id_seq advanced to 3366
+ sequence tr_etoomuch_id_seq advanced to 3399
+ sequence tr_etoomuch_id_seq advanced to 3432
+ sequence tr_etoomuch_id_seq advanced to 3465
+ sequence tr_etoomuch_id_seq advanced to 3498
+ sequence tr_etoomuch_id_seq advanced to 3531
+ sequence tr_etoomuch_id_seq advanced to 3564
+ sequence tr_etoomuch_id_seq advanced to 3597
+ sequence tr_etoomuch_id_seq advanced to 3630
+ sequence tr_etoomuch_id_seq advanced to 3663
+ sequence tr_etoomuch_id_seq advanced to 3696
+ sequence tr_etoomuch_id_seq advanced to 3729
+ sequence tr_etoomuch_id_seq advanced to 3762
+ sequence tr_etoomuch_id_seq advanced to 3795
+ sequence tr_etoomuch_id_seq advanced to 3828
+ sequence tr_etoomuch_id_seq advanced to 3861
+ sequence tr_etoomuch_id_seq advanced to 3894
+ sequence tr_etoomuch_id_seq advanced to 3927
+ sequence tr_etoomuch_id_seq advanced to 3960
+ sequence tr_etoomuch_id_seq advanced to 3993
+ sequence tr_etoomuch_id_seq advanced to 4026
+ sequence tr_etoomuch_id_seq advanced to 4059
+ sequence tr_etoomuch_id_seq advanced to 4092
+ sequence tr_etoomuch_id_seq advanced to 4125
+ sequence tr_etoomuch_id_seq advanced to 4158
+ sequence tr_etoomuch_id_seq advanced to 4191
+ sequence tr_etoomuch_id_seq advanced to 4224
+ sequence tr_etoomuch_id_seq advanced to 4257
+ sequence tr_etoomuch_id_seq advanced to 4290
+ sequence tr_etoomuch_id_seq advanced to 4323
+ sequence tr_etoomuch_id_seq advanced to 4356
+ sequence tr_etoomuch_id_seq advanced to 4389
+ sequence tr_etoomuch_id_seq advanced to 4422
+ sequence tr_etoomuch_id_seq advanced to 4455
+ sequence tr_etoomuch_id_seq advanced to 4488
+ sequence tr_etoomuch_id_seq advanced to 4521
+ sequence tr_etoomuch_id_seq advanced to 4554
+ sequence tr_etoomuch_id_seq advanced to 4587
+ sequence tr_etoomuch_id_seq advanced to 4620
+ sequence tr_etoomuch_id_seq advanced to 4653
+ sequence tr_etoomuch_id_seq advanced to 4686
+ sequence tr_etoomuch_id_seq advanced to 4719
+ sequence tr_etoomuch_id_seq advanced to 4752
+ sequence tr_etoomuch_id_seq advanced to 4785
+ sequence tr_etoomuch_id_seq advanced to 4818
+ sequence tr_etoomuch_id_seq advanced to 4851
+ sequence tr_etoomuch_id_seq advanced to 4884
+ sequence tr_etoomuch_id_seq advanced to 4917
+ sequence tr_etoomuch_id_seq advanced to 4950
+ sequence tr_etoomuch_id_seq advanced to 4983
+ sequence tr_etoomuch_id_seq advanced to 5016
+ sequence tr_etoomuch_id_seq advanced to 5049
+ sequence tr_etoomuch_id_seq advanced to 5082
+ sequence tr_etoomuch_id_seq advanced to 5115
+ sequence tr_etoomuch_id_seq advanced to 5148
+ sequence tr_etoomuch_id_seq advanced to 5181
+ sequence tr_etoomuch_id_seq advanced to 5214
+ sequence tr_etoomuch_id_seq advanced to 5247
+ sequence tr_etoomuch_id_seq advanced to 5280
+ sequence tr_etoomuch_id_seq advanced to 5313
+ sequence tr_etoomuch_id_seq advanced to 5346
+ sequence tr_etoomuch_id_seq advanced to 5379
+ sequence tr_etoomuch_id_seq advanced to 5412
+ sequence tr_etoomuch_id_seq advanced to 5445
+ sequence tr_etoomuch_id_seq advanced to 5478
+ sequence tr_etoomuch_id_seq advanced to 5511
+ sequence tr_etoomuch_id_seq advanced to 5544
+ sequence tr_etoomuch_id_seq advanced to 5577
+ sequence tr_etoomuch_id_seq advanced to 5610
+ sequence tr_etoomuch_id_seq advanced to 5643
+ sequence tr_etoomuch_id_seq advanced to 5676
+ sequence tr_etoomuch_id_seq advanced to 5709
+ sequence tr_etoomuch_id_seq advanced to 5742
+ sequence tr_etoomuch_id_seq advanced to 5775
+ sequence tr_etoomuch_id_seq advanced to 5808
+ sequence tr_etoomuch_id_seq advanced to 5841
+ sequence tr_etoomuch_id_seq advanced to 5874
+ sequence tr_etoomuch_id_seq advanced to 5907
+ sequence tr_etoomuch_id_seq advanced to 5940
+ sequence tr_etoomuch_id_seq advanced to 5973
+ sequence tr_etoomuch_id_seq advanced to 6006
+ sequence tr_etoomuch_id_seq advanced to 6039
+ sequence tr_etoomuch_id_seq advanced to 6072
+ sequence tr_etoomuch_id_seq advanced to 6105
+ sequence tr_etoomuch_id_seq advanced to 6138
+ sequence tr_etoomuch_id_seq advanced to 6171
+ sequence tr_etoomuch_id_seq advanced to 6204
+ sequence tr_etoomuch_id_seq advanced to 6237
+ sequence tr_etoomuch_id_seq advanced to 6270
+ sequence tr_etoomuch_id_seq advanced to 6303
+ sequence tr_etoomuch_id_seq advanced to 6336
+ sequence tr_etoomuch_id_seq advanced to 6369
+ sequence tr_etoomuch_id_seq advanced to 6402
+ sequence tr_etoomuch_id_seq advanced to 6435
+ sequence tr_etoomuch_id_seq advanced to 6468
+ sequence tr_etoomuch_id_seq advanced to 6501
+ sequence tr_etoomuch_id_seq advanced to 6534
+ sequence tr_etoomuch_id_seq advanced to 6567
+ sequence tr_etoomuch_id_seq advanced to 6600
+ sequence tr_etoomuch_id_seq advanced to 6633
+ sequence tr_etoomuch_id_seq advanced to 6666
+ sequence tr_etoomuch_id_seq advanced to 6699
+ sequence tr_etoomuch_id_seq advanced to 6732
+ sequence tr_etoomuch_id_seq advanced to 6765
+ sequence tr_etoomuch_id_seq advanced to 6798
+ sequence tr_etoomuch_id_seq advanced to 6831
+ sequence tr_etoomuch_id_seq advanced to 6864
+ sequence tr_etoomuch_id_seq advanced to 6897
+ sequence tr_etoomuch_id_seq advanced to 6930
+ sequence tr_etoomuch_id_seq advanced to 6963
+ sequence tr_etoomuch_id_seq advanced to 6996
+ sequence tr_etoomuch_id_seq advanced to 7029
+ sequence tr_etoomuch_id_seq advanced to 7062
+ sequence tr_etoomuch_id_seq advanced to 7095
+ sequence tr_etoomuch_id_seq advanced to 7128
+ sequence tr_etoomuch_id_seq advanced to 7161
+ sequence tr_etoomuch_id_seq advanced to 7194
+ sequence tr_etoomuch_id_seq advanced to 7227
+ sequence tr_etoomuch_id_seq advanced to 7260
+ sequence tr_etoomuch_id_seq advanced to 7293
+ sequence tr_etoomuch_id_seq advanced to 7326
+ sequence tr_etoomuch_id_seq advanced to 7359
+ sequence tr_etoomuch_id_seq advanced to 7392
+ sequence tr_etoomuch_id_seq advanced to 7425
+ sequence tr_etoomuch_id_seq advanced to 7458
+ sequence tr_etoomuch_id_seq advanced to 7491
+ sequence tr_etoomuch_id_seq advanced to 7524
+ sequence tr_etoomuch_id_seq advanced to 7557
+ sequence tr_etoomuch_id_seq advanced to 7590
+ sequence tr_etoomuch_id_seq advanced to 7623
+ sequence tr_etoomuch_id_seq advanced to 7656
+ sequence tr_etoomuch_id_seq advanced to 7689
+ sequence tr_etoomuch_id_seq advanced to 7722
+ sequence tr_etoomuch_id_seq advanced to 7755
+ sequence tr_etoomuch_id_seq advanced to 7788
+ sequence tr_etoomuch_id_seq advanced to 7821
+ sequence tr_etoomuch_id_seq advanced to 7854
+ sequence tr_etoomuch_id_seq advanced to 7887
+ sequence tr_etoomuch_id_seq advanced to 7920
+ sequence tr_etoomuch_id_seq advanced to 7953
+ sequence tr_etoomuch_id_seq advanced to 7986
+ sequence tr_etoomuch_id_seq advanced to 8019
+ sequence tr_etoomuch_id_seq advanced to 8052
+ sequence tr_etoomuch_id_seq advanced to 8085
+ sequence tr_etoomuch_id_seq advanced to 8118
+ sequence tr_etoomuch_id_seq advanced to 8151
+ sequence tr_etoomuch_id_seq advanced to 8184
+ sequence tr_etoomuch_id_seq advanced to 8217
+ sequence tr_etoomuch_id_seq advanced to 8250
+ sequence tr_etoomuch_id_seq advanced to 8283
+ sequence tr_etoomuch_id_seq advanced to 8316
+ sequence tr_etoomuch_id_seq advanced to 8349
+ sequence tr_etoomuch_id_seq advanced to 8382
+ sequence tr_etoomuch_id_seq advanced to 8415
+ sequence tr_etoomuch_id_seq advanced to 8448
+ sequence tr_etoomuch_id_seq advanced to 8481
+ sequence tr_etoomuch_id_seq advanced to 8514
+ sequence tr_etoomuch_id_seq advanced to 8547
+ sequence tr_etoomuch_id_seq advanced to 8580
+ sequence tr_etoomuch_id_seq advanced to 8613
+ sequence tr_etoomuch_id_seq advanced to 8646
+ sequence tr_etoomuch_id_seq advanced to 8679
+ sequence tr_etoomuch_id_seq advanced to 8712
+ sequence tr_etoomuch_id_seq advanced to 8745
+ sequence tr_etoomuch_id_seq advanced to 8778
+ sequence tr_etoomuch_id_seq advanced to 8811
+ sequence tr_etoomuch_id_seq advanced to 8844
+ sequence tr_etoomuch_id_seq advanced to 8877
+ sequence tr_etoomuch_id_seq advanced to 8910
+ sequence tr_etoomuch_id_seq advanced to 8943
+ sequence tr_etoomuch_id_seq advanced to 8976
+ sequence tr_etoomuch_id_seq advanced to 9009
+ sequence tr_etoomuch_id_seq advanced to 9042
+ sequence tr_etoomuch_id_seq advanced to 9075
+ sequence tr_etoomuch_id_seq advanced to 9108
+ sequence tr_etoomuch_id_seq advanced to 9141
+ sequence tr_etoomuch_id_seq advanced to 9174
+ sequence tr_etoomuch_id_seq advanced to 9207
+ sequence tr_etoomuch_id_seq advanced to 9240
+ sequence tr_etoomuch_id_seq advanced to 9273
+ sequence tr_etoomuch_id_seq advanced to 9306
+ sequence tr_etoomuch_id_seq advanced to 9339
+ sequence tr_etoomuch_id_seq advanced to 9372
+ sequence tr_etoomuch_id_seq advanced to 9405
+ sequence tr_etoomuch_id_seq advanced to 9438
+ sequence tr_etoomuch_id_seq advanced to 9471
+ sequence tr_etoomuch_id_seq advanced to 9504
+ sequence tr_etoomuch_id_seq advanced to 9537
+ sequence tr_etoomuch_id_seq advanced to 9570
+ sequence tr_etoomuch_id_seq advanced to 9603
+ sequence tr_etoomuch_id_seq advanced to 9636
+ sequence tr_etoomuch_id_seq advanced to 9669
+ sequence tr_etoomuch_id_seq advanced to 9702
+ sequence tr_etoomuch_id_seq advanced to 9735
+ sequence tr_etoomuch_id_seq advanced to 9768
+ sequence tr_etoomuch_id_seq advanced to 9801
+ sequence tr_etoomuch_id_seq advanced to 9834
+ sequence tr_etoomuch_id_seq advanced to 9867
+ sequence tr_etoomuch_id_seq advanced to 9900
+ sequence tr_etoomuch_id_seq advanced to 9933
+ sequence tr_etoomuch_id_seq advanced to 9966
+ sequence tr_etoomuch_id_seq advanced to 9999
+ sequence tr_etoomuch_id_seq advanced to 10032
+ sequence tr_etoomuch_id_seq advanced to 10065
+ sequence tr_etoomuch_id_seq advanced to 10098
+ sequence tr_etoomuch_id_seq advanced to 10131
+ sequence tr_etoomuch_id_seq advanced to 10164
+ sequence tr_etoomuch_id_seq advanced to 10197
+ sequence tr_etoomuch_id_seq advanced to 10230
+ sequence tr_etoomuch_id_seq advanced to 10263
+ sequence tr_sub_id_seq advanced to 1
+ sequence tr_sub_id_seq advanced to 1
+ sequence tr_sub_id_seq advanced to 33
+ sequence replication_metadata_id_seq advanced to 1
+ sequence replication_metadata_id_seq advanced to 1
+ sequence replication_metadata_id_seq advanced to 33
+ sequence table_without_key_id_seq advanced to 1
+ sequence table_without_key_id_seq advanced to 1
+ sequence table_without_key_id_seq advanced to 33
+ sequence table_with_pkey_id_seq advanced to 1
+ sequence table_with_pkey_id_seq advanced to 1
+ sequence table_with_pkey_id_seq advanced to 33
+ sequence table_with_unique_not_null_id_seq advanced to 1
+ sequence table_with_unique_not_null_id_seq advanced to 1
+ sequence table_with_unique_not_null_id_seq advanced to 33
+ sequence toasttable_rand_seq advanced to 79
+ sequence toasttable_id_seq advanced to 1
+ sequence toasttable_id_seq advanced to 1
+ sequence toasttable_id_seq advanced to 33
+ sequence toasttable_rand_seq advanced to 48047
  BEGIN
  table public.toasttable: INSERT: id[integer]:3 toasted_col1[text]:'12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000' rand1[double precision]:6075 toasted_col2[text]:null rand2[double precision]:7574
  COMMIT
  BEGIN
  table public.toasttable: UPDATE: id[integer]:1 toasted_col1[text]:unchanged-toast-datum rand1[double precision]:79 toasted_col2[text]:'12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000' rand2[double precision]:1578
  COMMIT
-(6 rows)
+(348 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');
- data 
-------
-(0 rows)
+                           data                            
+-----------------------------------------------------------
+ sequence replication_example_id_seq advanced to 1
+ sequence replication_example_id_seq advanced to 1
+ sequence replication_example_id_seq advanced to 33
+ sequence tr_unique_id2_seq advanced to 1
+ sequence tr_unique_id2_seq advanced to 1
+ sequence tr_unique_id2_seq advanced to 33
+ sequence tr_pkey_id_seq advanced to 1
+ sequence tr_pkey_id_seq advanced to 33
+ sequence tr_pkey_id_seq advanced to 1
+ sequence tr_etoomuch_id_seq advanced to 1
+ sequence tr_etoomuch_id_seq advanced to 1
+ sequence tr_etoomuch_id_seq advanced to 33
+ sequence tr_etoomuch_id_seq advanced to 66
+ sequence tr_etoomuch_id_seq advanced to 99
+ sequence tr_etoomuch_id_seq advanced to 132
+ sequence tr_etoomuch_id_seq advanced to 165
+ sequence tr_etoomuch_id_seq advanced to 198
+ sequence tr_etoomuch_id_seq advanced to 231
+ sequence tr_etoomuch_id_seq advanced to 264
+ sequence tr_etoomuch_id_seq advanced to 297
+ sequence tr_etoomuch_id_seq advanced to 330
+ sequence tr_etoomuch_id_seq advanced to 363
+ sequence tr_etoomuch_id_seq advanced to 396
+ sequence tr_etoomuch_id_seq advanced to 429
+ sequence tr_etoomuch_id_seq advanced to 462
+ sequence tr_etoomuch_id_seq advanced to 495
+ sequence tr_etoomuch_id_seq advanced to 528
+ sequence tr_etoomuch_id_seq advanced to 561
+ sequence tr_etoomuch_id_seq advanced to 594
+ sequence tr_etoomuch_id_seq advanced to 627
+ sequence tr_etoomuch_id_seq advanced to 660
+ sequence tr_etoomuch_id_seq advanced to 693
+ sequence tr_etoomuch_id_seq advanced to 726
+ sequence tr_etoomuch_id_seq advanced to 759
+ sequence tr_etoomuch_id_seq advanced to 792
+ sequence tr_etoomuch_id_seq advanced to 825
+ sequence tr_etoomuch_id_seq advanced to 858
+ sequence tr_etoomuch_id_seq advanced to 891
+ sequence tr_etoomuch_id_seq advanced to 924
+ sequence tr_etoomuch_id_seq advanced to 957
+ sequence tr_etoomuch_id_seq advanced to 990
+ sequence tr_etoomuch_id_seq advanced to 1023
+ sequence tr_etoomuch_id_seq advanced to 1056
+ sequence tr_etoomuch_id_seq advanced to 1089
+ sequence tr_etoomuch_id_seq advanced to 1122
+ sequence tr_etoomuch_id_seq advanced to 1155
+ sequence tr_etoomuch_id_seq advanced to 1188
+ sequence tr_etoomuch_id_seq advanced to 1221
+ sequence tr_etoomuch_id_seq advanced to 1254
+ sequence tr_etoomuch_id_seq advanced to 1287
+ sequence tr_etoomuch_id_seq advanced to 1320
+ sequence tr_etoomuch_id_seq advanced to 1353
+ sequence tr_etoomuch_id_seq advanced to 1386
+ sequence tr_etoomuch_id_seq advanced to 1419
+ sequence tr_etoomuch_id_seq advanced to 1452
+ sequence tr_etoomuch_id_seq advanced to 1485
+ sequence tr_etoomuch_id_seq advanced to 1518
+ sequence tr_etoomuch_id_seq advanced to 1551
+ sequence tr_etoomuch_id_seq advanced to 1584
+ sequence tr_etoomuch_id_seq advanced to 1617
+ sequence tr_etoomuch_id_seq advanced to 1650
+ sequence tr_etoomuch_id_seq advanced to 1683
+ sequence tr_etoomuch_id_seq advanced to 1716
+ sequence tr_etoomuch_id_seq advanced to 1749
+ sequence tr_etoomuch_id_seq advanced to 1782
+ sequence tr_etoomuch_id_seq advanced to 1815
+ sequence tr_etoomuch_id_seq advanced to 1848
+ sequence tr_etoomuch_id_seq advanced to 1881
+ sequence tr_etoomuch_id_seq advanced to 1914
+ sequence tr_etoomuch_id_seq advanced to 1947
+ sequence tr_etoomuch_id_seq advanced to 1980
+ sequence tr_etoomuch_id_seq advanced to 2013
+ sequence tr_etoomuch_id_seq advanced to 2046
+ sequence tr_etoomuch_id_seq advanced to 2079
+ sequence tr_etoomuch_id_seq advanced to 2112
+ sequence tr_etoomuch_id_seq advanced to 2145
+ sequence tr_etoomuch_id_seq advanced to 2178
+ sequence tr_etoomuch_id_seq advanced to 2211
+ sequence tr_etoomuch_id_seq advanced to 2244
+ sequence tr_etoomuch_id_seq advanced to 2277
+ sequence tr_etoomuch_id_seq advanced to 2310
+ sequence tr_etoomuch_id_seq advanced to 2343
+ sequence tr_etoomuch_id_seq advanced to 2376
+ sequence tr_etoomuch_id_seq advanced to 2409
+ sequence tr_etoomuch_id_seq advanced to 2442
+ sequence tr_etoomuch_id_seq advanced to 2475
+ sequence tr_etoomuch_id_seq advanced to 2508
+ sequence tr_etoomuch_id_seq advanced to 2541
+ sequence tr_etoomuch_id_seq advanced to 2574
+ sequence tr_etoomuch_id_seq advanced to 2607
+ sequence tr_etoomuch_id_seq advanced to 2640
+ sequence tr_etoomuch_id_seq advanced to 2673
+ sequence tr_etoomuch_id_seq advanced to 2706
+ sequence tr_etoomuch_id_seq advanced to 2739
+ sequence tr_etoomuch_id_seq advanced to 2772
+ sequence tr_etoomuch_id_seq advanced to 2805
+ sequence tr_etoomuch_id_seq advanced to 2838
+ sequence tr_etoomuch_id_seq advanced to 2871
+ sequence tr_etoomuch_id_seq advanced to 2904
+ sequence tr_etoomuch_id_seq advanced to 2937
+ sequence tr_etoomuch_id_seq advanced to 2970
+ sequence tr_etoomuch_id_seq advanced to 3003
+ sequence tr_etoomuch_id_seq advanced to 3036
+ sequence tr_etoomuch_id_seq advanced to 3069
+ sequence tr_etoomuch_id_seq advanced to 3102
+ sequence tr_etoomuch_id_seq advanced to 3135
+ sequence tr_etoomuch_id_seq advanced to 3168
+ sequence tr_etoomuch_id_seq advanced to 3201
+ sequence tr_etoomuch_id_seq advanced to 3234
+ sequence tr_etoomuch_id_seq advanced to 3267
+ sequence tr_etoomuch_id_seq advanced to 3300
+ sequence tr_etoomuch_id_seq advanced to 3333
+ sequence tr_etoomuch_id_seq advanced to 3366
+ sequence tr_etoomuch_id_seq advanced to 3399
+ sequence tr_etoomuch_id_seq advanced to 3432
+ sequence tr_etoomuch_id_seq advanced to 3465
+ sequence tr_etoomuch_id_seq advanced to 3498
+ sequence tr_etoomuch_id_seq advanced to 3531
+ sequence tr_etoomuch_id_seq advanced to 3564
+ sequence tr_etoomuch_id_seq advanced to 3597
+ sequence tr_etoomuch_id_seq advanced to 3630
+ sequence tr_etoomuch_id_seq advanced to 3663
+ sequence tr_etoomuch_id_seq advanced to 3696
+ sequence tr_etoomuch_id_seq advanced to 3729
+ sequence tr_etoomuch_id_seq advanced to 3762
+ sequence tr_etoomuch_id_seq advanced to 3795
+ sequence tr_etoomuch_id_seq advanced to 3828
+ sequence tr_etoomuch_id_seq advanced to 3861
+ sequence tr_etoomuch_id_seq advanced to 3894
+ sequence tr_etoomuch_id_seq advanced to 3927
+ sequence tr_etoomuch_id_seq advanced to 3960
+ sequence tr_etoomuch_id_seq advanced to 3993
+ sequence tr_etoomuch_id_seq advanced to 4026
+ sequence tr_etoomuch_id_seq advanced to 4059
+ sequence tr_etoomuch_id_seq advanced to 4092
+ sequence tr_etoomuch_id_seq advanced to 4125
+ sequence tr_etoomuch_id_seq advanced to 4158
+ sequence tr_etoomuch_id_seq advanced to 4191
+ sequence tr_etoomuch_id_seq advanced to 4224
+ sequence tr_etoomuch_id_seq advanced to 4257
+ sequence tr_etoomuch_id_seq advanced to 4290
+ sequence tr_etoomuch_id_seq advanced to 4323
+ sequence tr_etoomuch_id_seq advanced to 4356
+ sequence tr_etoomuch_id_seq advanced to 4389
+ sequence tr_etoomuch_id_seq advanced to 4422
+ sequence tr_etoomuch_id_seq advanced to 4455
+ sequence tr_etoomuch_id_seq advanced to 4488
+ sequence tr_etoomuch_id_seq advanced to 4521
+ sequence tr_etoomuch_id_seq advanced to 4554
+ sequence tr_etoomuch_id_seq advanced to 4587
+ sequence tr_etoomuch_id_seq advanced to 4620
+ sequence tr_etoomuch_id_seq advanced to 4653
+ sequence tr_etoomuch_id_seq advanced to 4686
+ sequence tr_etoomuch_id_seq advanced to 4719
+ sequence tr_etoomuch_id_seq advanced to 4752
+ sequence tr_etoomuch_id_seq advanced to 4785
+ sequence tr_etoomuch_id_seq advanced to 4818
+ sequence tr_etoomuch_id_seq advanced to 4851
+ sequence tr_etoomuch_id_seq advanced to 4884
+ sequence tr_etoomuch_id_seq advanced to 4917
+ sequence tr_etoomuch_id_seq advanced to 4950
+ sequence tr_etoomuch_id_seq advanced to 4983
+ sequence tr_etoomuch_id_seq advanced to 5016
+ sequence tr_etoomuch_id_seq advanced to 5049
+ sequence tr_etoomuch_id_seq advanced to 5082
+ sequence tr_etoomuch_id_seq advanced to 5115
+ sequence tr_etoomuch_id_seq advanced to 5148
+ sequence tr_etoomuch_id_seq advanced to 5181
+ sequence tr_etoomuch_id_seq advanced to 5214
+ sequence tr_etoomuch_id_seq advanced to 5247
+ sequence tr_etoomuch_id_seq advanced to 5280
+ sequence tr_etoomuch_id_seq advanced to 5313
+ sequence tr_etoomuch_id_seq advanced to 5346
+ sequence tr_etoomuch_id_seq advanced to 5379
+ sequence tr_etoomuch_id_seq advanced to 5412
+ sequence tr_etoomuch_id_seq advanced to 5445
+ sequence tr_etoomuch_id_seq advanced to 5478
+ sequence tr_etoomuch_id_seq advanced to 5511
+ sequence tr_etoomuch_id_seq advanced to 5544
+ sequence tr_etoomuch_id_seq advanced to 5577
+ sequence tr_etoomuch_id_seq advanced to 5610
+ sequence tr_etoomuch_id_seq advanced to 5643
+ sequence tr_etoomuch_id_seq advanced to 5676
+ sequence tr_etoomuch_id_seq advanced to 5709
+ sequence tr_etoomuch_id_seq advanced to 5742
+ sequence tr_etoomuch_id_seq advanced to 5775
+ sequence tr_etoomuch_id_seq advanced to 5808
+ sequence tr_etoomuch_id_seq advanced to 5841
+ sequence tr_etoomuch_id_seq advanced to 5874
+ sequence tr_etoomuch_id_seq advanced to 5907
+ sequence tr_etoomuch_id_seq advanced to 5940
+ sequence tr_etoomuch_id_seq advanced to 5973
+ sequence tr_etoomuch_id_seq advanced to 6006
+ sequence tr_etoomuch_id_seq advanced to 6039
+ sequence tr_etoomuch_id_seq advanced to 6072
+ sequence tr_etoomuch_id_seq advanced to 6105
+ sequence tr_etoomuch_id_seq advanced to 6138
+ sequence tr_etoomuch_id_seq advanced to 6171
+ sequence tr_etoomuch_id_seq advanced to 6204
+ sequence tr_etoomuch_id_seq advanced to 6237
+ sequence tr_etoomuch_id_seq advanced to 6270
+ sequence tr_etoomuch_id_seq advanced to 6303
+ sequence tr_etoomuch_id_seq advanced to 6336
+ sequence tr_etoomuch_id_seq advanced to 6369
+ sequence tr_etoomuch_id_seq advanced to 6402
+ sequence tr_etoomuch_id_seq advanced to 6435
+ sequence tr_etoomuch_id_seq advanced to 6468
+ sequence tr_etoomuch_id_seq advanced to 6501
+ sequence tr_etoomuch_id_seq advanced to 6534
+ sequence tr_etoomuch_id_seq advanced to 6567
+ sequence tr_etoomuch_id_seq advanced to 6600
+ sequence tr_etoomuch_id_seq advanced to 6633
+ sequence tr_etoomuch_id_seq advanced to 6666
+ sequence tr_etoomuch_id_seq advanced to 6699
+ sequence tr_etoomuch_id_seq advanced to 6732
+ sequence tr_etoomuch_id_seq advanced to 6765
+ sequence tr_etoomuch_id_seq advanced to 6798
+ sequence tr_etoomuch_id_seq advanced to 6831
+ sequence tr_etoomuch_id_seq advanced to 6864
+ sequence tr_etoomuch_id_seq advanced to 6897
+ sequence tr_etoomuch_id_seq advanced to 6930
+ sequence tr_etoomuch_id_seq advanced to 6963
+ sequence tr_etoomuch_id_seq advanced to 6996
+ sequence tr_etoomuch_id_seq advanced to 7029
+ sequence tr_etoomuch_id_seq advanced to 7062
+ sequence tr_etoomuch_id_seq advanced to 7095
+ sequence tr_etoomuch_id_seq advanced to 7128
+ sequence tr_etoomuch_id_seq advanced to 7161
+ sequence tr_etoomuch_id_seq advanced to 7194
+ sequence tr_etoomuch_id_seq advanced to 7227
+ sequence tr_etoomuch_id_seq advanced to 7260
+ sequence tr_etoomuch_id_seq advanced to 7293
+ sequence tr_etoomuch_id_seq advanced to 7326
+ sequence tr_etoomuch_id_seq advanced to 7359
+ sequence tr_etoomuch_id_seq advanced to 7392
+ sequence tr_etoomuch_id_seq advanced to 7425
+ sequence tr_etoomuch_id_seq advanced to 7458
+ sequence tr_etoomuch_id_seq advanced to 7491
+ sequence tr_etoomuch_id_seq advanced to 7524
+ sequence tr_etoomuch_id_seq advanced to 7557
+ sequence tr_etoomuch_id_seq advanced to 7590
+ sequence tr_etoomuch_id_seq advanced to 7623
+ sequence tr_etoomuch_id_seq advanced to 7656
+ sequence tr_etoomuch_id_seq advanced to 7689
+ sequence tr_etoomuch_id_seq advanced to 7722
+ sequence tr_etoomuch_id_seq advanced to 7755
+ sequence tr_etoomuch_id_seq advanced to 7788
+ sequence tr_etoomuch_id_seq advanced to 7821
+ sequence tr_etoomuch_id_seq advanced to 7854
+ sequence tr_etoomuch_id_seq advanced to 7887
+ sequence tr_etoomuch_id_seq advanced to 7920
+ sequence tr_etoomuch_id_seq advanced to 7953
+ sequence tr_etoomuch_id_seq advanced to 7986
+ sequence tr_etoomuch_id_seq advanced to 8019
+ sequence tr_etoomuch_id_seq advanced to 8052
+ sequence tr_etoomuch_id_seq advanced to 8085
+ sequence tr_etoomuch_id_seq advanced to 8118
+ sequence tr_etoomuch_id_seq advanced to 8151
+ sequence tr_etoomuch_id_seq advanced to 8184
+ sequence tr_etoomuch_id_seq advanced to 8217
+ sequence tr_etoomuch_id_seq advanced to 8250
+ sequence tr_etoomuch_id_seq advanced to 8283
+ sequence tr_etoomuch_id_seq advanced to 8316
+ sequence tr_etoomuch_id_seq advanced to 8349
+ sequence tr_etoomuch_id_seq advanced to 8382
+ sequence tr_etoomuch_id_seq advanced to 8415
+ sequence tr_etoomuch_id_seq advanced to 8448
+ sequence tr_etoomuch_id_seq advanced to 8481
+ sequence tr_etoomuch_id_seq advanced to 8514
+ sequence tr_etoomuch_id_seq advanced to 8547
+ sequence tr_etoomuch_id_seq advanced to 8580
+ sequence tr_etoomuch_id_seq advanced to 8613
+ sequence tr_etoomuch_id_seq advanced to 8646
+ sequence tr_etoomuch_id_seq advanced to 8679
+ sequence tr_etoomuch_id_seq advanced to 8712
+ sequence tr_etoomuch_id_seq advanced to 8745
+ sequence tr_etoomuch_id_seq advanced to 8778
+ sequence tr_etoomuch_id_seq advanced to 8811
+ sequence tr_etoomuch_id_seq advanced to 8844
+ sequence tr_etoomuch_id_seq advanced to 8877
+ sequence tr_etoomuch_id_seq advanced to 8910
+ sequence tr_etoomuch_id_seq advanced to 8943
+ sequence tr_etoomuch_id_seq advanced to 8976
+ sequence tr_etoomuch_id_seq advanced to 9009
+ sequence tr_etoomuch_id_seq advanced to 9042
+ sequence tr_etoomuch_id_seq advanced to 9075
+ sequence tr_etoomuch_id_seq advanced to 9108
+ sequence tr_etoomuch_id_seq advanced to 9141
+ sequence tr_etoomuch_id_seq advanced to 9174
+ sequence tr_etoomuch_id_seq advanced to 9207
+ sequence tr_etoomuch_id_seq advanced to 9240
+ sequence tr_etoomuch_id_seq advanced to 9273
+ sequence tr_etoomuch_id_seq advanced to 9306
+ sequence tr_etoomuch_id_seq advanced to 9339
+ sequence tr_etoomuch_id_seq advanced to 9372
+ sequence tr_etoomuch_id_seq advanced to 9405
+ sequence tr_etoomuch_id_seq advanced to 9438
+ sequence tr_etoomuch_id_seq advanced to 9471
+ sequence tr_etoomuch_id_seq advanced to 9504
+ sequence tr_etoomuch_id_seq advanced to 9537
+ sequence tr_etoomuch_id_seq advanced to 9570
+ sequence tr_etoomuch_id_seq advanced to 9603
+ sequence tr_etoomuch_id_seq advanced to 9636
+ sequence tr_etoomuch_id_seq advanced to 9669
+ sequence tr_etoomuch_id_seq advanced to 9702
+ sequence tr_etoomuch_id_seq advanced to 9735
+ sequence tr_etoomuch_id_seq advanced to 9768
+ sequence tr_etoomuch_id_seq advanced to 9801
+ sequence tr_etoomuch_id_seq advanced to 9834
+ sequence tr_etoomuch_id_seq advanced to 9867
+ sequence tr_etoomuch_id_seq advanced to 9900
+ sequence tr_etoomuch_id_seq advanced to 9933
+ sequence tr_etoomuch_id_seq advanced to 9966
+ sequence tr_etoomuch_id_seq advanced to 9999
+ sequence tr_etoomuch_id_seq advanced to 10032
+ sequence tr_etoomuch_id_seq advanced to 10065
+ sequence tr_etoomuch_id_seq advanced to 10098
+ sequence tr_etoomuch_id_seq advanced to 10131
+ sequence tr_etoomuch_id_seq advanced to 10164
+ sequence tr_etoomuch_id_seq advanced to 10197
+ sequence tr_etoomuch_id_seq advanced to 10230
+ sequence tr_etoomuch_id_seq advanced to 10263
+ sequence tr_sub_id_seq advanced to 1
+ sequence tr_sub_id_seq advanced to 1
+ sequence tr_sub_id_seq advanced to 33
+ sequence replication_metadata_id_seq advanced to 1
+ sequence replication_metadata_id_seq advanced to 1
+ sequence replication_metadata_id_seq advanced to 33
+ sequence table_without_key_id_seq advanced to 1
+ sequence table_without_key_id_seq advanced to 1
+ sequence table_without_key_id_seq advanced to 33
+ sequence table_with_pkey_id_seq advanced to 1
+ sequence table_with_pkey_id_seq advanced to 1
+ sequence table_with_pkey_id_seq advanced to 33
+ sequence table_with_unique_not_null_id_seq advanced to 1
+ sequence table_with_unique_not_null_id_seq advanced to 1
+ sequence table_with_unique_not_null_id_seq advanced to 33
+ sequence toasttable_rand_seq advanced to 79
+ sequence toasttable_id_seq advanced to 1
+ sequence toasttable_id_seq advanced to 1
+ sequence toasttable_id_seq advanced to 33
+ sequence toasttable_rand_seq advanced to 48047
+(342 rows)
 
 SELECT pg_drop_replication_slot('regression_slot');
  pg_drop_replication_slot 
diff --git a/contrib/test_decoding/expected/decoding_in_xact.out b/contrib/test_decoding/expected/decoding_in_xact.out
index ab4d3ae..e67feaa 100644
--- a/contrib/test_decoding/expected/decoding_in_xact.out
+++ b/contrib/test_decoding/expected/decoding_in_xact.out
@@ -61,23 +61,29 @@ 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');
                            data                            
 -----------------------------------------------------------
+ sequence nobarf_id_seq advanced to 1
+ sequence nobarf_id_seq advanced to 1
+ sequence nobarf_id_seq advanced to 33
  BEGIN
  table public.nobarf: INSERT: id[integer]:1 data[text]:'1'
  COMMIT
-(3 rows)
+(6 rows)
 
 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');
                            data                            
 -----------------------------------------------------------
+ sequence nobarf_id_seq advanced to 1
+ sequence nobarf_id_seq advanced to 1
+ sequence nobarf_id_seq advanced to 33
  BEGIN
  table public.nobarf: INSERT: id[integer]:2 data[text]:'2'
  COMMIT
  BEGIN
  table public.nobarf: INSERT: id[integer]:3 data[text]:'3'
  COMMIT
-(6 rows)
+(9 rows)
 
 SELECT 'stop' FROM pg_drop_replication_slot('regression_slot');
  ?column? 
diff --git a/contrib/test_decoding/expected/decoding_into_rel.out b/contrib/test_decoding/expected/decoding_into_rel.out
index be759ca..dc1da02 100644
--- a/contrib/test_decoding/expected/decoding_into_rel.out
+++ b/contrib/test_decoding/expected/decoding_into_rel.out
@@ -23,10 +23,13 @@ CREATE TABLE changeresult AS
 SELECT * FROM changeresult;
                       data                      
 ------------------------------------------------
+ sequence somechange_id_seq advanced to 1
+ sequence somechange_id_seq advanced to 1
+ sequence somechange_id_seq advanced to 33
  BEGIN
  table public.somechange: INSERT: id[integer]:1
  COMMIT
-(3 rows)
+(6 rows)
 
 INSERT INTO changeresult
     SELECT data FROM pg_logical_slot_peek_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
@@ -35,48 +38,84 @@ INSERT INTO changeresult
 SELECT * FROM changeresult;
                                                                        data                                                                       
 --------------------------------------------------------------------------------------------------------------------------------------------------
+ sequence somechange_id_seq advanced to 1
+ sequence somechange_id_seq advanced to 1
+ sequence somechange_id_seq advanced to 33
  BEGIN
  table public.somechange: INSERT: id[integer]:1
  COMMIT
+ sequence somechange_id_seq advanced to 1
+ sequence somechange_id_seq advanced to 1
+ sequence somechange_id_seq advanced to 33
  BEGIN
+ table public.changeresult: INSERT: data[text]:'sequence somechange_id_seq advanced to 1'
+ table public.changeresult: INSERT: data[text]:'sequence somechange_id_seq advanced to 1'
+ table public.changeresult: INSERT: data[text]:'sequence somechange_id_seq advanced to 33'
  table public.changeresult: INSERT: data[text]:'BEGIN'
  table public.changeresult: INSERT: data[text]:'table public.somechange: INSERT: id[integer]:1'
  table public.changeresult: INSERT: data[text]:'COMMIT'
  COMMIT
+ sequence somechange_id_seq advanced to 1
+ sequence somechange_id_seq advanced to 1
+ sequence somechange_id_seq advanced to 33
  BEGIN
+ table public.changeresult: INSERT: data[text]:'sequence somechange_id_seq advanced to 1'
+ table public.changeresult: INSERT: data[text]:'sequence somechange_id_seq advanced to 1'
+ table public.changeresult: INSERT: data[text]:'sequence somechange_id_seq advanced to 33'
  table public.changeresult: INSERT: data[text]:'BEGIN'
  table public.changeresult: INSERT: data[text]:'table public.somechange: INSERT: id[integer]:1'
  table public.changeresult: INSERT: data[text]:'COMMIT'
  COMMIT
  BEGIN
+ table public.changeresult: INSERT: data[text]:'sequence somechange_id_seq advanced to 1'
+ table public.changeresult: INSERT: data[text]:'sequence somechange_id_seq advanced to 1'
+ table public.changeresult: INSERT: data[text]:'sequence somechange_id_seq advanced to 33'
  table public.changeresult: INSERT: data[text]:'BEGIN'
+ table public.changeresult: INSERT: data[text]:'table public.changeresult: INSERT: data[text]:''sequence somechange_id_seq advanced to 1'''
+ table public.changeresult: INSERT: data[text]:'table public.changeresult: INSERT: data[text]:''sequence somechange_id_seq advanced to 1'''
+ table public.changeresult: INSERT: data[text]:'table public.changeresult: INSERT: data[text]:''sequence somechange_id_seq advanced to 33'''
  table public.changeresult: INSERT: data[text]:'table public.changeresult: INSERT: data[text]:''BEGIN'''
  table public.changeresult: INSERT: data[text]:'table public.changeresult: INSERT: data[text]:''table public.somechange: INSERT: id[integer]:1'''
  table public.changeresult: INSERT: data[text]:'table public.changeresult: INSERT: data[text]:''COMMIT'''
  table public.changeresult: INSERT: data[text]:'COMMIT'
  COMMIT
-(20 rows)
+(41 rows)
 
 DROP TABLE changeresult;
 DROP TABLE somechange;
 SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
                                                                                                   data                                                                                                  
 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ sequence somechange_id_seq advanced to 1
+ sequence somechange_id_seq advanced to 1
+ sequence somechange_id_seq advanced to 33
  BEGIN
+ table public.changeresult: INSERT: data[text]:'sequence somechange_id_seq advanced to 1'
+ table public.changeresult: INSERT: data[text]:'sequence somechange_id_seq advanced to 1'
+ table public.changeresult: INSERT: data[text]:'sequence somechange_id_seq advanced to 33'
  table public.changeresult: INSERT: data[text]:'BEGIN'
+ table public.changeresult: INSERT: data[text]:'table public.changeresult: INSERT: data[text]:''sequence somechange_id_seq advanced to 1'''
+ table public.changeresult: INSERT: data[text]:'table public.changeresult: INSERT: data[text]:''sequence somechange_id_seq advanced to 1'''
+ table public.changeresult: INSERT: data[text]:'table public.changeresult: INSERT: data[text]:''sequence somechange_id_seq advanced to 33'''
  table public.changeresult: INSERT: data[text]:'table public.changeresult: INSERT: data[text]:''BEGIN'''
  table public.changeresult: INSERT: data[text]:'table public.changeresult: INSERT: data[text]:''table public.somechange: INSERT: id[integer]:1'''
  table public.changeresult: INSERT: data[text]:'table public.changeresult: INSERT: data[text]:''COMMIT'''
  table public.changeresult: INSERT: data[text]:'COMMIT'
  table public.changeresult: INSERT: data[text]:'BEGIN'
+ table public.changeresult: INSERT: data[text]:'table public.changeresult: INSERT: data[text]:''sequence somechange_id_seq advanced to 1'''
+ table public.changeresult: INSERT: data[text]:'table public.changeresult: INSERT: data[text]:''sequence somechange_id_seq advanced to 1'''
+ table public.changeresult: INSERT: data[text]:'table public.changeresult: INSERT: data[text]:''sequence somechange_id_seq advanced to 33'''
  table public.changeresult: INSERT: data[text]:'table public.changeresult: INSERT: data[text]:''BEGIN'''
+ table public.changeresult: INSERT: data[text]:'table public.changeresult: INSERT: data[text]:''table public.changeresult: INSERT: data[text]:''''sequence somechange_id_seq advanced to 1'''''''
+ table public.changeresult: INSERT: data[text]:'table public.changeresult: INSERT: data[text]:''table public.changeresult: INSERT: data[text]:''''sequence somechange_id_seq advanced to 1'''''''
+ table public.changeresult: INSERT: data[text]:'table public.changeresult: INSERT: data[text]:''table public.changeresult: INSERT: data[text]:''''sequence somechange_id_seq advanced to 33'''''''
  table public.changeresult: INSERT: data[text]:'table public.changeresult: INSERT: data[text]:''table public.changeresult: INSERT: data[text]:''''BEGIN'''''''
  table public.changeresult: INSERT: data[text]:'table public.changeresult: INSERT: data[text]:''table public.changeresult: INSERT: data[text]:''''table public.somechange: INSERT: id[integer]:1'''''''
  table public.changeresult: INSERT: data[text]:'table public.changeresult: INSERT: data[text]:''table public.changeresult: INSERT: data[text]:''''COMMIT'''''''
  table public.changeresult: INSERT: data[text]:'table public.changeresult: INSERT: data[text]:''COMMIT'''
  table public.changeresult: INSERT: data[text]:'COMMIT'
  COMMIT
-(14 rows)
+(29 rows)
 
 SELECT 'stop' FROM pg_drop_replication_slot('regression_slot');
  ?column? 
diff --git a/contrib/test_decoding/expected/mxact.out b/contrib/test_decoding/expected/mxact.out
index f0d96cc..cea866c 100644
--- a/contrib/test_decoding/expected/mxact.out
+++ b/contrib/test_decoding/expected/mxact.out
@@ -22,6 +22,7 @@ step s0w: INSERT INTO do_write DEFAULT VALUES;
 step s0start: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', 'false');
 data           
 
+sequence do_write_id_seq advanced to 33
 BEGIN          
 table public.do_write: INSERT: id[integer]:1
 COMMIT         
@@ -56,6 +57,7 @@ data
 
 BEGIN          
 COMMIT         
+sequence do_write_id_seq advanced to 33
 BEGIN          
 table public.do_write: INSERT: id[integer]:1 ts[timestamp with time zone]:null
 COMMIT         
diff --git a/contrib/test_decoding/expected/ondisk_startup.out b/contrib/test_decoding/expected/ondisk_startup.out
index 65115c8..5b798d5 100644
--- a/contrib/test_decoding/expected/ondisk_startup.out
+++ b/contrib/test_decoding/expected/ondisk_startup.out
@@ -21,6 +21,7 @@ step s1checkpoint: CHECKPOINT;
 step s1start: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', 'false');
 data           
 
+sequence do_write_id_seq advanced to 33
 BEGIN          
 table public.do_write: INSERT: id[integer]:1 addedbys2[integer]:null
 COMMIT         
@@ -30,6 +31,7 @@ step s1insert: INSERT INTO do_write DEFAULT VALUES;
 step s1start: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', 'false');
 data           
 
+sequence do_write_id_seq advanced to 34
 BEGIN          
 table public.do_write: INSERT: id[integer]:2 addedbys2[integer]:null
 COMMIT         
diff --git a/contrib/test_decoding/expected/replorigin.out b/contrib/test_decoding/expected/replorigin.out
index c0f5125..83a524a 100644
--- a/contrib/test_decoding/expected/replorigin.out
+++ b/contrib/test_decoding/expected/replorigin.out
@@ -41,12 +41,15 @@ SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'inc
 SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
                                                                                     data                                                                                    
 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ sequence origin_tbl_id_seq advanced to 33
+ sequence target_tbl_id_seq advanced to 33
  BEGIN
- table public.target_tbl: INSERT: id[integer]:1 data[text]:'BEGIN'
- table public.target_tbl: INSERT: id[integer]:2 data[text]:'table public.origin_tbl: INSERT: id[integer]:1 data[text]:''will be replicated and decoded and decoded again'''
- table public.target_tbl: INSERT: id[integer]:3 data[text]:'COMMIT'
+ table public.target_tbl: INSERT: id[integer]:1 data[text]:'sequence origin_tbl_id_seq advanced to 33'
+ table public.target_tbl: INSERT: id[integer]:2 data[text]:'BEGIN'
+ table public.target_tbl: INSERT: id[integer]:3 data[text]:'table public.origin_tbl: INSERT: id[integer]:1 data[text]:''will be replicated and decoded and decoded again'''
+ table public.target_tbl: INSERT: id[integer]:4 data[text]:'COMMIT'
  COMMIT
-(5 rows)
+(8 rows)
 
 INSERT INTO origin_tbl(data) VALUES ('will be replicated, but not decoded again');
 -- mark session as replaying
@@ -113,19 +116,23 @@ SELECT pg_replication_origin_session_reset();
 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');
- data 
-------
-(0 rows)
+                   data                    
+-------------------------------------------
+ sequence origin_tbl_id_seq advanced to 33
+ sequence target_tbl_id_seq advanced to 33
+(2 rows)
 
 --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');
                                       data                                      
 --------------------------------------------------------------------------------
+ sequence origin_tbl_id_seq advanced to 33
+ sequence target_tbl_id_seq advanced to 33
  BEGIN
  table public.origin_tbl: INSERT: id[integer]:3 data[text]:'will be replicated'
  COMMIT
-(3 rows)
+(5 rows)
 
 SELECT pg_drop_replication_slot('regression_slot');
  pg_drop_replication_slot 
diff --git a/contrib/test_decoding/expected/rewrite.out b/contrib/test_decoding/expected/rewrite.out
index 4dcd489..93ed617 100644
--- a/contrib/test_decoding/expected/rewrite.out
+++ b/contrib/test_decoding/expected/rewrite.out
@@ -12,10 +12,13 @@ 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');
                                                    data                                                   
 ----------------------------------------------------------------------------------------------------------
+ sequence replication_example_id_seq advanced to 1
+ sequence replication_example_id_seq advanced to 1
+ sequence replication_example_id_seq advanced to 33
  BEGIN
  table public.replication_example: INSERT: id[integer]:1 somedata[integer]:1 text[character varying]:null
  COMMIT
-(3 rows)
+(6 rows)
 
 BEGIN;
 INSERT INTO replication_example(somedata) VALUES (2);
@@ -59,6 +62,9 @@ CHECKPOINT;
 SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
                                                                                        data                                                                                       
 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ sequence replication_example_id_seq advanced to 1
+ sequence replication_example_id_seq advanced to 1
+ sequence replication_example_id_seq advanced to 33
  BEGIN
  table public.replication_example: INSERT: id[integer]:2 somedata[integer]:2 text[character varying]:null
  table public.replication_example: INSERT: id[integer]:3 somedata[integer]:3 text[character varying]:null testcolumn1[integer]:1
@@ -74,7 +80,7 @@ SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'inc
  table public.replication_example: INSERT: id[integer]:7 somedata[integer]:6 text[character varying]:null testcolumn1[integer]:4 testcolumn2[integer]:null
  table public.replication_example: INSERT: id[integer]:8 somedata[integer]:7 text[character varying]:null testcolumn1[integer]:5 testcolumn2[integer]:null testcolumn3[integer]:1
  COMMIT
-(15 rows)
+(18 rows)
 
 SELECT pg_drop_replication_slot('regression_slot');
  pg_drop_replication_slot 
diff --git a/contrib/test_decoding/expected/toast.out b/contrib/test_decoding/expected/toast.out
index 735b14c..0d3d1cd 100644
--- a/contrib/test_decoding/expected/toast.out
+++ b/contrib/test_decoding/expected/toast.out
@@ -55,6 +55,11 @@ ALTER TABLE toasted_copy ALTER COLUMN data SET STORAGE EXTERNAL;
 SELECT substr(data, 1, 200) FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1');
                                                                                                   substr                                                                                                  
 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ sequence xpto_rand_seq advanced to 79
+ sequence xpto_id_seq advanced to 1
+ sequence xpto_id_seq advanced to 1
+ sequence xpto_id_seq advanced to 33
+ sequence xpto_rand_seq advanced to 48047
  BEGIN
  table public.xpto: INSERT: id[integer]:1 toasted_col1[text]:'1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  COMMIT
@@ -73,6 +78,9 @@ SELECT substr(data, 1, 200) FROM pg_logical_slot_get_changes('regression_slot',
  BEGIN
  table public.xpto: DELETE: id[integer]:1
  COMMIT
+ sequence toasted_key_id_seq advanced to 1
+ sequence toasted_key_id_seq advanced to 1
+ sequence toasted_key_id_seq advanced to 33
  BEGIN
  table public.toasted_key: INSERT: id[integer]:1 toasted_key[text]:'1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123
  COMMIT
@@ -290,7 +298,7 @@ SELECT substr(data, 1, 200) FROM pg_logical_slot_get_changes('regression_slot',
  table public.toasted_copy: INSERT: id[integer]:202 data[text]:'untoasted199'
  table public.toasted_copy: INSERT: id[integer]:203 data[text]:'untoasted200'
  COMMIT
-(235 rows)
+(243 rows)
 
 SELECT pg_drop_replication_slot('regression_slot');
  pg_drop_replication_slot 
diff --git a/contrib/test_decoding/test_decoding.c b/contrib/test_decoding/test_decoding.c
index 80fc5f4..c1456ca 100644
--- a/contrib/test_decoding/test_decoding.c
+++ b/contrib/test_decoding/test_decoding.c
@@ -64,6 +64,9 @@ static void pg_decode_change(LogicalDecodingContext *ctx,
 static bool pg_decode_filter(LogicalDecodingContext *ctx,
 				 RepOriginId origin_id);
 
+static void pg_decode_seq_advance(LogicalDecodingContext *ctx,
+		const char * seq_name, uint64 last_value);
+
 void
 _PG_init(void)
 {
@@ -82,6 +85,7 @@ _PG_output_plugin_init(OutputPluginCallbacks *cb)
 	cb->commit_cb = pg_decode_commit_txn;
 	cb->filter_by_origin_cb = pg_decode_filter;
 	cb->shutdown_cb = pg_decode_shutdown;
+	cb->seq_advance_cb = pg_decode_seq_advance;
 }
 
 
@@ -251,6 +255,18 @@ pg_decode_filter(LogicalDecodingContext *ctx,
 	return false;
 }
 
+static void
+pg_decode_seq_advance(LogicalDecodingContext *ctx, const char * seq_name,
+		uint64 last_value)
+{
+	OutputPluginPrepareWrite(ctx, true);
+
+	appendStringInfo(ctx->out, "sequence %s advanced to "UINT64_FORMAT,
+			seq_name, last_value);
+
+	OutputPluginWrite(ctx, true);
+}
+
 /*
  * Print literal `outputstr' already represented as string of type `typid'
  * into stringbuf `s'.
diff --git a/src/backend/replication/logical/decode.c b/src/backend/replication/logical/decode.c
index 9f60687..c32f509 100644
--- a/src/backend/replication/logical/decode.c
+++ b/src/backend/replication/logical/decode.c
@@ -37,6 +37,8 @@
 
 #include "catalog/pg_control.h"
 
+#include "commands/sequence.h"
+
 #include "replication/decode.h"
 #include "replication/logical.h"
 #include "replication/reorderbuffer.h"
@@ -58,6 +60,7 @@ static void DecodeHeapOp(LogicalDecodingContext *ctx, XLogRecordBuffer *buf);
 static void DecodeHeap2Op(LogicalDecodingContext *ctx, XLogRecordBuffer *buf);
 static void DecodeXactOp(LogicalDecodingContext *ctx, XLogRecordBuffer *buf);
 static void DecodeStandbyOp(LogicalDecodingContext *ctx, XLogRecordBuffer *buf);
+static void DecodeSeqOp(LogicalDecodingContext *ctx, XLogRecordBuffer *buf);
 
 /* individual record(group)'s handlers */
 static void DecodeInsert(LogicalDecodingContext *ctx, XLogRecordBuffer *buf);
@@ -71,6 +74,9 @@ static void DecodeCommit(LogicalDecodingContext *ctx, XLogRecordBuffer *buf,
 static void DecodeAbort(LogicalDecodingContext *ctx, XLogRecordBuffer *buf,
 			xl_xact_parsed_abort *parsed, TransactionId xid);
 
+static void DecodeSeqAdvance(LogicalDecodingContext *ctx, XLogRecordBuffer *buf,
+			Form_pg_sequence seq);
+
 /* common function to decode tuples */
 static void DecodeXLogTuple(char *data, Size len, ReorderBufferTupleBuf *tup);
 
@@ -107,6 +113,10 @@ LogicalDecodingProcessRecord(LogicalDecodingContext *ctx, XLogReaderState *recor
 			DecodeStandbyOp(ctx, &buf);
 			break;
 
+		case RM_SEQ_ID:
+			DecodeSeqOp(ctx, &buf);
+			break;
+
 		case RM_HEAP2_ID:
 			DecodeHeap2Op(ctx, &buf);
 			break;
@@ -130,7 +140,6 @@ LogicalDecodingProcessRecord(LogicalDecodingContext *ctx, XLogReaderState *recor
 		case RM_HASH_ID:
 		case RM_GIN_ID:
 		case RM_GIST_ID:
-		case RM_SEQ_ID:
 		case RM_SPGIST_ID:
 		case RM_BRIN_ID:
 		case RM_COMMIT_TS_ID:
@@ -303,6 +312,30 @@ DecodeStandbyOp(LogicalDecodingContext *ctx, XLogRecordBuffer *buf)
 	}
 }
 
+static void
+DecodeSeqOp(LogicalDecodingContext *ctx, XLogRecordBuffer *buf)
+{
+	SnapBuild  *builder = ctx->snapshot_builder;
+	uint8       info = XLogRecGetInfo(buf->record) & ~XLR_INFO_MASK;
+	xl_seq_rec *xlrec = (xl_seq_rec *) XLogRecGetData(buf->record);
+	HeapTuple   item;
+	Form_pg_sequence seq;
+
+	/* no point in doing anything yet */
+	if (SnapBuildCurrentState(builder) < SNAPBUILD_FULL_SNAPSHOT)
+		return;
+
+	if (info != XLOG_SEQ_LOG)
+		elog(PANIC, "DecodeSeqOp: unknown sequence xlog op code %u", info);
+
+	/* nextval_internal etc write a xl_seq_rec immediately followed by a HeapTupleData */
+	item = (HeapTuple)((char*)xlrec + sizeof(xl_seq_rec));
+
+	seq = (Form_pg_sequence)((char*)item + HEAPTUPLESIZE);
+
+	DecodeSeqAdvance(ctx, buf, seq);
+}
+
 /*
  * Handle rmgr HEAP2_ID records for DecodeRecordIntoReorderBuffer().
  */
@@ -838,6 +871,31 @@ DecodeSpecConfirm(LogicalDecodingContext *ctx, XLogRecordBuffer *buf)
 	ReorderBufferQueueChange(ctx->reorder, XLogRecGetXid(r), buf->origptr, change);
 }
 
+static void
+DecodeSeqAdvance(LogicalDecodingContext *ctx, XLogRecordBuffer *buf,
+		Form_pg_sequence seq)
+{
+	XLogReaderState *r = buf->record;
+	RelFileNode target_node;
+
+	/* If the output plugin isn't interested, don't waste any time */
+	if (ctx->callbacks.seq_advance_cb == NULL)
+		return;
+
+	/* only interested in our database */
+	XLogRecGetBlockTag(r, 0, &target_node, NULL, NULL);
+	if (target_node.dbNode != ctx->slot->data.database)
+		return;
+
+	/*
+	 * Because sequences are updated outside transaction boundaries there
+	 * is no need to use a reorder buffer here. We invoke the logical
+	 * decoding plugin callback immediately.
+	 */
+	seq_advance_cb_wrapper(ctx, buf->origptr, NameStr(seq->sequence_name),
+			seq->last_value);
+}
+
 
 /*
  * Read a HeapTuple as WAL logged by heap_insert, heap_update and heap_delete
diff --git a/src/backend/replication/logical/logical.c b/src/backend/replication/logical/logical.c
index 1ce9081..30527df 100644
--- a/src/backend/replication/logical/logical.c
+++ b/src/backend/replication/logical/logical.c
@@ -683,7 +683,7 @@ filter_by_origin_cb_wrapper(LogicalDecodingContext *ctx, RepOriginId origin_id)
 
 	/* Push callback + info on the error context stack */
 	state.ctx = ctx;
-	state.callback_name = "shutdown";
+	state.callback_name = "filter_by_origin";
 	state.report_location = InvalidXLogRecPtr;
 	errcallback.callback = output_plugin_error_callback;
 	errcallback.arg = (void *) &state;
@@ -702,6 +702,32 @@ filter_by_origin_cb_wrapper(LogicalDecodingContext *ctx, RepOriginId origin_id)
 	return ret;
 }
 
+void
+seq_advance_cb_wrapper(LogicalDecodingContext *ctx, XLogRecPtr change_lsn,
+		const char * seq_name, uint64 last_value)
+{
+	LogicalErrorCallbackState state;
+	ErrorContextCallback errcallback;
+
+	/* Push callback + info on the error context stack */
+	state.ctx = ctx;
+	state.callback_name = "advance_seq";
+	state.report_location = change_lsn;
+	errcallback.callback = output_plugin_error_callback;
+	errcallback.arg = (void *) &state;
+	errcallback.previous = error_context_stack;
+	error_context_stack = &errcallback;
+
+	ctx->accept_writes = true;
+
+	/* do the actual work: call callback */
+	ctx->callbacks.seq_advance_cb(ctx, seq_name, last_value);
+
+	/* Pop the error context stack */
+	error_context_stack = errcallback.previous;
+}
+
+
 /*
  * Set the required catalog xmin horizon for historic snapshots in the current
  * replication slot.
diff --git a/src/include/replication/logical.h b/src/include/replication/logical.h
index dfdbe65..ba9f936 100644
--- a/src/include/replication/logical.h
+++ b/src/include/replication/logical.h
@@ -99,4 +99,7 @@ extern void LogicalConfirmReceivedLocation(XLogRecPtr lsn);
 
 extern bool filter_by_origin_cb_wrapper(LogicalDecodingContext *ctx, RepOriginId origin_id);
 
+extern void seq_advance_cb_wrapper(LogicalDecodingContext *ctx,
+		XLogRecPtr change_lsn, const char * seq_name, uint64 last_value);
+
 #endif
diff --git a/src/include/replication/output_plugin.h b/src/include/replication/output_plugin.h
index 17c3de2..f6d6a10 100644
--- a/src/include/replication/output_plugin.h
+++ b/src/include/replication/output_plugin.h
@@ -88,6 +88,21 @@ typedef void (*LogicalDecodeShutdownCB) (
 );
 
 /*
+ * A sequence has been advanced, with a new chunk allocated and written
+ * to WAL.
+ *
+ * This doesn't happen every time nextval() is called, there's caching.  It's
+ * guaranteed that the new sequence position will be at or ahead of the most
+ * recent value any committed xact has obtained when this callback is invoked.
+ */
+typedef void (*LogicalDecodeSeqAdvanceCB) (
+											struct LogicalDecodingContext *,
+											const char * seq_name,
+											uint64 last_value
+		);
+
+
+/*
  * Output plugin callbacks
  */
 typedef struct OutputPluginCallbacks
@@ -98,6 +113,7 @@ typedef struct OutputPluginCallbacks
 	LogicalDecodeCommitCB commit_cb;
 	LogicalDecodeFilterByOriginCB filter_by_origin_cb;
 	LogicalDecodeShutdownCB shutdown_cb;
+	LogicalDecodeSeqAdvanceCB seq_advance_cb;
 } OutputPluginCallbacks;
 
 void		OutputPluginPrepareWrite(struct LogicalDecodingContext *ctx, bool last_write);
-- 
2.1.0

#2Craig Ringer
craig@2ndquadrant.com
In reply to: Craig Ringer (#1)
1 attachment(s)
Re: [PATCH] Logical decoding support for sequence advances

On 14 December 2015 at 11:28, Craig Ringer <craig@2ndquadrant.com> wrote:

Hi all

Attached is a patch against 9.6 to add support for informing logical
decoding plugins of the new sequence last_value when sequence advance WAL
records are processed during decoding.

Attached a slightly updated version. It just has less spam in the
regression tests, by adding a new option to test_decoding to show
sequences, which it doesn't enable except in sequence specific tests.

--
Craig Ringer http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

Attachments:

0001-Logical-decoding-for-sequence-advances-v2.patchtext/x-patch; charset=US-ASCII; name=0001-Logical-decoding-for-sequence-advances-v2.patchDownload
From 8ee88b0850fea17086a293c8afee83af3a6b95e1 Mon Sep 17 00:00:00 2001
From: Craig Ringer <craig@2ndquadrant.com>
Date: Mon, 14 Dec 2015 15:07:30 +0800
Subject: [PATCH] Logical decoding for sequence advances

Add a new logical decoding callback seq_advance_cb that's invoked
whenever we decode a new sequence chunk allocation from WAL.

Also add support for it in test_decoding.

It's guaranteed that the last_value passed to the callback is equal to
or greater than (for +ve sequences) any value returned by a nextval()
call visible to any transaction committed at or before the callback is
invoked.

In practice it'll be quite a lot larger because PostgreSQL
preallocates large chunks of sequences to minimise WAL writes, at
the cost of wasting values if it has to do crash recovery. Logical
decoding sees the crash recovery position when it gets advanced.

Needed to make logical replication based failover possible.
---
 contrib/test_decoding/Makefile              |   2 +-
 contrib/test_decoding/expected/sequence.out | 108 ++++++++++++++++++++++++++++
 contrib/test_decoding/sql/sequence.sql      |  35 +++++++++
 contrib/test_decoding/test_decoding.c       |  33 +++++++++
 src/backend/replication/logical/decode.c    |  60 +++++++++++++++-
 src/backend/replication/logical/logical.c   |  28 +++++++-
 src/include/replication/logical.h           |   3 +
 src/include/replication/output_plugin.h     |  16 +++++
 8 files changed, 282 insertions(+), 3 deletions(-)
 create mode 100644 contrib/test_decoding/expected/sequence.out
 create mode 100644 contrib/test_decoding/sql/sequence.sql

diff --git a/contrib/test_decoding/Makefile b/contrib/test_decoding/Makefile
index a362e69..91e2765 100644
--- a/contrib/test_decoding/Makefile
+++ b/contrib/test_decoding/Makefile
@@ -38,7 +38,7 @@ submake-test_decoding:
 	$(MAKE) -C $(top_builddir)/contrib/test_decoding
 
 REGRESSCHECKS=ddl rewrite toast permissions decoding_in_xact decoding_into_rel \
-	binary prepared replorigin
+	binary prepared replorigin sequence
 
 regresscheck: | submake-regress submake-test_decoding temp-install
 	$(MKDIR_P) regression_output
diff --git a/contrib/test_decoding/expected/sequence.out b/contrib/test_decoding/expected/sequence.out
new file mode 100644
index 0000000..a13d29a
--- /dev/null
+++ b/contrib/test_decoding/expected/sequence.out
@@ -0,0 +1,108 @@
+SET synchronous_commit = on;
+SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding');
+ ?column? 
+----------
+ init
+(1 row)
+
+CREATE SEQUENCE test_seq;
+SELECT sum(nextval('test_seq')) FROM generate_series(1, 100);
+ sum  
+------
+ 5050
+(1 row)
+
+ALTER SEQUENCE test_seq RESTART WITH 2;
+SELECT sum(nextval('test_seq')) FROM generate_series(1, 100);
+ sum  
+------
+ 5150
+(1 row)
+
+ALTER SEQUENCE test_seq INCREMENT BY 5;
+SELECT sum(nextval('test_seq')) FROM generate_series(1, 100);
+  sum  
+-------
+ 35350
+(1 row)
+
+ALTER SEQUENCE test_seq CACHE 10000;
+SELECT sum(nextval('test_seq')) FROM generate_series(1, 15000);
+    sum    
+-----------
+ 571552500
+(1 row)
+
+DROP SEQUENCE test_seq;
+SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1', 'include-sequences', '1');
+                 data                 
+--------------------------------------
+ sequence test_seq advanced to 1
+ sequence test_seq advanced to 33
+ sequence test_seq advanced to 66
+ sequence test_seq advanced to 99
+ sequence test_seq advanced to 132
+ sequence test_seq advanced to 2
+ sequence test_seq advanced to 34
+ sequence test_seq advanced to 67
+ sequence test_seq advanced to 100
+ sequence test_seq advanced to 133
+ sequence test_seq advanced to 101
+ sequence test_seq advanced to 266
+ sequence test_seq advanced to 431
+ sequence test_seq advanced to 596
+ sequence test_seq advanced to 761
+ sequence test_seq advanced to 601
+ sequence test_seq advanced to 50761
+ sequence test_seq advanced to 100761
+(18 rows)
+
+CREATE SEQUENCE test2_seq MINVALUE 100 MAXVALUE 200 START 200 INCREMENT BY -1 CYCLE;
+SELECT sum(nextval('test2_seq')) FROM generate_series(1, 300);
+  sum  
+-------
+ 45147
+(1 row)
+
+SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1', 'include-sequences', '1');
+                 data                 
+--------------------------------------
+ sequence test_seq advanced to 1
+ sequence test_seq advanced to 33
+ sequence test_seq advanced to 66
+ sequence test_seq advanced to 99
+ sequence test_seq advanced to 132
+ sequence test_seq advanced to 2
+ sequence test_seq advanced to 34
+ sequence test_seq advanced to 67
+ sequence test_seq advanced to 100
+ sequence test_seq advanced to 133
+ sequence test_seq advanced to 101
+ sequence test_seq advanced to 266
+ sequence test_seq advanced to 431
+ sequence test_seq advanced to 596
+ sequence test_seq advanced to 761
+ sequence test_seq advanced to 601
+ sequence test_seq advanced to 50761
+ sequence test_seq advanced to 100761
+ sequence test2_seq advanced to 200
+ sequence test2_seq advanced to 168
+ sequence test2_seq advanced to 135
+ sequence test2_seq advanced to 102
+ sequence test2_seq advanced to 100
+ sequence test2_seq advanced to 168
+ sequence test2_seq advanced to 135
+ sequence test2_seq advanced to 102
+ sequence test2_seq advanced to 100
+ sequence test2_seq advanced to 168
+ sequence test2_seq advanced to 135
+ sequence test2_seq advanced to 102
+(30 rows)
+
+DROP SEQUENCE test2_seq;
+SELECT pg_drop_replication_slot('regression_slot');
+ pg_drop_replication_slot 
+--------------------------
+ 
+(1 row)
+
diff --git a/contrib/test_decoding/sql/sequence.sql b/contrib/test_decoding/sql/sequence.sql
new file mode 100644
index 0000000..cf9dba3
--- /dev/null
+++ b/contrib/test_decoding/sql/sequence.sql
@@ -0,0 +1,35 @@
+SET synchronous_commit = on;
+
+SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding');
+
+CREATE SEQUENCE test_seq;
+
+SELECT sum(nextval('test_seq')) FROM generate_series(1, 100);
+
+ALTER SEQUENCE test_seq RESTART WITH 2;
+
+SELECT sum(nextval('test_seq')) FROM generate_series(1, 100);
+
+ALTER SEQUENCE test_seq INCREMENT BY 5;
+
+SELECT sum(nextval('test_seq')) FROM generate_series(1, 100);
+
+ALTER SEQUENCE test_seq CACHE 10000;
+
+SELECT sum(nextval('test_seq')) FROM generate_series(1, 15000);
+
+DROP SEQUENCE test_seq;
+
+SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1', 'include-sequences', '1');
+
+
+CREATE SEQUENCE test2_seq MINVALUE 100 MAXVALUE 200 START 200 INCREMENT BY -1 CYCLE;
+
+SELECT sum(nextval('test2_seq')) FROM generate_series(1, 300);
+
+SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1', 'include-sequences', '1');
+
+DROP SEQUENCE test2_seq;
+
+
+SELECT pg_drop_replication_slot('regression_slot');
diff --git a/contrib/test_decoding/test_decoding.c b/contrib/test_decoding/test_decoding.c
index 80fc5f4..1197524 100644
--- a/contrib/test_decoding/test_decoding.c
+++ b/contrib/test_decoding/test_decoding.c
@@ -45,6 +45,7 @@ typedef struct
 	bool		skip_empty_xacts;
 	bool		xact_wrote_changes;
 	bool		only_local;
+	bool		include_sequences;
 } TestDecodingData;
 
 static void pg_decode_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt,
@@ -64,6 +65,9 @@ static void pg_decode_change(LogicalDecodingContext *ctx,
 static bool pg_decode_filter(LogicalDecodingContext *ctx,
 				 RepOriginId origin_id);
 
+static void pg_decode_seq_advance(LogicalDecodingContext *ctx,
+		const char * seq_name, uint64 last_value);
+
 void
 _PG_init(void)
 {
@@ -82,6 +86,7 @@ _PG_output_plugin_init(OutputPluginCallbacks *cb)
 	cb->commit_cb = pg_decode_commit_txn;
 	cb->filter_by_origin_cb = pg_decode_filter;
 	cb->shutdown_cb = pg_decode_shutdown;
+	cb->seq_advance_cb = pg_decode_seq_advance;
 }
 
 
@@ -172,6 +177,17 @@ pg_decode_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt,
 				  errmsg("could not parse value \"%s\" for parameter \"%s\"",
 						 strVal(elem->arg), elem->defname)));
 		}
+		else if (strcmp(elem->defname, "include-sequences") == 0)
+		{
+
+			if (elem->arg == NULL)
+				data->include_sequences = true;
+			else if (!parse_bool(strVal(elem->arg), &data->include_sequences))
+				ereport(ERROR,
+						(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
+				  errmsg("could not parse value \"%s\" for parameter \"%s\"",
+						 strVal(elem->arg), elem->defname)));
+		}
 		else
 		{
 			ereport(ERROR,
@@ -251,6 +267,23 @@ pg_decode_filter(LogicalDecodingContext *ctx,
 	return false;
 }
 
+static void
+pg_decode_seq_advance(LogicalDecodingContext *ctx, const char * seq_name,
+		uint64 last_value)
+{
+	TestDecodingData *data = ctx->output_plugin_private;
+
+	if (!data->include_sequences)
+		return;
+
+	OutputPluginPrepareWrite(ctx, true);
+
+	appendStringInfo(ctx->out, "sequence %s advanced to "UINT64_FORMAT,
+			seq_name, last_value);
+
+	OutputPluginWrite(ctx, true);
+}
+
 /*
  * Print literal `outputstr' already represented as string of type `typid'
  * into stringbuf `s'.
diff --git a/src/backend/replication/logical/decode.c b/src/backend/replication/logical/decode.c
index 9f60687..c32f509 100644
--- a/src/backend/replication/logical/decode.c
+++ b/src/backend/replication/logical/decode.c
@@ -37,6 +37,8 @@
 
 #include "catalog/pg_control.h"
 
+#include "commands/sequence.h"
+
 #include "replication/decode.h"
 #include "replication/logical.h"
 #include "replication/reorderbuffer.h"
@@ -58,6 +60,7 @@ static void DecodeHeapOp(LogicalDecodingContext *ctx, XLogRecordBuffer *buf);
 static void DecodeHeap2Op(LogicalDecodingContext *ctx, XLogRecordBuffer *buf);
 static void DecodeXactOp(LogicalDecodingContext *ctx, XLogRecordBuffer *buf);
 static void DecodeStandbyOp(LogicalDecodingContext *ctx, XLogRecordBuffer *buf);
+static void DecodeSeqOp(LogicalDecodingContext *ctx, XLogRecordBuffer *buf);
 
 /* individual record(group)'s handlers */
 static void DecodeInsert(LogicalDecodingContext *ctx, XLogRecordBuffer *buf);
@@ -71,6 +74,9 @@ static void DecodeCommit(LogicalDecodingContext *ctx, XLogRecordBuffer *buf,
 static void DecodeAbort(LogicalDecodingContext *ctx, XLogRecordBuffer *buf,
 			xl_xact_parsed_abort *parsed, TransactionId xid);
 
+static void DecodeSeqAdvance(LogicalDecodingContext *ctx, XLogRecordBuffer *buf,
+			Form_pg_sequence seq);
+
 /* common function to decode tuples */
 static void DecodeXLogTuple(char *data, Size len, ReorderBufferTupleBuf *tup);
 
@@ -107,6 +113,10 @@ LogicalDecodingProcessRecord(LogicalDecodingContext *ctx, XLogReaderState *recor
 			DecodeStandbyOp(ctx, &buf);
 			break;
 
+		case RM_SEQ_ID:
+			DecodeSeqOp(ctx, &buf);
+			break;
+
 		case RM_HEAP2_ID:
 			DecodeHeap2Op(ctx, &buf);
 			break;
@@ -130,7 +140,6 @@ LogicalDecodingProcessRecord(LogicalDecodingContext *ctx, XLogReaderState *recor
 		case RM_HASH_ID:
 		case RM_GIN_ID:
 		case RM_GIST_ID:
-		case RM_SEQ_ID:
 		case RM_SPGIST_ID:
 		case RM_BRIN_ID:
 		case RM_COMMIT_TS_ID:
@@ -303,6 +312,30 @@ DecodeStandbyOp(LogicalDecodingContext *ctx, XLogRecordBuffer *buf)
 	}
 }
 
+static void
+DecodeSeqOp(LogicalDecodingContext *ctx, XLogRecordBuffer *buf)
+{
+	SnapBuild  *builder = ctx->snapshot_builder;
+	uint8       info = XLogRecGetInfo(buf->record) & ~XLR_INFO_MASK;
+	xl_seq_rec *xlrec = (xl_seq_rec *) XLogRecGetData(buf->record);
+	HeapTuple   item;
+	Form_pg_sequence seq;
+
+	/* no point in doing anything yet */
+	if (SnapBuildCurrentState(builder) < SNAPBUILD_FULL_SNAPSHOT)
+		return;
+
+	if (info != XLOG_SEQ_LOG)
+		elog(PANIC, "DecodeSeqOp: unknown sequence xlog op code %u", info);
+
+	/* nextval_internal etc write a xl_seq_rec immediately followed by a HeapTupleData */
+	item = (HeapTuple)((char*)xlrec + sizeof(xl_seq_rec));
+
+	seq = (Form_pg_sequence)((char*)item + HEAPTUPLESIZE);
+
+	DecodeSeqAdvance(ctx, buf, seq);
+}
+
 /*
  * Handle rmgr HEAP2_ID records for DecodeRecordIntoReorderBuffer().
  */
@@ -838,6 +871,31 @@ DecodeSpecConfirm(LogicalDecodingContext *ctx, XLogRecordBuffer *buf)
 	ReorderBufferQueueChange(ctx->reorder, XLogRecGetXid(r), buf->origptr, change);
 }
 
+static void
+DecodeSeqAdvance(LogicalDecodingContext *ctx, XLogRecordBuffer *buf,
+		Form_pg_sequence seq)
+{
+	XLogReaderState *r = buf->record;
+	RelFileNode target_node;
+
+	/* If the output plugin isn't interested, don't waste any time */
+	if (ctx->callbacks.seq_advance_cb == NULL)
+		return;
+
+	/* only interested in our database */
+	XLogRecGetBlockTag(r, 0, &target_node, NULL, NULL);
+	if (target_node.dbNode != ctx->slot->data.database)
+		return;
+
+	/*
+	 * Because sequences are updated outside transaction boundaries there
+	 * is no need to use a reorder buffer here. We invoke the logical
+	 * decoding plugin callback immediately.
+	 */
+	seq_advance_cb_wrapper(ctx, buf->origptr, NameStr(seq->sequence_name),
+			seq->last_value);
+}
+
 
 /*
  * Read a HeapTuple as WAL logged by heap_insert, heap_update and heap_delete
diff --git a/src/backend/replication/logical/logical.c b/src/backend/replication/logical/logical.c
index 1ce9081..30527df 100644
--- a/src/backend/replication/logical/logical.c
+++ b/src/backend/replication/logical/logical.c
@@ -683,7 +683,7 @@ filter_by_origin_cb_wrapper(LogicalDecodingContext *ctx, RepOriginId origin_id)
 
 	/* Push callback + info on the error context stack */
 	state.ctx = ctx;
-	state.callback_name = "shutdown";
+	state.callback_name = "filter_by_origin";
 	state.report_location = InvalidXLogRecPtr;
 	errcallback.callback = output_plugin_error_callback;
 	errcallback.arg = (void *) &state;
@@ -702,6 +702,32 @@ filter_by_origin_cb_wrapper(LogicalDecodingContext *ctx, RepOriginId origin_id)
 	return ret;
 }
 
+void
+seq_advance_cb_wrapper(LogicalDecodingContext *ctx, XLogRecPtr change_lsn,
+		const char * seq_name, uint64 last_value)
+{
+	LogicalErrorCallbackState state;
+	ErrorContextCallback errcallback;
+
+	/* Push callback + info on the error context stack */
+	state.ctx = ctx;
+	state.callback_name = "advance_seq";
+	state.report_location = change_lsn;
+	errcallback.callback = output_plugin_error_callback;
+	errcallback.arg = (void *) &state;
+	errcallback.previous = error_context_stack;
+	error_context_stack = &errcallback;
+
+	ctx->accept_writes = true;
+
+	/* do the actual work: call callback */
+	ctx->callbacks.seq_advance_cb(ctx, seq_name, last_value);
+
+	/* Pop the error context stack */
+	error_context_stack = errcallback.previous;
+}
+
+
 /*
  * Set the required catalog xmin horizon for historic snapshots in the current
  * replication slot.
diff --git a/src/include/replication/logical.h b/src/include/replication/logical.h
index dfdbe65..ba9f936 100644
--- a/src/include/replication/logical.h
+++ b/src/include/replication/logical.h
@@ -99,4 +99,7 @@ extern void LogicalConfirmReceivedLocation(XLogRecPtr lsn);
 
 extern bool filter_by_origin_cb_wrapper(LogicalDecodingContext *ctx, RepOriginId origin_id);
 
+extern void seq_advance_cb_wrapper(LogicalDecodingContext *ctx,
+		XLogRecPtr change_lsn, const char * seq_name, uint64 last_value);
+
 #endif
diff --git a/src/include/replication/output_plugin.h b/src/include/replication/output_plugin.h
index 17c3de2..f6d6a10 100644
--- a/src/include/replication/output_plugin.h
+++ b/src/include/replication/output_plugin.h
@@ -88,6 +88,21 @@ typedef void (*LogicalDecodeShutdownCB) (
 );
 
 /*
+ * A sequence has been advanced, with a new chunk allocated and written
+ * to WAL.
+ *
+ * This doesn't happen every time nextval() is called, there's caching.  It's
+ * guaranteed that the new sequence position will be at or ahead of the most
+ * recent value any committed xact has obtained when this callback is invoked.
+ */
+typedef void (*LogicalDecodeSeqAdvanceCB) (
+											struct LogicalDecodingContext *,
+											const char * seq_name,
+											uint64 last_value
+		);
+
+
+/*
  * Output plugin callbacks
  */
 typedef struct OutputPluginCallbacks
@@ -98,6 +113,7 @@ typedef struct OutputPluginCallbacks
 	LogicalDecodeCommitCB commit_cb;
 	LogicalDecodeFilterByOriginCB filter_by_origin_cb;
 	LogicalDecodeShutdownCB shutdown_cb;
+	LogicalDecodeSeqAdvanceCB seq_advance_cb;
 } OutputPluginCallbacks;
 
 void		OutputPluginPrepareWrite(struct LogicalDecodingContext *ctx, bool last_write);
-- 
2.1.0

#3Craig Ringer
craig@2ndquadrant.com
In reply to: Craig Ringer (#2)
Re: [PATCH] Logical decoding support for sequence advances

On 14 December 2015 at 16:19, Craig Ringer <craig@2ndquadrant.com> wrote:

Attached a slightly updated version. It just has less spam in the
regression tests, by adding a new option to test_decoding to show
sequences, which it doesn't enable except in sequence specific tests.

Whoops, the patch as written is wrong. I used Form_pg_sequence's
sequence_name field to get the sequence name. This seems to be a vestigial
field with no useful purpose except taking up space; in particular, it's
not updated when ALTER SEQUENCE ... RENAME TO is used to rename a sequence.
The sequence's pg_class entry is updated but the sequence_name in the
sequence page is not.

Since the sequence_name is written to WAL with each sequence recovery
position advance, isn't used anywhere, and can be wrong, shouldn't it just
be removed from Form_pg_sequence entirely? Or at least replaced with the
sequence's pg_class entry oid?

I could always fix ALTER SEQUENCE to update sequence_name, but it seems
pretty pointless to have it at all.

In any case I'll need to update this patch. Which will be fun, since the
sequence oid doesn't seem to be written to the xlog record, just the
HeapTuple header and Form_pg_sequence, and the redo is handled by doing a
page replacement. I'd like to update Form_pg_sequence to store oid not
sequence_name at the same time but that makes all this a dramatically more
intrusive change that's rather less likely to be accepted.

--
Craig Ringer http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

#4Andres Freund
andres@anarazel.de
In reply to: Craig Ringer (#2)
Re: [PATCH] Logical decoding support for sequence advances

On 2015-12-14 16:19:33 +0800, Craig Ringer wrote:

On 14 December 2015 at 11:28, Craig Ringer <craig@2ndquadrant.com> wrote:

Hi all

Attached is a patch against 9.6 to add support for informing logical
decoding plugins of the new sequence last_value when sequence advance WAL
records are processed during decoding.

Attached a slightly updated version. It just has less spam in the
regression tests, by adding a new option to test_decoding to show
sequences, which it doesn't enable except in sequence specific tests.

I think this is quite the wrong approach. You're calling the logical
decoding callback directly from decode.c, circumventing
reorderbuffer.c. While you don't need the actual reordering, you *do*
need the snapshot integration. As you since noticed you can't just
look into the sequence tuple and be happy with that, you need to do
pg_class lookups et al. Furhtermore callbacks can validly expect to have
a snapshot set.

At the very least what you need to do is to SetupHistoricSnapshot(),
then lookup the actual identity of the sequence using
RelidByRelfilenode() and only then you can call the callback.

Needed to make logical replication based failover possible.

While it'll make it easier, I think it's certainly quite possible to do
so without this feature if you accept some sane restrictions. If you
e.g. define to only handle serial columns (i.e. sequences that
used/owned by exactly one table & column), you can do a 'good enough'
emulation the output plugin.

Take something like BDR's bdr_relcache.c (something which you're going
to end up needing for any nontrivial replication solution). Everytime
you build a cache entry you look up whether there's an owned by
sequence. When decoding an insert or update to that relation, also emit
an 'increase this sequence to at least XXX' message.

While it's not perfect, this has the big advantage of being doable with 9.4.

Greetings,

Andres Freund

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#5Petr Jelinek
petr@2ndquadrant.com
In reply to: Andres Freund (#4)
Re: [PATCH] Logical decoding support for sequence advances

On 2015-12-15 13:17, Andres Freund wrote:

On 2015-12-14 16:19:33 +0800, Craig Ringer wrote:

Needed to make logical replication based failover possible.

While it'll make it easier, I think it's certainly quite possible to do
so without this feature if you accept some sane restrictions. If you
e.g. define to only handle serial columns (i.e. sequences that
used/owned by exactly one table & column), you can do a 'good enough'
emulation the output plugin.

Take something like BDR's bdr_relcache.c (something which you're going
to end up needing for any nontrivial replication solution). Everytime
you build a cache entry you look up whether there's an owned by
sequence. When decoding an insert or update to that relation, also emit
an 'increase this sequence to at least XXX' message.

While it's not perfect, this has the big advantage of being doable with 9.4.

I don't think that approach alone is good enough. It might be ok for
selective replication where the replication is driven by tables anyway,
but in general and especially for failover it's not good enough to tell
user that we handle some sequences and they have to fix the rest
manually. That's not much different than fixing them all in practice as
you script it anyway.

However, if it was combined with something like what londiste does,
which is to check sequences periodically and send last_value + some
reasonable buffer, it could work well in most cases. In this scenario
your method would be used for checking that sequence is close to going
over buffer and firing the periodic send sooner than it would be if it
was purely time based.

--
Petr Jelinek http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#6Andres Freund
andres@anarazel.de
In reply to: Petr Jelinek (#5)
Re: [PATCH] Logical decoding support for sequence advances

On 2015-12-15 13:46:29 +0100, Petr Jelinek wrote:

I don't think that approach alone is good enough. It might be ok for
selective replication where the replication is driven by tables anyway, but
in general and especially for failover it's not good enough to tell user
that we handle some sequences and they have to fix the rest manually.

I think it solves roughly 80-90% of all usages of sequences. That's a
significant improvement over the status quo.

I'm not saying it's perfect, just that it's applicable to 9.4, and might
be good enough initially. I'm not arguing against adding sequence
decoding here.

That's not much different than fixing them all in practice as you
script it anyway.

If you can easily script it, it's just the same type (sequences owned by
a single column), everything else starts to be a bit more complicated anyway.

Andres

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#7Petr Jelinek
petr@2ndquadrant.com
In reply to: Andres Freund (#6)
Re: [PATCH] Logical decoding support for sequence advances

On 2015-12-15 13:51, Andres Freund wrote:

On 2015-12-15 13:46:29 +0100, Petr Jelinek wrote:

I don't think that approach alone is good enough. It might be ok for
selective replication where the replication is driven by tables anyway, but
in general and especially for failover it's not good enough to tell user
that we handle some sequences and they have to fix the rest manually.

I think it solves roughly 80-90% of all usages of sequences. That's a
significant improvement over the status quo.

I'm not saying it's perfect, just that it's applicable to 9.4, and might
be good enough initially.

And I am saying that I think more can and should be done even for 9.4/5.

That's not much different than fixing them all in practice as you
script it anyway.

If you can easily script it, it's just the same type (sequences owned by
a single column), everything else starts to be a bit more complicated anyway.

Well, there is some difference between scripting it for general use-case
and scripting it with domain knowledge, but I see what you mean.

--
Petr Jelinek http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#8Craig Ringer
craig@2ndquadrant.com
In reply to: Andres Freund (#4)
Re: [PATCH] Logical decoding support for sequence advances

On 15 December 2015 at 20:17, Andres Freund <andres@anarazel.de> wrote:

I think this is quite the wrong approach. You're calling the logical
decoding callback directly from decode.c, circumventing
reorderbuffer.c. While you don't need the actual reordering, you *do*
need the snapshot integration.

Yeah. I thought I could get away without it because I could use
Form_pg_sequence.sequence_name to bypass any catalog lookups at all, but
per upthread that field should be ignored and can't be used.

As you since noticed you can't just
look into the sequence tuple and be happy with that, you need to do
pg_class lookups et al. Furhtermore callbacks can validly expect to have
a snapshot set.

Good point. Just because I don't need one doesn't mean others won't, and
all the other callbacks do.

I'll have a read over reorderbuffer.c and see if I can integrate this
properly.

At the very least what you need to do is to SetupHistoricSnapshot(),
then lookup the actual identity of the sequence using
RelidByRelfilenode() and only then you can call the callback.

Yeah. That means it's safe for the callback to do a syscache lookup for the
sequence name by oid.

Needed to make logical replication based failover possible.

While it'll make it easier, I think it's certainly quite possible to do
so without this feature if you accept some sane restrictions. If you
e.g. define to only handle serial columns (i.e. sequences that
used/owned by exactly one table & column), you can do a 'good enough'
emulation the output plugin.

Take something like BDR's bdr_relcache.c (something which you're going
to end up needing for any nontrivial replication solution). Everytime
you build a cache entry you look up whether there's an owned by
sequence. When decoding an insert or update to that relation, also emit
an 'increase this sequence to at least XXX' message.

Eh. I don't think it's good enough for failover really. Too much of a
foot-gun risk for my taste. We've both seen the weird things users do and
the way nobody reads the manual or understands the limitations (global DDL
lock anybody?) and I really want to make things work right by default with
minimal caveats.

I'm not against working around it, and we'll need to for 9.4/9.5, but I'm
trying to get something more solid into 9.6.

--
Craig Ringer http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

#9Craig Ringer
craig@2ndquadrant.com
In reply to: Craig Ringer (#8)
Re: [PATCH] Logical decoding support for sequence advances

On 17 December 2015 at 10:08, Craig Ringer <craig@2ndquadrant.com> wrote:

On 15 December 2015 at 20:17, Andres Freund <andres@anarazel.de> wrote:

I think this is quite the wrong approach. You're calling the logical
decoding callback directly from decode.c, circumventing
reorderbuffer.c. While you don't need the actual reordering, you *do*
need the snapshot integration.

Yeah. I thought I could get away without it because I could use
Form_pg_sequence.sequence_name to bypass any catalog lookups at all, but
per upthread that field should be ignored and can't be used.

As you since noticed you can't just
look into the sequence tuple and be happy with that, you need to do
pg_class lookups et al. Furhtermore callbacks can validly expect to have
a snapshot set.

Good point. Just because I don't need one doesn't mean others won't, and
all the other callbacks do.

I'll have a read over reorderbuffer.c and see if I can integrate this
properly.

At the very least what you need to do is to SetupHistoricSnapshot(),
then lookup the actual identity of the sequence using
RelidByRelfilenode() and only then you can call the callback.

Yeah. That means it's safe for the callback to do a syscache lookup for
the sequence name by oid.

I've revisited this patch in an attempt to get a corrected version ready
for the next CF.

Turns out it's not that simple.

Sequences advances aren't part of a transaction (though they always happen
during one) and proceed whether the xact that happened to trigger them
commits or rolls back. So it doesn't make sense to add them to a reorder
buffer for an xact. We want to send it immediately, not associate it with
some arbitrary xact that just happened to use the last value in the cache
that might not commit for ages.

But then when do we send it? If sent at the moment of decoding the advance
from WAL then it'll always be sent to the client between the commit of one
xact and the begin of another, because it'll be sent while we're reading
xlog and populating reorder buffers. For advance of an already-created
sequence advance that's what we want, but CREATE SEQUENCE, ALTER SEQUENCE
etc also log RM_SEQ_ID XLOG_SEQ_LOG operations. The xact that created the
sequence isn't committed yet so sending the advance to the downstream will
lead to attempting to advance a sequence that doesn't yet exist. Similarly
ALTER SEQUENCE emits a new XLOG_SEQ_LOG with the updated Form_pg_sequence.
All fine for physical replication but rather more challenging for logical
replication since sometimes we want the sequence change to be associated
with a particular xact and sometimes not.

So the reorder buffer has to keep track of sequences. It must check to see
if a catalog change is a sequence creation and if so mark the sequence as
pending, keeping a copy of the Form_pg_sequence that's updated to the
latest version as the xact proceeds and writes updates to the sequence. On
commit the sequence advance is replayed at the end of the xact using the
snapshot of the newly committed xact; on rollback it's discarded since the
sequence never became visible to anyone else. We can safely assert that
that sequence will not be updated by any other xact until this one commits.

In reorderbuffer.c, there's a test for relation->rd_rel->relkind ==
RELKIND_SEQUENCE that skips changes to sequence relations. We'll want to
replicate sequence catalog updates as DDL via event triggers and deparse so
that's OK, but I think we'll need to make a note of sequence creation here
to mark new sequences as uncommitted.

If we see a sequence change that isn't for an uncommitted newly-created
sequence we make an immediate call through the reorder buffer to send the
sequence update info to the client. That's OK even if it's something like
ALTER SEQUENCE ... INCREMENT 10 RENAME TO othername; . The ALTER ... RENAME
part gets sent with the xact that did it when/if it commits since it's part
of the pg_class tuple for the sequence; the INCREMENT gets sent immediately
since it's part of the Form_pg_sequence. That matches what happens locally,
and it means there's no need to keep track of every sequence, only new ones.

On commit or rollback of an xact that creates a sequence we pop the
sequence oid from the ordered list of uncommitted sequence oids that must
be kept by the decoding session.

If we land up decoding the same WAL again we might send sequence updates
that temporarily move a sequence backwards then advance it again when we
replay the newer updates. That's the same as hot standby and seems fine.
You obviously won't be able to safely get new values from sequences that're
replicated from an upstream on the downstream anyway - and I anticipate
that logical decoding receivers will probably want to use seqam etc later
to make those sequences read-only until a failover event.

Sound reasonable?

* keep track of the last-committed xact's snapshot in the decoding session

* decode relation create/drop for RELKIND_SEQUENCE and add/remove entries
to a list in the decoding session. It shouldn't get big enough to need a
hash map (?). Each entry points to the reorder buffer associated with the
xact that created the sequence.

* when decoding a XLOG_SEQ_LOG, check if the sequence is uncommitted in the
decoding state. If it is, replace the prior copy of the sequence state in
the reorder buffer for the xact that created the sequence with this one.
Otherwise invoke the sequence callback immediately.

* In the sequence decoding callback look up the last committed xact's
snapshot and establish that as the historical snapshot, then get the
sequence name from the syscache and invoke the client's callback.

* On commit of an xact whose reorder buffer has one or more newly created
sequences, invoke the sequence decode callback for each sequence last, just
before sending the commit.

I'm not sure if I'll get to this for 9.6 given that it's a whole bunch more
than "just decode the sequence advance when you see it in the xlogs". We'll
see.

--
Craig Ringer http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

#10Petr Jelinek
petr@2ndquadrant.com
In reply to: Craig Ringer (#9)
Re: [PATCH] Logical decoding support for sequence advances

On 29/02/16 03:23, Craig Ringer wrote:

On 17 December 2015 at 10:08, Craig Ringer <craig@2ndquadrant.com
<mailto:craig@2ndquadrant.com>> wrote:

On 15 December 2015 at 20:17, Andres Freund <andres@anarazel.de
<mailto:andres@anarazel.de>> wrote:

I think this is quite the wrong approach. You're calling the logical
decoding callback directly from decode.c, circumventing
reorderbuffer.c. While you don't need the actual reordering, you
*do*
need the snapshot integration.

Yeah. I thought I could get away without it because I could use
Form_pg_sequence.sequence_name to bypass any catalog lookups at all,
but per upthread that field should be ignored and can't be used.

As you since noticed you can't just
look into the sequence tuple and be happy with that, you need to do
pg_class lookups et al. Furhtermore callbacks can validly expect
to have
a snapshot set.

Good point. Just because I don't need one doesn't mean others won't,
and all the other callbacks do.

I'll have a read over reorderbuffer.c and see if I can integrate
this properly.

At the very least what you need to do is to SetupHistoricSnapshot(),
then lookup the actual identity of the sequence using
RelidByRelfilenode() and only then you can call the callback.

Yeah. That means it's safe for the callback to do a syscache lookup
for the sequence name by oid.

I've revisited this patch in an attempt to get a corrected version ready
for the next CF.

Turns out it's not that simple.

Sequences advances aren't part of a transaction (though they always
happen during one) and proceed whether the xact that happened to trigger
them commits or rolls back. So it doesn't make sense to add them to a
reorder buffer for an xact. We want to send it immediately, not
associate it with some arbitrary xact that just happened to use the last
value in the cache that might not commit for ages.

But then when do we send it? If sent at the moment of decoding the
advance from WAL then it'll always be sent to the client between the
commit of one xact and the begin of another, because it'll be sent while
we're reading xlog and populating reorder buffers. For advance of an
already-created sequence advance that's what we want, but CREATE
SEQUENCE, ALTER SEQUENCE etc also log RM_SEQ_ID XLOG_SEQ_LOG operations.
The xact that created the sequence isn't committed yet so sending the
advance to the downstream will lead to attempting to advance a sequence
that doesn't yet exist. Similarly ALTER SEQUENCE emits a new
XLOG_SEQ_LOG with the updated Form_pg_sequence. All fine for physical
replication but rather more challenging for logical replication since
sometimes we want the sequence change to be associated with a particular
xact and sometimes not.

So the reorder buffer has to keep track of sequences. It must check to
see if a catalog change is a sequence creation and if so mark the
sequence as pending, keeping a copy of the Form_pg_sequence that's
updated to the latest version as the xact proceeds and writes updates to
the sequence. On commit the sequence advance is replayed at the end of
the xact using the snapshot of the newly committed xact; on rollback
it's discarded since the sequence never became visible to anyone else.
We can safely assert that that sequence will not be updated by any other
xact until this one commits.

In reorderbuffer.c, there's a test for relation->rd_rel->relkind ==
RELKIND_SEQUENCE that skips changes to sequence relations. We'll want to
replicate sequence catalog updates as DDL via event triggers and deparse
so that's OK, but I think we'll need to make a note of sequence creation
here to mark new sequences as uncommitted.

If we see a sequence change that isn't for an uncommitted newly-created
sequence we make an immediate call through the reorder buffer to send
the sequence update info to the client. That's OK even if it's something
like ALTER SEQUENCE ... INCREMENT 10 RENAME TO othername; . The ALTER
... RENAME part gets sent with the xact that did it when/if it commits
since it's part of the pg_class tuple for the sequence; the INCREMENT
gets sent immediately since it's part of the Form_pg_sequence. That
matches what happens locally, and it means there's no need to keep track
of every sequence, only new ones.

On commit or rollback of an xact that creates a sequence we pop the
sequence oid from the ordered list of uncommitted sequence oids that
must be kept by the decoding session.

If we land up decoding the same WAL again we might send sequence updates
that temporarily move a sequence backwards then advance it again when we
replay the newer updates. That's the same as hot standby and seems fine.
You obviously won't be able to safely get new values from sequences
that're replicated from an upstream on the downstream anyway - and I
anticipate that logical decoding receivers will probably want to use
seqam etc later to make those sequences read-only until a failover event.

Sound reasonable?

I wonder if it would be acceptable to create new info flag for RM_SEQ_ID
that would behave just like XLOG_SEQ_LOG but would be used only for the
nontransactional updates (nextval) so that decoding could easily
differentiate between transactional and non-transactional update of
sequence and then just either call the callback immediately or add the
change to reorder buffer based on that. The redo code could just have
simple OR expression to behave same with both of the info flags.

Seems like simpler solution than building all the tracking code on the
decoding side to me.

--
Petr Jelinek http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#11Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Petr Jelinek (#10)
Re: [PATCH] Logical decoding support for sequence advances

Petr Jelinek wrote:

I wonder if it would be acceptable to create new info flag for RM_SEQ_ID
that would behave just like XLOG_SEQ_LOG but would be used only for the
nontransactional updates (nextval) so that decoding could easily
differentiate between transactional and non-transactional update of sequence
and then just either call the callback immediately or add the change to
reorder buffer based on that. The redo code could just have simple OR
expression to behave same with both of the info flags.

Seems like simpler solution than building all the tracking code on the
decoding side to me.

Given the mess in Craig's description, the new info flag sounds a much
more reasonable approach to me.

--
�lvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#12Craig Ringer
craig@2ndquadrant.com
In reply to: Petr Jelinek (#10)
Re: [PATCH] Logical decoding support for sequence advances

On 1 March 2016 at 05:30, Petr Jelinek <petr@2ndquadrant.com> wrote:

On 29/02/16 03:23, Craig Ringer wrote:

Sound reasonable?

I wonder if it would be acceptable to create new info flag for RM_SEQ_ID
that would behave just like XLOG_SEQ_LOG but would be used only for the
nontransactional updates (nextval) so that decoding could easily
differentiate between transactional and non-transactional update of
sequence and then just either call the callback immediately or add the
change to reorder buffer based on that. The redo code could just have
simple OR expression to behave same with both of the info flags.

That's much cleaner than trying to keep track of sequence creations and
really pretty harmless. I'll give that a go and see how it looks.

Seems like simpler solution than building all the tracking code on the
decoding side to me.

+1

--
Craig Ringer http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

#13Petr Jelinek
petr@2ndquadrant.com
In reply to: Craig Ringer (#12)
Re: [PATCH] Logical decoding support for sequence advances

On 02/03/16 08:05, Craig Ringer wrote:

On 1 March 2016 at 05:30, Petr Jelinek <petr@2ndquadrant.com
<mailto:petr@2ndquadrant.com>> wrote:

On 29/02/16 03:23, Craig Ringer wrote:

Sound reasonable?

I wonder if it would be acceptable to create new info flag for
RM_SEQ_ID that would behave just like XLOG_SEQ_LOG but would be used
only for the nontransactional updates (nextval) so that decoding
could easily differentiate between transactional and
non-transactional update of sequence and then just either call the
callback immediately or add the change to reorder buffer based on
that. The redo code could just have simple OR expression to behave
same with both of the info flags.

That's much cleaner than trying to keep track of sequence creations and
really pretty harmless. I'll give that a go and see how it looks.

Seems like simpler solution than building all the tracking code on
the decoding side to me.

+1

Except this won't work for sequences that have been created in same
transaction as the nextval()/setval() was called because in those cases
we don't want to decode the advancement of sequence until the end of
transaction and we can't map the relfilenode to sequence without going
through reorder buffer in those cases either

--
Petr Jelinek http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#14Craig Ringer
craig@2ndquadrant.com
In reply to: Petr Jelinek (#13)
Re: [PATCH] Logical decoding support for sequence advances

On 11 March 2016 at 22:24, Petr Jelinek <petr@2ndquadrant.com> wrote:

On 02/03/16 08:05, Craig Ringer wrote:

On 1 March 2016 at 05:30, Petr Jelinek <petr@2ndquadrant.com
<mailto:petr@2ndquadrant.com>> wrote:

I wonder if it would be acceptable to create new info flag for
RM_SEQ_ID that would behave just like XLOG_SEQ_LOG but would be used
only for the nontransactional updates (nextval) so that decoding
could easily differentiate between transactional and
non-transactional update of sequence and then just either call the
callback immediately or add the change to reorder buffer based on
that. The redo code could just have simple OR expression to behave
same with both of the info flags.

That's much cleaner than trying to keep track of sequence creations and
really pretty harmless. I'll give that a go and see how it looks.

Seems like simpler solution than building all the tracking code on
the decoding side to me.

+1

Except this won't work for sequences that have been created in same
transaction as the nextval()/setval() was called because in those cases we
don't want to decode the advancement of sequence until the end of
transaction and we can't map the relfilenode to sequence without going
through reorder buffer in those cases either

I'll explain this a bit (for when I forget all about it and come back to it
confused, or if someone else picks this up):

The issue is transactions like

BEGIN;
CREATE TABLE blah (id serial primary key, something text);
INSERT INTO blah (something) SELECT .... ;
COMMIT;

Here we create the sequence, then we advance the sequence in subsequent
statements that're part of the same xact but not directly connected to the
sequence creation. There's no convenient way to tell, when we see the
Form_pg_sequence updates in WAL for the newly created sequence, that it's
for a not-yet-committed xact so we shouldn't send the advance to the client
yet.

Once the xact that created the sequence commits we have to make sure we
send its latest state, not the initial state when it was created. So with
the above proposal we'd still need to look up those new-info-flagged
entries against a map of uncommitted sequences by relfilenode and decide
whether to send it immediately or update the latest state of an uncommitted
sequence in a reorder buffer.

IOW we have to do pretty much what I described before. We can still log
sequence updates with a different info flag but we need to know how to
associate the record with the xact that created it, so we have to log the
creating xid in the record for the initial state of a newly created
sequence. At least that'd be less ugly than trying to peek at decoded
catalog updates in the reorder buffer to spot new sequence creation and can
be done only when wal_level = logical, but it'd mean that the two record
types were different in more than just info flag.

The other wrinkle Petr refers to is that when decoding XLOG_SEQ_LOG we only
have a relfilenode. We don't know the oid of the sequence, which we need to
look up its name. The reorder buffer code uses RelidByRelfilenode for that,
which requires a snapshot. I'm not sure what problem that poses, since we'd
obviously need a snapshot set up to look up the name by oid anyway and we'd
be using the most recently committed historic snapshot for both.

Anyway, this is still complicated because of the mess with sequences being
both transactional and not-transactional in ways that rely on how the low
level storage and WAL works.

Unfortunately I don't expect to have time to produce a new patch for 9.6.

(BTW, I'd be interested in seeing what code breaks if we introduced a
compile option in src/include/pg_config_manual.h to force oid and
relfilenode randomization rather than starting off with them being the
same.)

--
Craig Ringer http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services