Skip to content

Commit 96f62ee

Browse files
committed
simplify sql statement
1 parent a013dac commit 96f62ee

2 files changed

Lines changed: 12 additions & 16 deletions

File tree

pkg/stream/config.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,6 @@ func (c *Config) validateTableSelections() error {
168168
return nil
169169
}
170170

171-
172171
func (c *Config) SourcePostgresURL() string {
173172
if c.Listener.Postgres != nil {
174173
return c.Listener.Postgres.URL

pkg/stream/preflight/replica_identity.go

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -28,24 +28,21 @@ SELECT
2828
n.nspname,
2929
c.relname,
3030
c.relreplident::text,
31-
EXISTS (
32-
SELECT 1 FROM pg_index i
33-
WHERE i.indrelid = c.oid AND i.indisprimary
34-
) AS has_pk,
35-
COALESCE(
36-
(
37-
SELECT i.indisvalid AND i.indisunique AND i.indpred IS NULL
38-
AND NOT EXISTS (
39-
SELECT 1 FROM unnest(i.indkey) k
40-
JOIN pg_attribute a ON a.attrelid = c.oid AND a.attnum = k
41-
WHERE NOT a.attnotnull
42-
)
43-
FROM pg_index i WHERE i.indrelid = c.oid AND i.indisreplident
44-
),
45-
false
31+
pk.indrelid IS NOT NULL AS has_pk,
32+
ri.indrelid IS NOT NULL AND NOT EXISTS (
33+
SELECT 1 FROM pg_attribute a
34+
WHERE a.attrelid = c.oid
35+
AND a.attnum = ANY (ri.indkey::int[])
36+
AND NOT a.attnotnull
4637
) AS replident_index_ok
4738
FROM pg_class c
4839
JOIN pg_namespace n ON n.oid = c.relnamespace
40+
LEFT JOIN pg_index pk ON pk.indrelid = c.oid AND pk.indisprimary
41+
LEFT JOIN pg_index ri ON ri.indrelid = c.oid
42+
AND ri.indisreplident
43+
AND ri.indisvalid
44+
AND ri.indisunique
45+
AND ri.indpred IS NULL
4946
WHERE c.relkind = 'r'
5047
AND n.nspname NOT IN ('pg_catalog', 'information_schema', 'pgstream')
5148
ORDER BY n.nspname, c.relname

0 commit comments

Comments
 (0)