1# Frequently Asked Questions
2
3pglogical 2.0 introduces some new features, like column filter, row filter and apply
4delay. Some related discussion on them:
5
6### The column filter
7
8* What happens if we column filter on a table with OIDS? Can we filter on xmin?
9 - For a table with OIDs, column filter works fine. No, we cannot filter system columns
10like oid, xmin.
11
12* What happens if a column being filtered on is dropped?
13 - Currently in pglogical replication, even primary key can be dropped at provider.
14If a column being filtered on is dropped, at provider it is removed from the column
15filter too. This can be seen using `pglogical.show_repset_table_info()`.
16 Columns at subscriber remain as is, which is correct and expected. At subscriber,
17in this state INSERTs replicate, but UPDATEs and DELETEs do not.
18
19* What happens if we add a column, does that automatically get included?
20 - If a column is added at provider, it does not automatically get added to the column filter.
21
22### The row filter
23
24* Can we create `row_filter` on table with OIDS? Can we filter on xmin?
25 - Yes, `row_filter` works fine for table with OIDs. No, we cannot filter on system columns like xmin.
26
27* What types of function can we execute in a `row_filter`? Can we use a volatile sampling
28function, for example?
29 - We can execute immutable, stable and volatile functions in a `row_filter`. Caution must
30be exercised with regard to writes as any expression which will do writes will throw error and stop replication.
31   Volatile sampling function in `row_filter`: This would not work in practice as it would
32not get correct snapshot of the data in live system. Theoretically with static data, it works.
33
34* Can we test a JSONB datatype that includes some form of attribute filtering?
35 - Yes, `row_filter` on attributes of JSONB datatype works fine.
36
37### The apply delay
38
39* Does `apply_delay` include TimeZone changes, for example Daylight Savings Time? There is a
40similar mechanism in physical replication - `recovery_min_apply_delay`. However, if we set some
41interval, during the daylight savings times, we might get that interval + the time change in
42practice (ie instead of 1h delay you can get 2h delay because of that). This may lead to
43stopping and starting the database service twice per year.
44 - Yes, `apply_delay` include TimeZone changes, for example Daylight Savings Time. Value of
45`apply_delay` stays the same in practice, if daylight savings time switch happens after
46subscription was created.
47However, we do not recommend running heavy workloads during switching time as pglogical
48replication needs some time ( ~ 5 minutes) to recover fine.
49