Closed gugu closed 1 month ago
If I try to trick optimizer it works, but does not use index in compressed rows
> explain select count(*) from clicks where host='REDACTED' || substring(now()::text, 1, 0) and dt > now() - interval '10 days';
┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ QUERY PLAN │
├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ Finalize Aggregate (cost=378713.81..378713.82 rows=1 width=8) │
│ -> Gather (cost=1000.59..378713.75 rows=24 width=8) │
│ Workers Planned: 2 │
│ -> Parallel Custom Scan (ChunkAppend) on clicks (cost=0.58..377711.35 rows=12 width=8) │
│ Chunks excluded during startup: 0 │
│ -> Partial Aggregate (cost=732.70..732.71 rows=1 width=8) │
│ -> Parallel Index Only Scan using _hyper_109_4222_chunk_clicks_host_dt_idx on _hyper_109_4222_chunk (cost=0.58..725.09 rows=3044 width=0) │
│ Index Cond: ((host = ('REDACTED'::text || "substring"((now())::text, 1, 0))) AND (dt > (now() - '10 days'::interval)) AND (dt > '2024-05-20 09:56:51.80338+00'::timestamp with time zone)) │
│ -> Partial Aggregate (cost=407.08..407.09 rows=1 width=8) │
│ -> Parallel Index Only Scan using _hyper_109_4223_chunk_clicks_host_dt_idx on _hyper_109_4223_chunk (cost=0.58..400.09 rows=2794 width=0) │
│ Index Cond: ((host = ('REDACTED'::text || "substring"((now())::text, 1, 0))) AND (dt > (now() - '10 days'::interval)) AND (dt > '2024-05-20 09:56:51.80338+00'::timestamp with time zone)) │
│ -> Partial Aggregate (cost=1006.61..1006.62 rows=1 width=8) │
│ -> Parallel Index Only Scan using _hyper_109_4221_chunk_clicks_host_dt_idx on _hyper_109_4221_chunk (cost=0.58..999.88 rows=2692 width=0) │
│ Index Cond: ((host = ('REDACTED'::text || "substring"((now())::text, 1, 0))) AND (dt > (now() - '10 days'::interval)) AND (dt > '2024-05-20 09:56:51.80338+00'::timestamp with time zone)) │
│ -> Partial Aggregate (cost=298.59..298.60 rows=1 width=8) │
│ -> Parallel Index Only Scan using _hyper_109_4228_chunk_clicks_host_dt_idx on _hyper_109_4228_chunk (cost=0.58..294.92 rows=1470 width=0) │
│ Index Cond: ((host = ('REDACTED'::text || "substring"((now())::text, 1, 0))) AND (dt > (now() - '10 days'::interval)) AND (dt > '2024-05-20 09:56:51.80338+00'::timestamp with time zone)) │
│ -> Partial Aggregate (cost=270.00..270.01 rows=1 width=8) │
│ -> Parallel Index Only Scan using _hyper_109_4227_chunk_clicks_host_dt_idx on _hyper_109_4227_chunk (cost=0.58..266.36 rows=1458 width=0) │
│ Index Cond: ((host = ('REDACTED'::text || "substring"((now())::text, 1, 0))) AND (dt > (now() - '10 days'::interval)) AND (dt > '2024-05-20 09:56:51.80338+00'::timestamp with time zone)) │
│ -> Partial Aggregate (cost=122.08..122.09 rows=1 width=8) │
│ -> Parallel Index Only Scan using _hyper_109_4229_chunk_clicks_host_dt_idx on _hyper_109_4229_chunk (cost=0.58..118.54 rows=1419 width=0) │
│ Index Cond: ((host = ('REDACTED'::text || "substring"((now())::text, 1, 0))) AND (dt > (now() - '10 days'::interval)) AND (dt > '2024-05-20 09:56:51.80338+00'::timestamp with time zone)) │
│ -> Partial Aggregate (cost=166.91..166.92 rows=1 width=8) │
│ -> Parallel Index Only Scan using _hyper_109_4250_chunk_clicks_host_dt_idx on _hyper_109_4250_chunk (cost=0.58..165.26 rows=659 width=0) │
│ Index Cond: ((host = ('REDACTED'::text || "substring"((now())::text, 1, 0))) AND (dt > (now() - '10 days'::interval)) AND (dt > '2024-05-20 09:56:51.80338+00'::timestamp with time zone)) │
│ -> Partial Aggregate (cost=104.95..104.96 rows=1 width=8) │
│ -> Parallel Index Only Scan using _hyper_109_4249_chunk_clicks_host_dt_idx on _hyper_109_4249_chunk (cost=0.58..103.07 rows=753 width=0) │
│ Index Cond: ((host = ('REDACTED'::text || "substring"((now())::text, 1, 0))) AND (dt > (now() - '10 days'::interval)) AND (dt > '2024-05-20 09:56:51.80338+00'::timestamp with time zone)) │
│ -> Partial Aggregate (cost=35.35..35.36 rows=1 width=8) │
│ -> Parallel Index Only Scan using _hyper_109_4248_chunk_clicks_host_dt_idx on _hyper_109_4248_chunk (cost=0.58..33.67 rows=672 width=0) │
│ Index Cond: ((host = ('REDACTED'::text || "substring"((now())::text, 1, 0))) AND (dt > (now() - '10 days'::interval)) AND (dt > '2024-05-20 09:56:51.80338+00'::timestamp with time zone)) │
│ -> Partial Aggregate (cost=111799.42..111799.43 rows=1 width=8) │
│ -> Custom Scan (DecompressChunk) on _hyper_109_4181_chunk (cost=0.21..8694.42 rows=41242000 width=0) │
│ Filter: (host = ('REDACTED'::text || "substring"((now())::text, 1, 0))) │
│ Vectorized Filter: (dt > (now() - '10 days'::interval)) │
│ -> Parallel Seq Scan on compress_hyper_110_4224_chunk (cost=0.00..8694.42 rows=41242 width=68) │
│ -> Partial Aggregate (cost=131155.58..131155.59 rows=1 width=8) │
│ -> Custom Scan (DecompressChunk) on _hyper_109_4183_chunk (cost=0.20..9760.58 rows=48558000 width=0) │
│ Filter: (host = ('REDACTED'::text || "substring"((now())::text, 1, 0))) │
│ Vectorized Filter: (dt > (now() - '10 days'::interval)) │
│ -> Parallel Seq Scan on compress_hyper_110_4226_chunk (cost=0.00..9760.58 rows=48558 width=68) │
│ -> Partial Aggregate (cost=131611.95..131611.96 rows=1 width=8) │
│ -> Custom Scan (DecompressChunk) on _hyper_109_4182_chunk (cost=0.20..9749.45 rows=48745000 width=0) │
│ Filter: (host = ('REDACTED'::text || "substring"((now())::text, 1, 0))) │
│ Vectorized Filter: (dt > (now() - '10 days'::interval)) │
│ -> Parallel Seq Scan on compress_hyper_110_4225_chunk (cost=0.00..9749.45 rows=48745 width=67) │
│ JIT: │
│ Functions: 50 │
│ Options: Inlining false, Optimization false, Expressions true, Deforming true │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
This is a workaround:
127.0.0.1:12034 stats@stats=> explain select count(*) from clicks where host='REDACTED' || (select substring(now()::text, 1, 0)) and dt > now() - interval '11 days';
┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ QUERY PLAN │
├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ Finalize Aggregate (cost=16117.04..16117.05 rows=1 width=8) │
│ InitPlan 1 (returns $0) │
│ -> Result (cost=0.00..0.02 rows=1 width=32) │
│ -> Custom Scan (ChunkAppend) on clicks (cost=1.57..16116.99 rows=12 width=8) │
│ Chunks excluded during startup: 0 │
│ -> Partial Aggregate (cost=8.14..8.15 rows=1 width=8) │
│ -> Custom Scan (DecompressChunk) on _hyper_109_4181_chunk (cost=1.57..3.14 rows=2000 width=0) │
│ Vectorized Filter: (dt > (now() - '11 days'::interval)) │
│ -> Index Scan using compress_hyper_110_4224_chunk_host__ts_meta_sequence_num_idx on compress_hyper_110_4224_chunk (cost=0.42..3.14 rows=2 width=68) │
│ Index Cond: (host = ('REDACTED'::text || $0)) │
│ -> Partial Aggregate (cost=11.14..11.15 rows=1 width=8) │
│ -> Custom Scan (DecompressChunk) on _hyper_109_4182_chunk (cost=1.21..3.64 rows=3000 width=0) │
│ Vectorized Filter: (dt > (now() - '11 days'::interval)) │
│ -> Index Scan using compress_hyper_110_4225_chunk_host__ts_meta_sequence_num_idx on compress_hyper_110_4225_chunk (cost=0.42..3.64 rows=3 width=67) │
│ Index Cond: (host = ('REDACTED'::text || $0)) │
│ -> Partial Aggregate (cost=11.14..11.15 rows=1 width=8) │
│ -> Custom Scan (DecompressChunk) on _hyper_109_4183_chunk (cost=1.21..3.64 rows=3000 width=0) │
│ Vectorized Filter: (dt > (now() - '11 days'::interval)) │
│ -> Index Scan using compress_hyper_110_4226_chunk_host__ts_meta_sequence_num_idx on compress_hyper_110_4226_chunk (cost=0.42..3.64 rows=3 width=68) │
│ Index Cond: (host = ('REDACTED'::text || $0)) │
│ -> Partial Aggregate (cost=5004.00..5004.01 rows=1 width=8) │
│ -> Index Only Scan using _hyper_109_4221_chunk_clicks_host_dt_idx on _hyper_109_4221_chunk (cost=0.57..4948.15 rows=22340 width=0) │
│ Index Cond: ((host = ('REDACTED'::text || $0)) AND (dt > (now() - '11 days'::interval))) │
│ -> Partial Aggregate (cost=3606.33..3606.34 rows=1 width=8) │
│ -> Index Only Scan using _hyper_109_4222_chunk_clicks_host_dt_idx on _hyper_109_4222_chunk (cost=0.57..3544.62 rows=24682 width=0) │
│ Index Cond: ((host = ('REDACTED'::text || $0)) AND (dt > (now() - '11 days'::interval))) │
│ -> Partial Aggregate (cost=2165.40..2165.41 rows=1 width=8) │
│ -> Index Only Scan using _hyper_109_4223_chunk_clicks_host_dt_idx on _hyper_109_4223_chunk (cost=0.57..2105.58 rows=23931 width=0) │
│ Index Cond: ((host = ('REDACTED'::text || $0)) AND (dt > (now() - '11 days'::interval))) │
│ -> Partial Aggregate (cost=1423.30..1423.31 rows=1 width=8) │
│ -> Index Only Scan using _hyper_109_4227_chunk_clicks_host_dt_idx on _hyper_109_4227_chunk (cost=0.57..1391.91 rows=12558 width=0) │
│ Index Cond: ((host = ('REDACTED'::text || $0)) AND (dt > (now() - '11 days'::interval))) │
│ -> Partial Aggregate (cost=1594.16..1594.17 rows=1 width=8) │
│ -> Index Only Scan using _hyper_109_4228_chunk_clicks_host_dt_idx on _hyper_109_4228_chunk (cost=0.57..1562.05 rows=12846 width=0) │
│ Index Cond: ((host = ('REDACTED'::text || $0)) AND (dt > (now() - '11 days'::interval))) │
│ -> Partial Aggregate (cost=567.60..567.61 rows=1 width=8) │
│ -> Index Only Scan using _hyper_109_4229_chunk_clicks_host_dt_idx on _hyper_109_4229_chunk (cost=0.57..541.65 rows=10378 width=0) │
│ Index Cond: ((host = ('REDACTED'::text || $0)) AND (dt > (now() - '11 days'::interval))) │
│ -> Partial Aggregate (cost=280.81..280.82 rows=1 width=8) │
│ -> Index Only Scan using _hyper_109_4248_chunk_clicks_host_dt_idx on _hyper_109_4248_chunk (cost=0.57..266.04 rows=5906 width=0) │
│ Index Cond: ((host = ('REDACTED'::text || $0)) AND (dt > (now() - '11 days'::interval))) │
│ -> Partial Aggregate (cost=552.80..552.81 rows=1 width=8) │
│ -> Index Only Scan using _hyper_109_4249_chunk_clicks_host_dt_idx on _hyper_109_4249_chunk (cost=0.57..538.23 rows=5828 width=0) │
│ Index Cond: ((host = ('REDACTED'::text || $0)) AND (dt > (now() - '11 days'::interval))) │
│ -> Partial Aggregate (cost=892.06..892.07 rows=1 width=8) │
│ -> Index Only Scan using _hyper_109_4250_chunk_clicks_host_dt_idx on _hyper_109_4250_chunk (cost=0.57..878.01 rows=5619 width=0) │
│ Index Cond: ((host = ('REDACTED'::text || $0)) AND (dt > (now() - '11 days'::interval))) │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
(47 rows)
Hi there,
Do you get different query results using your workaround and without it? Just asking because its not clear that you are just by looking at query plans.
Space partitioning on host should in theory reduce the amount of chunks you need to query based on the partitioning column filter (host in your case).
Can you confirm this?
Thanks!
Yes. Query without workaround returns only data after the timescale upgrade happened. The query without workaround returns all matched data
Hi again,
I've tried reproducing the issue with the data you have provided but had no luck.
Would you mind sharing the contents of your dimension, dimension_slice and chunk_constraint catalog tables? It would go a long way into debugging this issue.
You can get those like this:
SELECT * FROM _timescaledb_catalog.dimension;
SELECT * FROM _timescaledb_catalog.dimension_slice;
SELECT * FROM _timescaledb_catalog.chunk_constraint;
Thanks!
One question here: did you update from 2.14.x to 2.15.1 directly or did you first update to 2.15.0?
We had an issue with one of the update scripts for 2.15.0 which might be the culprit here.
2.15.1 directly
On Tue, Jun 4, 2024, at 11:05, Ante Kresic wrote:
One question here: did you update from 2.14.x to 2.15.1 directly or did you first update to 2.15.0?
We had an issue with one of the update scripts for 2.15.0 which might be the culprit here.
— Reply to this email directly, view it on GitHub https://github.com/timescale/timescaledb/issues/6976#issuecomment-2146872531, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAASLIMZI5XGPPFCJJ23A4DZFVYLLAVCNFSM6AAAAABIQZXA7KVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNBWHA3TENJTGE. You are receiving this because you authored the thread.Message ID: @.***>
Looks like you have hit a catalog corruption bug in the upgrade process. There is a PR out to fix it but we need to also restore the catalog for your instance in order to get the database in a working order.
I'm working on a script to fix the problem and will post it here once it's done.
Question: can you run it as a superuser on your environment? That will probably be necessary in order to fix the catalog.
Yes, I have superuser access
OK, so I have a couple of queries I would like you to run before we attempt fixing the catalog.
This one will show all the chunks that are broken:
WITH dimension_count as (
SELECT ht.id, count(*)
FROM _timescaledb_catalog.hypertable ht
INNER JOIN _timescaledb_catalog.dimension d
ON d.hypertable_id = ht.id
WHERE table_name = 'clicks'
GROUP BY 1),
chunk_constraint_count AS (
SELECT c.hypertable_id, cc.chunk_id, c.schema_name, c.table_name, count(*)
FROM _timescaledb_catalog.chunk_constraint cc
INNER JOIN _timescaledb_catalog.chunk c
ON cc.chunk_id = c.id
GROUP BY 1, 2,3 ,4
)
SELECT dc.*, ccc.*
FROM chunk_constraint_count ccc
INNER JOIN dimension_count dc
ON dc.id = ccc.hypertable_id
WHERE dc.count != ccc.count;
And this one will show the catalog entries that need to be inserted:
WITH dimension_count as (
SELECT ht.id, count(*)
FROM _timescaledb_catalog.hypertable ht
INNER JOIN _timescaledb_catalog.dimension d
ON d.hypertable_id = ht.id
WHERE table_name = 'clicks'
GROUP BY 1),
chunk_constraint_count AS (
SELECT c.hypertable_id, cc.chunk_id, c.schema_name, c.table_name, count(*)
FROM _timescaledb_catalog.chunk_constraint cc
INNER JOIN _timescaledb_catalog.chunk c
ON cc.chunk_id = c.id
GROUP BY 1, 2,3 ,4
)
SELECT ccc.chunk_id, tcc.dimension_slice_id, cc.constraint_name, null as hypertable_constraint_name
FROM information_schema.table_constraints tc
INNER JOIN chunk_constraint_count ccc
ON ccc.schema_name = tc.table_schema
and ccc.table_name = tc.table_name
INNER JOIN dimension_count dc
ON dc.id = ccc.hypertable_id
INNER JOIN information_schema.check_constraints cc
ON tc.constraint_name = cc.constraint_name
INNER JOIN information_schema.check_constraints jcc
ON cc.check_clause = jcc.check_clause
AND jcc.constraint_name != cc.constraint_name
AND EXISTS (
SELECT FROM _timescaledb_catalog.chunk_constraint
WHERE chunk_constraint.constraint_name = jcc.constraint_name
)
INNER JOIN _timescaledb_catalog.chunk_constraint tcc
ON jcc.constraint_name = tcc.constraint_name
WHERE dc.count != ccc.count
and tc.constraint_name like 'constraint%'
and NOT EXISTS (
SELECT FROM _timescaledb_catalog.chunk_constraint
WHERE chunk_constraint.constraint_name = tc.constraint_name
AND chunk_constraint.chunk_id = ccc.chunk_id
AND chunk_constraint.hypertable_constraint_name IS NULL
);
Can you share the outputs of these queries?
Thanks,
timescale-us$ WITH dimension_count as (
SELECT ht.id, count(*)
FROM _timescaledb_catalog.hypertable ht
INNER JOIN _timescaledb_catalog.dimension d
ON d.hypertable_id = ht.id
WHERE table_name = 'space_partitioning'
GROUP BY 1),
chunk_constraint_count AS (
SELECT c.hypertable_id, cc.chunk_id, c.schema_name, c.table_name, count(*)
FROM _timescaledb_catalog.chunk_constraint cc
INNER JOIN _timescaledb_catalog.chunk c
ON cc.chunk_id = c.id
GROUP BY 1, 2,3 ,4
)
SELECT dc.*, ccc.*
FROM chunk_constraint_count ccc
INNER JOIN dimension_count dc
ON dc.id = ccc.hypertable_id
WHERE dc.count != ccc.count;
id | count | hypertable_id | chunk_id | schema_name | table_name | count
----+-------+---------------+----------+-------------+------------+-------
(0 rows)
┌──────────┬────────────────────┬─────────────────┬────────────────────────────┐
│ chunk_id │ dimension_slice_id │ constraint_name │ hypertable_constraint_name │
├──────────┼────────────────────┼─────────────────┼────────────────────────────┤
└──────────┴────────────────────┴─────────────────┴────────────────────────────┘
I'm so sorry, I didn't use your hypertable name. Can we try them again? I've updated the ht names: https://github.com/timescale/timescaledb/issues/6976#issuecomment-2151940042
┌─────┬───────┬───────────────┬──────────┬───────────────────────┬───────────────────────┬───────┐
│ id │ count │ hypertable_id │ chunk_id │ schema_name │ table_name │ count │
├─────┼───────┼───────────────┼──────────┼───────────────────────┼───────────────────────┼───────┤
│ 109 │ 2 │ 109 │ 2432 │ _timescaledb_internal │ _hyper_109_2432_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2251 │ _timescaledb_internal │ _hyper_109_2251_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2786 │ _timescaledb_internal │ _hyper_109_2786_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3372 │ _timescaledb_internal │ _hyper_109_3372_chunk │ 1 │
│ 109 │ 2 │ 109 │ 1979 │ _timescaledb_internal │ _hyper_109_1979_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2051 │ _timescaledb_internal │ _hyper_109_2051_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3762 │ _timescaledb_internal │ _hyper_109_3762_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3736 │ _timescaledb_internal │ _hyper_109_3736_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2758 │ _timescaledb_internal │ _hyper_109_2758_chunk │ 1 │
│ 109 │ 2 │ 109 │ 1922 │ _timescaledb_internal │ _hyper_109_1922_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3022 │ _timescaledb_internal │ _hyper_109_3022_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3970 │ _timescaledb_internal │ _hyper_109_3970_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3278 │ _timescaledb_internal │ _hyper_109_3278_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3420 │ _timescaledb_internal │ _hyper_109_3420_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2192 │ _timescaledb_internal │ _hyper_109_2192_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2075 │ _timescaledb_internal │ _hyper_109_2075_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3969 │ _timescaledb_internal │ _hyper_109_3969_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2077 │ _timescaledb_internal │ _hyper_109_2077_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3637 │ _timescaledb_internal │ _hyper_109_3637_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3058 │ _timescaledb_internal │ _hyper_109_3058_chunk │ 1 │
│ 109 │ 2 │ 109 │ 4227 │ _timescaledb_internal │ _hyper_109_4227_chunk │ 1 │
│ 109 │ 2 │ 109 │ 4104 │ _timescaledb_internal │ _hyper_109_4104_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3947 │ _timescaledb_internal │ _hyper_109_3947_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3946 │ _timescaledb_internal │ _hyper_109_3946_chunk │ 1 │
│ 109 │ 2 │ 109 │ 4228 │ _timescaledb_internal │ _hyper_109_4228_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2840 │ _timescaledb_internal │ _hyper_109_2840_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2578 │ _timescaledb_internal │ _hyper_109_2578_chunk │ 1 │
│ 109 │ 2 │ 109 │ 4222 │ _timescaledb_internal │ _hyper_109_4222_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2781 │ _timescaledb_internal │ _hyper_109_2781_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3971 │ _timescaledb_internal │ _hyper_109_3971_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3238 │ _timescaledb_internal │ _hyper_109_3238_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3536 │ _timescaledb_internal │ _hyper_109_3536_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2788 │ _timescaledb_internal │ _hyper_109_2788_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2787 │ _timescaledb_internal │ _hyper_109_2787_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2430 │ _timescaledb_internal │ _hyper_109_2430_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3239 │ _timescaledb_internal │ _hyper_109_3239_chunk │ 1 │
│ 109 │ 2 │ 109 │ 4183 │ _timescaledb_internal │ _hyper_109_4183_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3217 │ _timescaledb_internal │ _hyper_109_3217_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3537 │ _timescaledb_internal │ _hyper_109_3537_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3544 │ _timescaledb_internal │ _hyper_109_3544_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2024 │ _timescaledb_internal │ _hyper_109_2024_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2490 │ _timescaledb_internal │ _hyper_109_2490_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2194 │ _timescaledb_internal │ _hyper_109_2194_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2841 │ _timescaledb_internal │ _hyper_109_2841_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2488 │ _timescaledb_internal │ _hyper_109_2488_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2842 │ _timescaledb_internal │ _hyper_109_2842_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3018 │ _timescaledb_internal │ _hyper_109_3018_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3513 │ _timescaledb_internal │ _hyper_109_3513_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3331 │ _timescaledb_internal │ _hyper_109_3331_chunk │ 1 │
│ 109 │ 2 │ 109 │ 4223 │ _timescaledb_internal │ _hyper_109_4223_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2576 │ _timescaledb_internal │ _hyper_109_2576_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3371 │ _timescaledb_internal │ _hyper_109_3371_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2495 │ _timescaledb_internal │ _hyper_109_2495_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2757 │ _timescaledb_internal │ _hyper_109_2757_chunk │ 1 │
│ 109 │ 2 │ 109 │ 1793 │ _timescaledb_internal │ _hyper_109_1793_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3057 │ _timescaledb_internal │ _hyper_109_3057_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2518 │ _timescaledb_internal │ _hyper_109_2518_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3216 │ _timescaledb_internal │ _hyper_109_3216_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3211 │ _timescaledb_internal │ _hyper_109_3211_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2630 │ _timescaledb_internal │ _hyper_109_2630_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3454 │ _timescaledb_internal │ _hyper_109_3454_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2323 │ _timescaledb_internal │ _hyper_109_2323_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2780 │ _timescaledb_internal │ _hyper_109_2780_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2282 │ _timescaledb_internal │ _hyper_109_2282_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3569 │ _timescaledb_internal │ _hyper_109_3569_chunk │ 1 │
│ 109 │ 2 │ 109 │ 4103 │ _timescaledb_internal │ _hyper_109_4103_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3515 │ _timescaledb_internal │ _hyper_109_3515_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2050 │ _timescaledb_internal │ _hyper_109_2050_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3333 │ _timescaledb_internal │ _hyper_109_3333_chunk │ 1 │
│ 109 │ 2 │ 109 │ 4229 │ _timescaledb_internal │ _hyper_109_4229_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3016 │ _timescaledb_internal │ _hyper_109_3016_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2193 │ _timescaledb_internal │ _hyper_109_2193_chunk │ 1 │
│ 109 │ 2 │ 109 │ 1870 │ _timescaledb_internal │ _hyper_109_1870_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2086 │ _timescaledb_internal │ _hyper_109_2086_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3240 │ _timescaledb_internal │ _hyper_109_3240_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3811 │ _timescaledb_internal │ _hyper_109_3811_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3413 │ _timescaledb_internal │ _hyper_109_3413_chunk │ 1 │
│ 109 │ 2 │ 109 │ 4181 │ _timescaledb_internal │ _hyper_109_4181_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3209 │ _timescaledb_internal │ _hyper_109_3209_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2461 │ _timescaledb_internal │ _hyper_109_2461_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2322 │ _timescaledb_internal │ _hyper_109_2322_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3302 │ _timescaledb_internal │ _hyper_109_3302_chunk │ 1 │
│ 109 │ 2 │ 109 │ 4159 │ _timescaledb_internal │ _hyper_109_4159_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3415 │ _timescaledb_internal │ _hyper_109_3415_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3788 │ _timescaledb_internal │ _hyper_109_3788_chunk │ 1 │
│ 109 │ 2 │ 109 │ 1980 │ _timescaledb_internal │ _hyper_109_1980_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3735 │ _timescaledb_internal │ _hyper_109_3735_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2023 │ _timescaledb_internal │ _hyper_109_2023_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3636 │ _timescaledb_internal │ _hyper_109_3636_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3488 │ _timescaledb_internal │ _hyper_109_3488_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2076 │ _timescaledb_internal │ _hyper_109_2076_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3741 │ _timescaledb_internal │ _hyper_109_3741_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3487 │ _timescaledb_internal │ _hyper_109_3487_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2281 │ _timescaledb_internal │ _hyper_109_2281_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3844 │ _timescaledb_internal │ _hyper_109_3844_chunk │ 1 │
│ 109 │ 2 │ 109 │ 4160 │ _timescaledb_internal │ _hyper_109_4160_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3279 │ _timescaledb_internal │ _hyper_109_3279_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2280 │ _timescaledb_internal │ _hyper_109_2280_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2914 │ _timescaledb_internal │ _hyper_109_2914_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2489 │ _timescaledb_internal │ _hyper_109_2489_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3111 │ _timescaledb_internal │ _hyper_109_3111_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3444 │ _timescaledb_internal │ _hyper_109_3444_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3570 │ _timescaledb_internal │ _hyper_109_3570_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3332 │ _timescaledb_internal │ _hyper_109_3332_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2519 │ _timescaledb_internal │ _hyper_109_2519_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3845 │ _timescaledb_internal │ _hyper_109_3845_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3761 │ _timescaledb_internal │ _hyper_109_3761_chunk │ 1 │
│ 109 │ 2 │ 109 │ 4105 │ _timescaledb_internal │ _hyper_109_4105_chunk │ 1 │
│ 109 │ 2 │ 109 │ 4182 │ _timescaledb_internal │ _hyper_109_4182_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3421 │ _timescaledb_internal │ _hyper_109_3421_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3912 │ _timescaledb_internal │ _hyper_109_3912_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3673 │ _timescaledb_internal │ _hyper_109_3673_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3760 │ _timescaledb_internal │ _hyper_109_3760_chunk │ 1 │
│ 109 │ 2 │ 109 │ 1921 │ _timescaledb_internal │ _hyper_109_1921_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3568 │ _timescaledb_internal │ _hyper_109_3568_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3446 │ _timescaledb_internal │ _hyper_109_3446_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3050 │ _timescaledb_internal │ _hyper_109_3050_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3787 │ _timescaledb_internal │ _hyper_109_3787_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3304 │ _timescaledb_internal │ _hyper_109_3304_chunk │ 1 │
│ 109 │ 2 │ 109 │ 1923 │ _timescaledb_internal │ _hyper_109_1923_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3300 │ _timescaledb_internal │ _hyper_109_3300_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2079 │ _timescaledb_internal │ _hyper_109_2079_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2465 │ _timescaledb_internal │ _hyper_109_2465_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3672 │ _timescaledb_internal │ _hyper_109_3672_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2520 │ _timescaledb_internal │ _hyper_109_2520_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3017 │ _timescaledb_internal │ _hyper_109_3017_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2228 │ _timescaledb_internal │ _hyper_109_2228_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3128 │ _timescaledb_internal │ _hyper_109_3128_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3809 │ _timescaledb_internal │ _hyper_109_3809_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2759 │ _timescaledb_internal │ _hyper_109_2759_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2397 │ _timescaledb_internal │ _hyper_109_2397_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2049 │ _timescaledb_internal │ _hyper_109_2049_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3452 │ _timescaledb_internal │ _hyper_109_3452_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2912 │ _timescaledb_internal │ _hyper_109_2912_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2459 │ _timescaledb_internal │ _hyper_109_2459_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3635 │ _timescaledb_internal │ _hyper_109_3635_chunk │ 1 │
│ 109 │ 2 │ 109 │ 1794 │ _timescaledb_internal │ _hyper_109_1794_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2431 │ _timescaledb_internal │ _hyper_109_2431_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2398 │ _timescaledb_internal │ _hyper_109_2398_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2324 │ _timescaledb_internal │ _hyper_109_2324_chunk │ 1 │
│ 109 │ 2 │ 109 │ 4098 │ _timescaledb_internal │ _hyper_109_4098_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2252 │ _timescaledb_internal │ _hyper_109_2252_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3056 │ _timescaledb_internal │ _hyper_109_3056_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3843 │ _timescaledb_internal │ _hyper_109_3843_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2782 │ _timescaledb_internal │ _hyper_109_2782_chunk │ 1 │
│ 109 │ 2 │ 109 │ 4097 │ _timescaledb_internal │ _hyper_109_4097_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3215 │ _timescaledb_internal │ _hyper_109_3215_chunk │ 1 │
│ 109 │ 2 │ 109 │ 4099 │ _timescaledb_internal │ _hyper_109_4099_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2629 │ _timescaledb_internal │ _hyper_109_2629_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2259 │ _timescaledb_internal │ _hyper_109_2259_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2466 │ _timescaledb_internal │ _hyper_109_2466_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2628 │ _timescaledb_internal │ _hyper_109_2628_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3613 │ _timescaledb_internal │ _hyper_109_3613_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3023 │ _timescaledb_internal │ _hyper_109_3023_chunk │ 1 │
│ 109 │ 2 │ 109 │ 1978 │ _timescaledb_internal │ _hyper_109_1978_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3021 │ _timescaledb_internal │ _hyper_109_3021_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3112 │ _timescaledb_internal │ _hyper_109_3112_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2229 │ _timescaledb_internal │ _hyper_109_2229_chunk │ 1 │
│ 109 │ 2 │ 109 │ 1868 │ _timescaledb_internal │ _hyper_109_1868_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2253 │ _timescaledb_internal │ _hyper_109_2253_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3976 │ _timescaledb_internal │ _hyper_109_3976_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2078 │ _timescaledb_internal │ _hyper_109_2078_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3977 │ _timescaledb_internal │ _hyper_109_3977_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3210 │ _timescaledb_internal │ _hyper_109_3210_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3740 │ _timescaledb_internal │ _hyper_109_3740_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3786 │ _timescaledb_internal │ _hyper_109_3786_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2258 │ _timescaledb_internal │ _hyper_109_2258_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3514 │ _timescaledb_internal │ _hyper_109_3514_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3419 │ _timescaledb_internal │ _hyper_109_3419_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3674 │ _timescaledb_internal │ _hyper_109_3674_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2496 │ _timescaledb_internal │ _hyper_109_2496_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3301 │ _timescaledb_internal │ _hyper_109_3301_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3277 │ _timescaledb_internal │ _hyper_109_3277_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3911 │ _timescaledb_internal │ _hyper_109_3911_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3614 │ _timescaledb_internal │ _hyper_109_3614_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3810 │ _timescaledb_internal │ _hyper_109_3810_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3453 │ _timescaledb_internal │ _hyper_109_3453_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2399 │ _timescaledb_internal │ _hyper_109_2399_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3445 │ _timescaledb_internal │ _hyper_109_3445_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3615 │ _timescaledb_internal │ _hyper_109_3615_chunk │ 1 │
│ 109 │ 2 │ 109 │ 4221 │ _timescaledb_internal │ _hyper_109_4221_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2577 │ _timescaledb_internal │ _hyper_109_2577_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3127 │ _timescaledb_internal │ _hyper_109_3127_chunk │ 1 │
│ 109 │ 2 │ 109 │ 1869 │ _timescaledb_internal │ _hyper_109_1869_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3542 │ _timescaledb_internal │ _hyper_109_3542_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3489 │ _timescaledb_internal │ _hyper_109_3489_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3910 │ _timescaledb_internal │ _hyper_109_3910_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2467 │ _timescaledb_internal │ _hyper_109_2467_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2257 │ _timescaledb_internal │ _hyper_109_2257_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3299 │ _timescaledb_internal │ _hyper_109_3299_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2913 │ _timescaledb_internal │ _hyper_109_2913_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3535 │ _timescaledb_internal │ _hyper_109_3535_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3948 │ _timescaledb_internal │ _hyper_109_3948_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2460 │ _timescaledb_internal │ _hyper_109_2460_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2085 │ _timescaledb_internal │ _hyper_109_2085_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2022 │ _timescaledb_internal │ _hyper_109_2022_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3113 │ _timescaledb_internal │ _hyper_109_3113_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3414 │ _timescaledb_internal │ _hyper_109_3414_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3742 │ _timescaledb_internal │ _hyper_109_3742_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3303 │ _timescaledb_internal │ _hyper_109_3303_chunk │ 1 │
│ 109 │ 2 │ 109 │ 1795 │ _timescaledb_internal │ _hyper_109_1795_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2074 │ _timescaledb_internal │ _hyper_109_2074_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3734 │ _timescaledb_internal │ _hyper_109_3734_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2494 │ _timescaledb_internal │ _hyper_109_2494_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3052 │ _timescaledb_internal │ _hyper_109_3052_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3975 │ _timescaledb_internal │ _hyper_109_3975_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3051 │ _timescaledb_internal │ _hyper_109_3051_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2230 │ _timescaledb_internal │ _hyper_109_2230_chunk │ 1 │
│ 109 │ 2 │ 109 │ 2084 │ _timescaledb_internal │ _hyper_109_2084_chunk │ 1 │
│ 109 │ 2 │ 109 │ 4158 │ _timescaledb_internal │ _hyper_109_4158_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3129 │ _timescaledb_internal │ _hyper_109_3129_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3543 │ _timescaledb_internal │ _hyper_109_3543_chunk │ 1 │
│ 109 │ 2 │ 109 │ 3373 │ _timescaledb_internal │ _hyper_109_3373_chunk │ 1 │
└─────┴───────┴───────────────┴──────────┴───────────────────────┴───────────────────────┴───────┘
(213 rows)
┌──────────┬────────────────────┬─────────────────┬────────────────────────────┐
│ chunk_id │ dimension_slice_id │ constraint_name │ hypertable_constraint_name │
├──────────┼────────────────────┼─────────────────┼────────────────────────────┤
│ 3786 │ 2240 │ constraint_305 │ ∅ │
│ 3786 │ 2240 │ constraint_305 │ ∅ │
│ 3786 │ 2240 │ constraint_305 │ ∅ │
│ 3787 │ 2241 │ constraint_303 │ ∅ │
│ 3787 │ 2241 │ constraint_303 │ ∅ │
│ 3787 │ 2241 │ constraint_303 │ ∅ │
│ 3788 │ 2239 │ constraint_304 │ ∅ │
│ 3788 │ 2239 │ constraint_304 │ ∅ │
│ 3788 │ 2239 │ constraint_304 │ ∅ │
│ 3535 │ 2240 │ constraint_305 │ ∅ │
│ 3535 │ 2240 │ constraint_305 │ ∅ │
│ 3535 │ 2240 │ constraint_305 │ ∅ │
│ 3127 │ 2239 │ constraint_304 │ ∅ │
│ 3127 │ 2239 │ constraint_304 │ ∅ │
│ 3127 │ 2239 │ constraint_304 │ ∅ │
│ 3536 │ 2241 │ constraint_303 │ ∅ │
│ 3536 │ 2241 │ constraint_303 │ ∅ │
│ 3536 │ 2241 │ constraint_303 │ ∅ │
│ 3537 │ 2239 │ constraint_304 │ ∅ │
│ 3537 │ 2239 │ constraint_304 │ ∅ │
│ 3537 │ 2239 │ constraint_304 │ ∅ │
│ 3542 │ 2239 │ constraint_304 │ ∅ │
│ 3542 │ 2239 │ constraint_304 │ ∅ │
│ 3542 │ 2239 │ constraint_304 │ ∅ │
│ 3543 │ 2241 │ constraint_303 │ ∅ │
│ 3543 │ 2241 │ constraint_303 │ ∅ │
│ 3543 │ 2241 │ constraint_303 │ ∅ │
│ 3544 │ 2240 │ constraint_305 │ ∅ │
│ 3544 │ 2240 │ constraint_305 │ ∅ │
│ 3544 │ 2240 │ constraint_305 │ ∅ │
│ 3613 │ 2241 │ constraint_303 │ ∅ │
│ 3613 │ 2241 │ constraint_303 │ ∅ │
│ 3613 │ 2241 │ constraint_303 │ ∅ │
│ 3614 │ 2239 │ constraint_304 │ ∅ │
│ 3614 │ 2239 │ constraint_304 │ ∅ │
│ 3614 │ 2239 │ constraint_304 │ ∅ │
│ 3568 │ 2240 │ constraint_305 │ ∅ │
│ 3568 │ 2240 │ constraint_305 │ ∅ │
│ 3568 │ 2240 │ constraint_305 │ ∅ │
│ 3569 │ 2239 │ constraint_304 │ ∅ │
│ 3569 │ 2239 │ constraint_304 │ ∅ │
│ 3569 │ 2239 │ constraint_304 │ ∅ │
│ 3570 │ 2241 │ constraint_303 │ ∅ │
│ 3570 │ 2241 │ constraint_303 │ ∅ │
│ 3570 │ 2241 │ constraint_303 │ ∅ │
│ 3809 │ 2241 │ constraint_303 │ ∅ │
│ 3809 │ 2241 │ constraint_303 │ ∅ │
│ 3809 │ 2241 │ constraint_303 │ ∅ │
│ 3810 │ 2240 │ constraint_305 │ ∅ │
│ 3810 │ 2240 │ constraint_305 │ ∅ │
│ 3810 │ 2240 │ constraint_305 │ ∅ │
│ 3843 │ 2239 │ constraint_304 │ ∅ │
│ 3843 │ 2239 │ constraint_304 │ ∅ │
│ 3843 │ 2239 │ constraint_304 │ ∅ │
│ 3615 │ 2240 │ constraint_305 │ ∅ │
│ 3615 │ 2240 │ constraint_305 │ ∅ │
│ 3615 │ 2240 │ constraint_305 │ ∅ │
│ 3844 │ 2240 │ constraint_305 │ ∅ │
│ 3844 │ 2240 │ constraint_305 │ ∅ │
│ 3844 │ 2240 │ constraint_305 │ ∅ │
│ 3811 │ 2239 │ constraint_304 │ ∅ │
│ 3811 │ 2239 │ constraint_304 │ ∅ │
│ 3811 │ 2239 │ constraint_304 │ ∅ │
│ 3845 │ 2241 │ constraint_303 │ ∅ │
│ 3845 │ 2241 │ constraint_303 │ ∅ │
│ 3845 │ 2241 │ constraint_303 │ ∅ │
│ 3672 │ 2241 │ constraint_303 │ ∅ │
│ 3672 │ 2241 │ constraint_303 │ ∅ │
│ 3672 │ 2241 │ constraint_303 │ ∅ │
│ 3673 │ 2240 │ constraint_305 │ ∅ │
│ 3673 │ 2240 │ constraint_305 │ ∅ │
│ 3673 │ 2240 │ constraint_305 │ ∅ │
│ 3674 │ 2239 │ constraint_304 │ ∅ │
│ 3674 │ 2239 │ constraint_304 │ ∅ │
│ 3674 │ 2239 │ constraint_304 │ ∅ │
│ 3635 │ 2240 │ constraint_305 │ ∅ │
│ 3635 │ 2240 │ constraint_305 │ ∅ │
│ 3635 │ 2240 │ constraint_305 │ ∅ │
│ 3636 │ 2241 │ constraint_303 │ ∅ │
│ 3636 │ 2241 │ constraint_303 │ ∅ │
│ 3636 │ 2241 │ constraint_303 │ ∅ │
│ 3637 │ 2239 │ constraint_304 │ ∅ │
│ 3637 │ 2239 │ constraint_304 │ ∅ │
│ 3637 │ 2239 │ constraint_304 │ ∅ │
│ 3910 │ 2240 │ constraint_305 │ ∅ │
│ 3910 │ 2240 │ constraint_305 │ ∅ │
│ 3910 │ 2240 │ constraint_305 │ ∅ │
│ 3734 │ 2241 │ constraint_303 │ ∅ │
│ 3734 │ 2241 │ constraint_303 │ ∅ │
│ 3734 │ 2241 │ constraint_303 │ ∅ │
│ 3735 │ 2240 │ constraint_305 │ ∅ │
│ 3735 │ 2240 │ constraint_305 │ ∅ │
│ 3735 │ 2240 │ constraint_305 │ ∅ │
│ 3736 │ 2239 │ constraint_304 │ ∅ │
│ 3736 │ 2239 │ constraint_304 │ ∅ │
│ 3736 │ 2239 │ constraint_304 │ ∅ │
│ 3740 │ 2241 │ constraint_303 │ ∅ │
│ 3740 │ 2241 │ constraint_303 │ ∅ │
│ 3740 │ 2241 │ constraint_303 │ ∅ │
│ 3741 │ 2240 │ constraint_305 │ ∅ │
│ 3741 │ 2240 │ constraint_305 │ ∅ │
│ 3741 │ 2240 │ constraint_305 │ ∅ │
│ 3742 │ 2239 │ constraint_304 │ ∅ │
│ 3742 │ 2239 │ constraint_304 │ ∅ │
│ 3742 │ 2239 │ constraint_304 │ ∅ │
│ 3911 │ 2241 │ constraint_303 │ ∅ │
│ 3911 │ 2241 │ constraint_303 │ ∅ │
│ 3911 │ 2241 │ constraint_303 │ ∅ │
│ 3912 │ 2239 │ constraint_304 │ ∅ │
│ 3912 │ 2239 │ constraint_304 │ ∅ │
│ 3912 │ 2239 │ constraint_304 │ ∅ │
│ 3946 │ 2241 │ constraint_303 │ ∅ │
│ 3946 │ 2241 │ constraint_303 │ ∅ │
│ 3946 │ 2241 │ constraint_303 │ ∅ │
│ 3947 │ 2239 │ constraint_304 │ ∅ │
│ 3947 │ 2239 │ constraint_304 │ ∅ │
│ 3947 │ 2239 │ constraint_304 │ ∅ │
│ 3948 │ 2240 │ constraint_305 │ ∅ │
│ 3948 │ 2240 │ constraint_305 │ ∅ │
│ 3948 │ 2240 │ constraint_305 │ ∅ │
│ 3760 │ 2239 │ constraint_304 │ ∅ │
│ 3760 │ 2239 │ constraint_304 │ ∅ │
│ 3760 │ 2239 │ constraint_304 │ ∅ │
│ 3761 │ 2241 │ constraint_303 │ ∅ │
│ 3761 │ 2241 │ constraint_303 │ ∅ │
│ 3761 │ 2241 │ constraint_303 │ ∅ │
│ 3762 │ 2240 │ constraint_305 │ ∅ │
│ 3762 │ 2240 │ constraint_305 │ ∅ │
│ 3762 │ 2240 │ constraint_305 │ ∅ │
│ 3969 │ 2240 │ constraint_305 │ ∅ │
│ 3969 │ 2240 │ constraint_305 │ ∅ │
│ 3969 │ 2240 │ constraint_305 │ ∅ │
│ 3970 │ 2241 │ constraint_303 │ ∅ │
│ 3970 │ 2241 │ constraint_303 │ ∅ │
│ 3970 │ 2241 │ constraint_303 │ ∅ │
│ 3971 │ 2239 │ constraint_304 │ ∅ │
│ 3971 │ 2239 │ constraint_304 │ ∅ │
│ 3971 │ 2239 │ constraint_304 │ ∅ │
│ 3975 │ 2239 │ constraint_304 │ ∅ │
│ 3975 │ 2239 │ constraint_304 │ ∅ │
│ 3975 │ 2239 │ constraint_304 │ ∅ │
│ 3976 │ 2241 │ constraint_303 │ ∅ │
│ 3976 │ 2241 │ constraint_303 │ ∅ │
│ 3976 │ 2241 │ constraint_303 │ ∅ │
│ 3977 │ 2240 │ constraint_305 │ ∅ │
│ 3977 │ 2240 │ constraint_305 │ ∅ │
│ 3977 │ 2240 │ constraint_305 │ ∅ │
│ 4097 │ 2240 │ constraint_305 │ ∅ │
│ 4097 │ 2240 │ constraint_305 │ ∅ │
│ 4097 │ 2240 │ constraint_305 │ ∅ │
│ 4098 │ 2239 │ constraint_304 │ ∅ │
│ 4098 │ 2239 │ constraint_304 │ ∅ │
│ 4098 │ 2239 │ constraint_304 │ ∅ │
│ 4099 │ 2241 │ constraint_303 │ ∅ │
│ 4099 │ 2241 │ constraint_303 │ ∅ │
│ 4099 │ 2241 │ constraint_303 │ ∅ │
│ 4103 │ 2240 │ constraint_305 │ ∅ │
│ 4103 │ 2240 │ constraint_305 │ ∅ │
│ 4103 │ 2240 │ constraint_305 │ ∅ │
│ 4104 │ 2241 │ constraint_303 │ ∅ │
│ 4104 │ 2241 │ constraint_303 │ ∅ │
│ 4104 │ 2241 │ constraint_303 │ ∅ │
│ 4105 │ 2239 │ constraint_304 │ ∅ │
│ 4105 │ 2239 │ constraint_304 │ ∅ │
│ 4105 │ 2239 │ constraint_304 │ ∅ │
│ 4158 │ 2241 │ constraint_303 │ ∅ │
│ 4158 │ 2241 │ constraint_303 │ ∅ │
│ 4158 │ 2241 │ constraint_303 │ ∅ │
│ 4159 │ 2239 │ constraint_304 │ ∅ │
│ 4159 │ 2239 │ constraint_304 │ ∅ │
│ 4159 │ 2239 │ constraint_304 │ ∅ │
│ 4160 │ 2240 │ constraint_305 │ ∅ │
│ 4160 │ 2240 │ constraint_305 │ ∅ │
│ 4160 │ 2240 │ constraint_305 │ ∅ │
│ 4181 │ 2239 │ constraint_304 │ ∅ │
│ 4181 │ 2239 │ constraint_304 │ ∅ │
│ 4181 │ 2239 │ constraint_304 │ ∅ │
│ 4182 │ 2240 │ constraint_305 │ ∅ │
│ 4182 │ 2240 │ constraint_305 │ ∅ │
│ 4182 │ 2240 │ constraint_305 │ ∅ │
│ 4183 │ 2241 │ constraint_303 │ ∅ │
│ 4183 │ 2241 │ constraint_303 │ ∅ │
│ 4183 │ 2241 │ constraint_303 │ ∅ │
│ 3128 │ 2240 │ constraint_305 │ ∅ │
│ 3128 │ 2240 │ constraint_305 │ ∅ │
│ 3128 │ 2240 │ constraint_305 │ ∅ │
│ 4221 │ 2239 │ constraint_304 │ ∅ │
│ 4221 │ 2239 │ constraint_304 │ ∅ │
│ 4221 │ 2239 │ constraint_304 │ ∅ │
│ 4227 │ 2241 │ constraint_303 │ ∅ │
│ 4227 │ 2241 │ constraint_303 │ ∅ │
│ 4227 │ 2241 │ constraint_303 │ ∅ │
│ 4222 │ 2240 │ constraint_305 │ ∅ │
│ 4222 │ 2240 │ constraint_305 │ ∅ │
│ 4222 │ 2240 │ constraint_305 │ ∅ │
│ 4223 │ 2241 │ constraint_303 │ ∅ │
│ 4223 │ 2241 │ constraint_303 │ ∅ │
│ 4223 │ 2241 │ constraint_303 │ ∅ │
│ 4228 │ 2239 │ constraint_304 │ ∅ │
│ 4228 │ 2239 │ constraint_304 │ ∅ │
│ 4228 │ 2239 │ constraint_304 │ ∅ │
│ 4229 │ 2240 │ constraint_305 │ ∅ │
│ 4229 │ 2240 │ constraint_305 │ ∅ │
│ 4229 │ 2240 │ constraint_305 │ ∅ │
│ 3129 │ 2241 │ constraint_303 │ ∅ │
│ 3129 │ 2241 │ constraint_303 │ ∅ │
│ 3129 │ 2241 │ constraint_303 │ ∅ │
│ 3209 │ 2241 │ constraint_303 │ ∅ │
│ 3209 │ 2241 │ constraint_303 │ ∅ │
│ 3209 │ 2241 │ constraint_303 │ ∅ │
│ 3210 │ 2240 │ constraint_305 │ ∅ │
│ 3210 │ 2240 │ constraint_305 │ ∅ │
│ 3210 │ 2240 │ constraint_305 │ ∅ │
│ 3211 │ 2239 │ constraint_304 │ ∅ │
│ 3211 │ 2239 │ constraint_304 │ ∅ │
│ 3211 │ 2239 │ constraint_304 │ ∅ │
│ 3215 │ 2240 │ constraint_305 │ ∅ │
│ 3215 │ 2240 │ constraint_305 │ ∅ │
│ 3215 │ 2240 │ constraint_305 │ ∅ │
│ 3216 │ 2241 │ constraint_303 │ ∅ │
│ 3216 │ 2241 │ constraint_303 │ ∅ │
│ 3216 │ 2241 │ constraint_303 │ ∅ │
│ 3217 │ 2239 │ constraint_304 │ ∅ │
│ 3217 │ 2239 │ constraint_304 │ ∅ │
│ 3217 │ 2239 │ constraint_304 │ ∅ │
│ 3238 │ 2240 │ constraint_305 │ ∅ │
│ 3238 │ 2240 │ constraint_305 │ ∅ │
│ 3238 │ 2240 │ constraint_305 │ ∅ │
│ 3239 │ 2241 │ constraint_303 │ ∅ │
│ 3239 │ 2241 │ constraint_303 │ ∅ │
│ 3239 │ 2241 │ constraint_303 │ ∅ │
│ 3240 │ 2239 │ constraint_304 │ ∅ │
│ 3240 │ 2239 │ constraint_304 │ ∅ │
│ 3240 │ 2239 │ constraint_304 │ ∅ │
│ 3277 │ 2239 │ constraint_304 │ ∅ │
│ 3277 │ 2239 │ constraint_304 │ ∅ │
│ 3277 │ 2239 │ constraint_304 │ ∅ │
│ 3278 │ 2240 │ constraint_305 │ ∅ │
│ 3278 │ 2240 │ constraint_305 │ ∅ │
│ 3278 │ 2240 │ constraint_305 │ ∅ │
│ 3279 │ 2241 │ constraint_303 │ ∅ │
│ 3279 │ 2241 │ constraint_303 │ ∅ │
│ 3279 │ 2241 │ constraint_303 │ ∅ │
│ 3299 │ 2241 │ constraint_303 │ ∅ │
│ 3299 │ 2241 │ constraint_303 │ ∅ │
│ 3299 │ 2241 │ constraint_303 │ ∅ │
│ 3300 │ 2240 │ constraint_305 │ ∅ │
│ 3300 │ 2240 │ constraint_305 │ ∅ │
│ 3300 │ 2240 │ constraint_305 │ ∅ │
│ 3301 │ 2239 │ constraint_304 │ ∅ │
│ 3301 │ 2239 │ constraint_304 │ ∅ │
│ 3301 │ 2239 │ constraint_304 │ ∅ │
│ 3302 │ 2239 │ constraint_304 │ ∅ │
│ 3302 │ 2239 │ constraint_304 │ ∅ │
│ 3302 │ 2239 │ constraint_304 │ ∅ │
│ 3303 │ 2241 │ constraint_303 │ ∅ │
│ 3303 │ 2241 │ constraint_303 │ ∅ │
│ 3303 │ 2241 │ constraint_303 │ ∅ │
│ 3304 │ 2240 │ constraint_305 │ ∅ │
│ 3304 │ 2240 │ constraint_305 │ ∅ │
│ 3304 │ 2240 │ constraint_305 │ ∅ │
│ 3331 │ 2239 │ constraint_304 │ ∅ │
│ 3331 │ 2239 │ constraint_304 │ ∅ │
│ 3331 │ 2239 │ constraint_304 │ ∅ │
│ 3332 │ 2240 │ constraint_305 │ ∅ │
│ 3332 │ 2240 │ constraint_305 │ ∅ │
│ 3332 │ 2240 │ constraint_305 │ ∅ │
│ 3333 │ 2241 │ constraint_303 │ ∅ │
│ 3333 │ 2241 │ constraint_303 │ ∅ │
│ 3333 │ 2241 │ constraint_303 │ ∅ │
│ 3371 │ 2240 │ constraint_305 │ ∅ │
│ 3371 │ 2240 │ constraint_305 │ ∅ │
│ 3371 │ 2240 │ constraint_305 │ ∅ │
│ 3372 │ 2241 │ constraint_303 │ ∅ │
│ 3372 │ 2241 │ constraint_303 │ ∅ │
│ 3372 │ 2241 │ constraint_303 │ ∅ │
│ 3373 │ 2239 │ constraint_304 │ ∅ │
│ 3373 │ 2239 │ constraint_304 │ ∅ │
│ 3373 │ 2239 │ constraint_304 │ ∅ │
│ 3413 │ 2241 │ constraint_303 │ ∅ │
│ 3413 │ 2241 │ constraint_303 │ ∅ │
│ 3413 │ 2241 │ constraint_303 │ ∅ │
│ 3414 │ 2240 │ constraint_305 │ ∅ │
│ 3414 │ 2240 │ constraint_305 │ ∅ │
│ 3414 │ 2240 │ constraint_305 │ ∅ │
│ 3415 │ 2239 │ constraint_304 │ ∅ │
│ 3415 │ 2239 │ constraint_304 │ ∅ │
│ 3415 │ 2239 │ constraint_304 │ ∅ │
│ 3419 │ 2239 │ constraint_304 │ ∅ │
│ 3419 │ 2239 │ constraint_304 │ ∅ │
│ 3419 │ 2239 │ constraint_304 │ ∅ │
│ 3420 │ 2241 │ constraint_303 │ ∅ │
│ 3420 │ 2241 │ constraint_303 │ ∅ │
│ 3420 │ 2241 │ constraint_303 │ ∅ │
│ 3421 │ 2240 │ constraint_305 │ ∅ │
│ 3421 │ 2240 │ constraint_305 │ ∅ │
│ 3421 │ 2240 │ constraint_305 │ ∅ │
│ 3444 │ 2240 │ constraint_305 │ ∅ │
│ 3444 │ 2240 │ constraint_305 │ ∅ │
│ 3444 │ 2240 │ constraint_305 │ ∅ │
│ 3445 │ 2241 │ constraint_303 │ ∅ │
│ 3445 │ 2241 │ constraint_303 │ ∅ │
│ 3445 │ 2241 │ constraint_303 │ ∅ │
│ 3446 │ 2239 │ constraint_304 │ ∅ │
│ 3446 │ 2239 │ constraint_304 │ ∅ │
│ 3446 │ 2239 │ constraint_304 │ ∅ │
│ 3452 │ 2240 │ constraint_305 │ ∅ │
│ 3452 │ 2240 │ constraint_305 │ ∅ │
│ 3452 │ 2240 │ constraint_305 │ ∅ │
│ 3453 │ 2241 │ constraint_303 │ ∅ │
│ 3453 │ 2241 │ constraint_303 │ ∅ │
│ 3453 │ 2241 │ constraint_303 │ ∅ │
│ 3454 │ 2239 │ constraint_304 │ ∅ │
│ 3454 │ 2239 │ constraint_304 │ ∅ │
│ 3454 │ 2239 │ constraint_304 │ ∅ │
│ 3487 │ 2240 │ constraint_305 │ ∅ │
│ 3487 │ 2240 │ constraint_305 │ ∅ │
│ 3487 │ 2240 │ constraint_305 │ ∅ │
│ 1793 │ 2239 │ constraint_304 │ ∅ │
│ 1793 │ 2239 │ constraint_304 │ ∅ │
│ 1793 │ 2239 │ constraint_304 │ ∅ │
│ 1794 │ 2240 │ constraint_305 │ ∅ │
│ 1794 │ 2240 │ constraint_305 │ ∅ │
│ 1794 │ 2240 │ constraint_305 │ ∅ │
│ 1795 │ 2241 │ constraint_303 │ ∅ │
│ 1795 │ 2241 │ constraint_303 │ ∅ │
│ 1795 │ 2241 │ constraint_303 │ ∅ │
│ 3488 │ 2241 │ constraint_303 │ ∅ │
│ 3488 │ 2241 │ constraint_303 │ ∅ │
│ 3488 │ 2241 │ constraint_303 │ ∅ │
│ 3489 │ 2239 │ constraint_304 │ ∅ │
│ 3489 │ 2239 │ constraint_304 │ ∅ │
│ 3489 │ 2239 │ constraint_304 │ ∅ │
│ 1868 │ 2240 │ constraint_305 │ ∅ │
│ 1868 │ 2240 │ constraint_305 │ ∅ │
│ 1868 │ 2240 │ constraint_305 │ ∅ │
│ 1869 │ 2241 │ constraint_303 │ ∅ │
│ 1869 │ 2241 │ constraint_303 │ ∅ │
│ 1869 │ 2241 │ constraint_303 │ ∅ │
│ 1870 │ 2239 │ constraint_304 │ ∅ │
│ 1870 │ 2239 │ constraint_304 │ ∅ │
│ 1870 │ 2239 │ constraint_304 │ ∅ │
│ 3513 │ 2241 │ constraint_303 │ ∅ │
│ 3513 │ 2241 │ constraint_303 │ ∅ │
│ 3513 │ 2241 │ constraint_303 │ ∅ │
│ 3514 │ 2239 │ constraint_304 │ ∅ │
│ 3514 │ 2239 │ constraint_304 │ ∅ │
│ 3514 │ 2239 │ constraint_304 │ ∅ │
│ 3515 │ 2240 │ constraint_305 │ ∅ │
│ 3515 │ 2240 │ constraint_305 │ ∅ │
│ 3515 │ 2240 │ constraint_305 │ ∅ │
│ 1921 │ 2239 │ constraint_304 │ ∅ │
│ 1921 │ 2239 │ constraint_304 │ ∅ │
│ 1921 │ 2239 │ constraint_304 │ ∅ │
│ 1922 │ 2240 │ constraint_305 │ ∅ │
│ 1922 │ 2240 │ constraint_305 │ ∅ │
│ 1922 │ 2240 │ constraint_305 │ ∅ │
│ 1923 │ 2241 │ constraint_303 │ ∅ │
│ 1923 │ 2241 │ constraint_303 │ ∅ │
│ 1923 │ 2241 │ constraint_303 │ ∅ │
│ 1978 │ 2239 │ constraint_304 │ ∅ │
│ 1978 │ 2239 │ constraint_304 │ ∅ │
│ 1978 │ 2239 │ constraint_304 │ ∅ │
│ 1979 │ 2240 │ constraint_305 │ ∅ │
│ 1979 │ 2240 │ constraint_305 │ ∅ │
│ 1979 │ 2240 │ constraint_305 │ ∅ │
│ 1980 │ 2241 │ constraint_303 │ ∅ │
│ 1980 │ 2241 │ constraint_303 │ ∅ │
│ 1980 │ 2241 │ constraint_303 │ ∅ │
│ 2022 │ 2239 │ constraint_304 │ ∅ │
│ 2022 │ 2239 │ constraint_304 │ ∅ │
│ 2022 │ 2239 │ constraint_304 │ ∅ │
│ 2023 │ 2241 │ constraint_303 │ ∅ │
│ 2023 │ 2241 │ constraint_303 │ ∅ │
│ 2023 │ 2241 │ constraint_303 │ ∅ │
│ 2024 │ 2240 │ constraint_305 │ ∅ │
│ 2024 │ 2240 │ constraint_305 │ ∅ │
│ 2024 │ 2240 │ constraint_305 │ ∅ │
│ 2049 │ 2240 │ constraint_305 │ ∅ │
│ 2049 │ 2240 │ constraint_305 │ ∅ │
│ 2049 │ 2240 │ constraint_305 │ ∅ │
│ 2050 │ 2241 │ constraint_303 │ ∅ │
│ 2050 │ 2241 │ constraint_303 │ ∅ │
│ 2050 │ 2241 │ constraint_303 │ ∅ │
│ 2051 │ 2239 │ constraint_304 │ ∅ │
│ 2051 │ 2239 │ constraint_304 │ ∅ │
│ 2051 │ 2239 │ constraint_304 │ ∅ │
│ 2074 │ 2240 │ constraint_305 │ ∅ │
│ 2074 │ 2240 │ constraint_305 │ ∅ │
│ 2074 │ 2240 │ constraint_305 │ ∅ │
│ 2075 │ 2241 │ constraint_303 │ ∅ │
│ 2075 │ 2241 │ constraint_303 │ ∅ │
│ 2075 │ 2241 │ constraint_303 │ ∅ │
│ 2076 │ 2239 │ constraint_304 │ ∅ │
│ 2076 │ 2239 │ constraint_304 │ ∅ │
│ 2076 │ 2239 │ constraint_304 │ ∅ │
│ 2077 │ 2239 │ constraint_304 │ ∅ │
│ 2077 │ 2239 │ constraint_304 │ ∅ │
│ 2077 │ 2239 │ constraint_304 │ ∅ │
│ 2078 │ 2241 │ constraint_303 │ ∅ │
│ 2078 │ 2241 │ constraint_303 │ ∅ │
│ 2078 │ 2241 │ constraint_303 │ ∅ │
│ 2229 │ 2240 │ constraint_305 │ ∅ │
│ 2229 │ 2240 │ constraint_305 │ ∅ │
│ 2229 │ 2240 │ constraint_305 │ ∅ │
│ 2079 │ 2240 │ constraint_305 │ ∅ │
│ 2079 │ 2240 │ constraint_305 │ ∅ │
│ 2079 │ 2240 │ constraint_305 │ ∅ │
│ 2084 │ 2239 │ constraint_304 │ ∅ │
│ 2084 │ 2239 │ constraint_304 │ ∅ │
│ 2084 │ 2239 │ constraint_304 │ ∅ │
│ 2085 │ 2241 │ constraint_303 │ ∅ │
│ 2085 │ 2241 │ constraint_303 │ ∅ │
│ 2085 │ 2241 │ constraint_303 │ ∅ │
│ 2086 │ 2240 │ constraint_305 │ ∅ │
│ 2086 │ 2240 │ constraint_305 │ ∅ │
│ 2086 │ 2240 │ constraint_305 │ ∅ │
│ 2192 │ 2240 │ constraint_305 │ ∅ │
│ 2192 │ 2240 │ constraint_305 │ ∅ │
│ 2192 │ 2240 │ constraint_305 │ ∅ │
│ 2193 │ 2239 │ constraint_304 │ ∅ │
│ 2193 │ 2239 │ constraint_304 │ ∅ │
│ 2193 │ 2239 │ constraint_304 │ ∅ │
│ 2194 │ 2241 │ constraint_303 │ ∅ │
│ 2194 │ 2241 │ constraint_303 │ ∅ │
│ 2194 │ 2241 │ constraint_303 │ ∅ │
│ 2228 │ 2241 │ constraint_303 │ ∅ │
│ 2228 │ 2241 │ constraint_303 │ ∅ │
│ 2228 │ 2241 │ constraint_303 │ ∅ │
│ 2230 │ 2239 │ constraint_304 │ ∅ │
│ 2230 │ 2239 │ constraint_304 │ ∅ │
│ 2230 │ 2239 │ constraint_304 │ ∅ │
│ 2251 │ 2240 │ constraint_305 │ ∅ │
│ 2251 │ 2240 │ constraint_305 │ ∅ │
│ 2251 │ 2240 │ constraint_305 │ ∅ │
│ 2252 │ 2239 │ constraint_304 │ ∅ │
│ 2252 │ 2239 │ constraint_304 │ ∅ │
│ 2252 │ 2239 │ constraint_304 │ ∅ │
│ 2253 │ 2241 │ constraint_303 │ ∅ │
│ 2253 │ 2241 │ constraint_303 │ ∅ │
│ 2253 │ 2241 │ constraint_303 │ ∅ │
│ 2257 │ 2240 │ constraint_305 │ ∅ │
│ 2257 │ 2240 │ constraint_305 │ ∅ │
│ 2257 │ 2240 │ constraint_305 │ ∅ │
│ 2258 │ 2241 │ constraint_303 │ ∅ │
│ 2258 │ 2241 │ constraint_303 │ ∅ │
│ 2258 │ 2241 │ constraint_303 │ ∅ │
│ 2259 │ 2239 │ constraint_304 │ ∅ │
│ 2259 │ 2239 │ constraint_304 │ ∅ │
│ 2259 │ 2239 │ constraint_304 │ ∅ │
│ 2280 │ 2241 │ constraint_303 │ ∅ │
│ 2280 │ 2241 │ constraint_303 │ ∅ │
│ 2280 │ 2241 │ constraint_303 │ ∅ │
│ 2281 │ 2239 │ constraint_304 │ ∅ │
│ 2281 │ 2239 │ constraint_304 │ ∅ │
│ 2281 │ 2239 │ constraint_304 │ ∅ │
│ 2282 │ 2240 │ constraint_305 │ ∅ │
│ 2282 │ 2240 │ constraint_305 │ ∅ │
│ 2282 │ 2240 │ constraint_305 │ ∅ │
│ 2322 │ 2241 │ constraint_303 │ ∅ │
│ 2322 │ 2241 │ constraint_303 │ ∅ │
│ 2322 │ 2241 │ constraint_303 │ ∅ │
│ 2323 │ 2239 │ constraint_304 │ ∅ │
│ 2323 │ 2239 │ constraint_304 │ ∅ │
│ 2323 │ 2239 │ constraint_304 │ ∅ │
│ 2324 │ 2240 │ constraint_305 │ ∅ │
│ 2324 │ 2240 │ constraint_305 │ ∅ │
│ 2324 │ 2240 │ constraint_305 │ ∅ │
│ 2397 │ 2240 │ constraint_305 │ ∅ │
│ 2397 │ 2240 │ constraint_305 │ ∅ │
│ 2397 │ 2240 │ constraint_305 │ ∅ │
│ 2398 │ 2239 │ constraint_304 │ ∅ │
│ 2398 │ 2239 │ constraint_304 │ ∅ │
│ 2398 │ 2239 │ constraint_304 │ ∅ │
│ 2399 │ 2241 │ constraint_303 │ ∅ │
│ 2399 │ 2241 │ constraint_303 │ ∅ │
│ 2399 │ 2241 │ constraint_303 │ ∅ │
│ 2430 │ 2241 │ constraint_303 │ ∅ │
│ 2430 │ 2241 │ constraint_303 │ ∅ │
│ 2430 │ 2241 │ constraint_303 │ ∅ │
│ 2431 │ 2240 │ constraint_305 │ ∅ │
│ 2431 │ 2240 │ constraint_305 │ ∅ │
│ 2431 │ 2240 │ constraint_305 │ ∅ │
│ 2432 │ 2239 │ constraint_304 │ ∅ │
│ 2432 │ 2239 │ constraint_304 │ ∅ │
│ 2432 │ 2239 │ constraint_304 │ ∅ │
│ 2459 │ 2240 │ constraint_305 │ ∅ │
│ 2459 │ 2240 │ constraint_305 │ ∅ │
│ 2459 │ 2240 │ constraint_305 │ ∅ │
│ 2460 │ 2239 │ constraint_304 │ ∅ │
│ 2460 │ 2239 │ constraint_304 │ ∅ │
│ 2460 │ 2239 │ constraint_304 │ ∅ │
│ 2461 │ 2241 │ constraint_303 │ ∅ │
│ 2461 │ 2241 │ constraint_303 │ ∅ │
│ 2461 │ 2241 │ constraint_303 │ ∅ │
│ 2465 │ 2240 │ constraint_305 │ ∅ │
│ 2465 │ 2240 │ constraint_305 │ ∅ │
│ 2465 │ 2240 │ constraint_305 │ ∅ │
│ 2466 │ 2241 │ constraint_303 │ ∅ │
│ 2466 │ 2241 │ constraint_303 │ ∅ │
│ 2466 │ 2241 │ constraint_303 │ ∅ │
│ 2467 │ 2239 │ constraint_304 │ ∅ │
│ 2467 │ 2239 │ constraint_304 │ ∅ │
│ 2467 │ 2239 │ constraint_304 │ ∅ │
│ 2488 │ 2240 │ constraint_305 │ ∅ │
│ 2488 │ 2240 │ constraint_305 │ ∅ │
│ 2488 │ 2240 │ constraint_305 │ ∅ │
│ 2489 │ 2239 │ constraint_304 │ ∅ │
│ 2489 │ 2239 │ constraint_304 │ ∅ │
│ 2489 │ 2239 │ constraint_304 │ ∅ │
│ 2490 │ 2241 │ constraint_303 │ ∅ │
│ 2490 │ 2241 │ constraint_303 │ ∅ │
│ 2490 │ 2241 │ constraint_303 │ ∅ │
│ 2494 │ 2239 │ constraint_304 │ ∅ │
│ 2494 │ 2239 │ constraint_304 │ ∅ │
│ 2494 │ 2239 │ constraint_304 │ ∅ │
│ 2495 │ 2241 │ constraint_303 │ ∅ │
│ 2495 │ 2241 │ constraint_303 │ ∅ │
│ 2495 │ 2241 │ constraint_303 │ ∅ │
│ 2496 │ 2240 │ constraint_305 │ ∅ │
│ 2496 │ 2240 │ constraint_305 │ ∅ │
│ 2496 │ 2240 │ constraint_305 │ ∅ │
│ 2518 │ 2241 │ constraint_303 │ ∅ │
│ 2518 │ 2241 │ constraint_303 │ ∅ │
│ 2518 │ 2241 │ constraint_303 │ ∅ │
│ 2519 │ 2240 │ constraint_305 │ ∅ │
│ 2519 │ 2240 │ constraint_305 │ ∅ │
│ 2519 │ 2240 │ constraint_305 │ ∅ │
│ 2520 │ 2239 │ constraint_304 │ ∅ │
│ 2520 │ 2239 │ constraint_304 │ ∅ │
│ 2520 │ 2239 │ constraint_304 │ ∅ │
│ 2576 │ 2241 │ constraint_303 │ ∅ │
│ 2576 │ 2241 │ constraint_303 │ ∅ │
│ 2576 │ 2241 │ constraint_303 │ ∅ │
│ 2577 │ 2240 │ constraint_305 │ ∅ │
│ 2577 │ 2240 │ constraint_305 │ ∅ │
│ 2577 │ 2240 │ constraint_305 │ ∅ │
│ 2578 │ 2239 │ constraint_304 │ ∅ │
│ 2578 │ 2239 │ constraint_304 │ ∅ │
│ 2578 │ 2239 │ constraint_304 │ ∅ │
│ 2628 │ 2240 │ constraint_305 │ ∅ │
│ 2628 │ 2240 │ constraint_305 │ ∅ │
│ 2628 │ 2240 │ constraint_305 │ ∅ │
│ 2629 │ 2241 │ constraint_303 │ ∅ │
│ 2629 │ 2241 │ constraint_303 │ ∅ │
│ 2629 │ 2241 │ constraint_303 │ ∅ │
│ 2630 │ 2239 │ constraint_304 │ ∅ │
│ 2630 │ 2239 │ constraint_304 │ ∅ │
│ 2630 │ 2239 │ constraint_304 │ ∅ │
│ 2757 │ 2240 │ constraint_305 │ ∅ │
│ 2757 │ 2240 │ constraint_305 │ ∅ │
│ 2757 │ 2240 │ constraint_305 │ ∅ │
│ 2758 │ 2239 │ constraint_304 │ ∅ │
│ 2758 │ 2239 │ constraint_304 │ ∅ │
│ 2758 │ 2239 │ constraint_304 │ ∅ │
│ 2759 │ 2241 │ constraint_303 │ ∅ │
│ 2759 │ 2241 │ constraint_303 │ ∅ │
│ 2759 │ 2241 │ constraint_303 │ ∅ │
│ 2780 │ 2240 │ constraint_305 │ ∅ │
│ 2780 │ 2240 │ constraint_305 │ ∅ │
│ 2780 │ 2240 │ constraint_305 │ ∅ │
│ 2781 │ 2239 │ constraint_304 │ ∅ │
│ 2781 │ 2239 │ constraint_304 │ ∅ │
│ 2781 │ 2239 │ constraint_304 │ ∅ │
│ 2782 │ 2241 │ constraint_303 │ ∅ │
│ 2782 │ 2241 │ constraint_303 │ ∅ │
│ 2782 │ 2241 │ constraint_303 │ ∅ │
│ 2786 │ 2240 │ constraint_305 │ ∅ │
│ 2786 │ 2240 │ constraint_305 │ ∅ │
│ 2786 │ 2240 │ constraint_305 │ ∅ │
│ 2787 │ 2241 │ constraint_303 │ ∅ │
│ 2787 │ 2241 │ constraint_303 │ ∅ │
│ 2787 │ 2241 │ constraint_303 │ ∅ │
│ 2788 │ 2239 │ constraint_304 │ ∅ │
│ 2788 │ 2239 │ constraint_304 │ ∅ │
│ 2788 │ 2239 │ constraint_304 │ ∅ │
│ 2840 │ 2241 │ constraint_303 │ ∅ │
│ 2840 │ 2241 │ constraint_303 │ ∅ │
│ 2840 │ 2241 │ constraint_303 │ ∅ │
│ 2841 │ 2239 │ constraint_304 │ ∅ │
│ 2841 │ 2239 │ constraint_304 │ ∅ │
│ 2841 │ 2239 │ constraint_304 │ ∅ │
│ 2842 │ 2240 │ constraint_305 │ ∅ │
│ 2842 │ 2240 │ constraint_305 │ ∅ │
│ 2842 │ 2240 │ constraint_305 │ ∅ │
│ 2912 │ 2241 │ constraint_303 │ ∅ │
│ 2912 │ 2241 │ constraint_303 │ ∅ │
│ 2912 │ 2241 │ constraint_303 │ ∅ │
│ 2913 │ 2240 │ constraint_305 │ ∅ │
│ 2913 │ 2240 │ constraint_305 │ ∅ │
│ 2913 │ 2240 │ constraint_305 │ ∅ │
│ 2914 │ 2239 │ constraint_304 │ ∅ │
│ 2914 │ 2239 │ constraint_304 │ ∅ │
│ 2914 │ 2239 │ constraint_304 │ ∅ │
│ 3016 │ 2241 │ constraint_303 │ ∅ │
│ 3016 │ 2241 │ constraint_303 │ ∅ │
│ 3016 │ 2241 │ constraint_303 │ ∅ │
│ 3017 │ 2240 │ constraint_305 │ ∅ │
│ 3017 │ 2240 │ constraint_305 │ ∅ │
│ 3017 │ 2240 │ constraint_305 │ ∅ │
│ 3018 │ 2239 │ constraint_304 │ ∅ │
│ 3018 │ 2239 │ constraint_304 │ ∅ │
│ 3018 │ 2239 │ constraint_304 │ ∅ │
│ 3021 │ 2239 │ constraint_304 │ ∅ │
│ 3021 │ 2239 │ constraint_304 │ ∅ │
│ 3021 │ 2239 │ constraint_304 │ ∅ │
│ 3022 │ 2241 │ constraint_303 │ ∅ │
│ 3022 │ 2241 │ constraint_303 │ ∅ │
│ 3022 │ 2241 │ constraint_303 │ ∅ │
│ 3056 │ 2241 │ constraint_303 │ ∅ │
│ 3056 │ 2241 │ constraint_303 │ ∅ │
│ 3056 │ 2241 │ constraint_303 │ ∅ │
│ 3023 │ 2240 │ constraint_305 │ ∅ │
│ 3023 │ 2240 │ constraint_305 │ ∅ │
│ 3023 │ 2240 │ constraint_305 │ ∅ │
│ 3050 │ 2239 │ constraint_304 │ ∅ │
│ 3050 │ 2239 │ constraint_304 │ ∅ │
│ 3050 │ 2239 │ constraint_304 │ ∅ │
│ 3051 │ 2240 │ constraint_305 │ ∅ │
│ 3051 │ 2240 │ constraint_305 │ ∅ │
│ 3051 │ 2240 │ constraint_305 │ ∅ │
│ 3052 │ 2241 │ constraint_303 │ ∅ │
│ 3052 │ 2241 │ constraint_303 │ ∅ │
│ 3052 │ 2241 │ constraint_303 │ ∅ │
│ 3057 │ 2240 │ constraint_305 │ ∅ │
│ 3057 │ 2240 │ constraint_305 │ ∅ │
│ 3057 │ 2240 │ constraint_305 │ ∅ │
│ 3058 │ 2239 │ constraint_304 │ ∅ │
│ 3058 │ 2239 │ constraint_304 │ ∅ │
│ 3058 │ 2239 │ constraint_304 │ ∅ │
│ 3111 │ 2241 │ constraint_303 │ ∅ │
│ 3111 │ 2241 │ constraint_303 │ ∅ │
│ 3111 │ 2241 │ constraint_303 │ ∅ │
│ 3112 │ 2240 │ constraint_305 │ ∅ │
│ 3112 │ 2240 │ constraint_305 │ ∅ │
│ 3112 │ 2240 │ constraint_305 │ ∅ │
│ 3113 │ 2239 │ constraint_304 │ ∅ │
│ 3113 │ 2239 │ constraint_304 │ ∅ │
│ 3113 │ 2239 │ constraint_304 │ ∅ │
└──────────┴────────────────────┴─────────────────┴────────────────────────────┘
(639 rows)
I see a problem in the second query, I have made a minor tweak. Can we give this a try?
WITH dimension_count as (
SELECT ht.id, count(*)
FROM _timescaledb_catalog.hypertable ht
INNER JOIN _timescaledb_catalog.dimension d
ON d.hypertable_id = ht.id
WHERE table_name = 'clicks'
GROUP BY 1),
chunk_constraint_count AS (
SELECT c.hypertable_id, cc.chunk_id, c.schema_name, c.table_name, count(*)
FROM _timescaledb_catalog.chunk_constraint cc
INNER JOIN _timescaledb_catalog.chunk c
ON cc.chunk_id = c.id
GROUP BY 1, 2,3 ,4
)
SELECT ccc.chunk_id, tcc.dimension_slice_id, cc.constraint_name, null as hypertable_constraint_name
FROM information_schema.table_constraints tc
INNER JOIN chunk_constraint_count ccc
ON ccc.schema_name = tc.table_schema
and ccc.table_name = tc.table_name
INNER JOIN dimension_count dc
ON dc.id = ccc.hypertable_id
INNER JOIN information_schema.check_constraints cc
ON tc.constraint_name = cc.constraint_name
INNER JOIN information_schema.check_constraints jcc
ON cc.check_clause = jcc.check_clause
AND jcc.constraint_name != cc.constraint_name
AND EXISTS (
SELECT FROM _timescaledb_catalog.chunk_constraint
WHERE chunk_constraint.constraint_name = jcc.constraint_name
)
left JOIN lateral (
SELECT dimension_slice_id FROM _timescaledb_catalog.chunk_constraint
WHERE chunk_constraint.constraint_name = jcc.constraint_name
limit 1
) as tcc ON true
WHERE dc.count != ccc.count
and tc.constraint_name like 'constraint%'
and NOT EXISTS (
SELECT FROM _timescaledb_catalog.chunk_constraint
WHERE chunk_constraint.constraint_name = tc.constraint_name
AND chunk_constraint.chunk_id = ccc.chunk_id
AND chunk_constraint.hypertable_constraint_name IS NULL
);
┌──────────┬────────────────────┬─────────────────┬────────────────────────────┐
│ chunk_id │ dimension_slice_id │ constraint_name │ hypertable_constraint_name │
├──────────┼────────────────────┼─────────────────┼────────────────────────────┤
│ 3786 │ 2240 │ constraint_305 │ ∅ │
│ 3787 │ 2241 │ constraint_303 │ ∅ │
│ 3788 │ 2239 │ constraint_304 │ ∅ │
│ 3535 │ 2240 │ constraint_305 │ ∅ │
│ 3127 │ 2239 │ constraint_304 │ ∅ │
│ 3536 │ 2241 │ constraint_303 │ ∅ │
│ 3537 │ 2239 │ constraint_304 │ ∅ │
│ 3542 │ 2239 │ constraint_304 │ ∅ │
│ 3543 │ 2241 │ constraint_303 │ ∅ │
│ 3544 │ 2240 │ constraint_305 │ ∅ │
│ 3613 │ 2241 │ constraint_303 │ ∅ │
│ 3614 │ 2239 │ constraint_304 │ ∅ │
│ 3568 │ 2240 │ constraint_305 │ ∅ │
│ 3569 │ 2239 │ constraint_304 │ ∅ │
│ 3570 │ 2241 │ constraint_303 │ ∅ │
│ 3809 │ 2241 │ constraint_303 │ ∅ │
│ 3810 │ 2240 │ constraint_305 │ ∅ │
│ 3843 │ 2239 │ constraint_304 │ ∅ │
│ 3615 │ 2240 │ constraint_305 │ ∅ │
│ 3844 │ 2240 │ constraint_305 │ ∅ │
│ 3811 │ 2239 │ constraint_304 │ ∅ │
│ 3845 │ 2241 │ constraint_303 │ ∅ │
│ 3672 │ 2241 │ constraint_303 │ ∅ │
│ 3673 │ 2240 │ constraint_305 │ ∅ │
│ 3674 │ 2239 │ constraint_304 │ ∅ │
│ 3635 │ 2240 │ constraint_305 │ ∅ │
│ 3636 │ 2241 │ constraint_303 │ ∅ │
│ 3637 │ 2239 │ constraint_304 │ ∅ │
│ 3910 │ 2240 │ constraint_305 │ ∅ │
│ 3734 │ 2241 │ constraint_303 │ ∅ │
│ 3735 │ 2240 │ constraint_305 │ ∅ │
│ 3736 │ 2239 │ constraint_304 │ ∅ │
│ 3740 │ 2241 │ constraint_303 │ ∅ │
│ 3741 │ 2240 │ constraint_305 │ ∅ │
│ 3742 │ 2239 │ constraint_304 │ ∅ │
│ 3911 │ 2241 │ constraint_303 │ ∅ │
│ 3912 │ 2239 │ constraint_304 │ ∅ │
│ 3946 │ 2241 │ constraint_303 │ ∅ │
│ 3947 │ 2239 │ constraint_304 │ ∅ │
│ 3948 │ 2240 │ constraint_305 │ ∅ │
│ 3760 │ 2239 │ constraint_304 │ ∅ │
│ 3761 │ 2241 │ constraint_303 │ ∅ │
│ 3762 │ 2240 │ constraint_305 │ ∅ │
│ 3969 │ 2240 │ constraint_305 │ ∅ │
│ 3970 │ 2241 │ constraint_303 │ ∅ │
│ 3971 │ 2239 │ constraint_304 │ ∅ │
│ 3975 │ 2239 │ constraint_304 │ ∅ │
│ 3976 │ 2241 │ constraint_303 │ ∅ │
│ 3977 │ 2240 │ constraint_305 │ ∅ │
│ 4097 │ 2240 │ constraint_305 │ ∅ │
│ 4098 │ 2239 │ constraint_304 │ ∅ │
│ 4099 │ 2241 │ constraint_303 │ ∅ │
│ 4103 │ 2240 │ constraint_305 │ ∅ │
│ 4104 │ 2241 │ constraint_303 │ ∅ │
│ 4105 │ 2239 │ constraint_304 │ ∅ │
│ 4158 │ 2241 │ constraint_303 │ ∅ │
│ 4159 │ 2239 │ constraint_304 │ ∅ │
│ 4160 │ 2240 │ constraint_305 │ ∅ │
│ 4181 │ 2239 │ constraint_304 │ ∅ │
│ 4182 │ 2240 │ constraint_305 │ ∅ │
│ 4183 │ 2241 │ constraint_303 │ ∅ │
│ 3128 │ 2240 │ constraint_305 │ ∅ │
│ 4221 │ 2239 │ constraint_304 │ ∅ │
│ 4227 │ 2241 │ constraint_303 │ ∅ │
│ 4222 │ 2240 │ constraint_305 │ ∅ │
│ 4223 │ 2241 │ constraint_303 │ ∅ │
│ 4228 │ 2239 │ constraint_304 │ ∅ │
│ 4229 │ 2240 │ constraint_305 │ ∅ │
│ 3129 │ 2241 │ constraint_303 │ ∅ │
│ 3209 │ 2241 │ constraint_303 │ ∅ │
│ 3210 │ 2240 │ constraint_305 │ ∅ │
│ 3211 │ 2239 │ constraint_304 │ ∅ │
│ 3215 │ 2240 │ constraint_305 │ ∅ │
│ 3216 │ 2241 │ constraint_303 │ ∅ │
│ 3217 │ 2239 │ constraint_304 │ ∅ │
│ 3238 │ 2240 │ constraint_305 │ ∅ │
│ 3239 │ 2241 │ constraint_303 │ ∅ │
│ 3240 │ 2239 │ constraint_304 │ ∅ │
│ 3277 │ 2239 │ constraint_304 │ ∅ │
│ 3278 │ 2240 │ constraint_305 │ ∅ │
│ 3279 │ 2241 │ constraint_303 │ ∅ │
│ 3299 │ 2241 │ constraint_303 │ ∅ │
│ 3300 │ 2240 │ constraint_305 │ ∅ │
│ 3301 │ 2239 │ constraint_304 │ ∅ │
│ 3302 │ 2239 │ constraint_304 │ ∅ │
│ 3303 │ 2241 │ constraint_303 │ ∅ │
│ 3304 │ 2240 │ constraint_305 │ ∅ │
│ 3331 │ 2239 │ constraint_304 │ ∅ │
│ 3332 │ 2240 │ constraint_305 │ ∅ │
│ 3333 │ 2241 │ constraint_303 │ ∅ │
│ 3371 │ 2240 │ constraint_305 │ ∅ │
│ 3372 │ 2241 │ constraint_303 │ ∅ │
│ 3373 │ 2239 │ constraint_304 │ ∅ │
│ 3413 │ 2241 │ constraint_303 │ ∅ │
│ 3414 │ 2240 │ constraint_305 │ ∅ │
│ 3415 │ 2239 │ constraint_304 │ ∅ │
│ 3419 │ 2239 │ constraint_304 │ ∅ │
│ 3420 │ 2241 │ constraint_303 │ ∅ │
│ 3421 │ 2240 │ constraint_305 │ ∅ │
│ 3444 │ 2240 │ constraint_305 │ ∅ │
│ 3445 │ 2241 │ constraint_303 │ ∅ │
│ 3446 │ 2239 │ constraint_304 │ ∅ │
│ 3452 │ 2240 │ constraint_305 │ ∅ │
│ 3453 │ 2241 │ constraint_303 │ ∅ │
│ 3454 │ 2239 │ constraint_304 │ ∅ │
│ 3487 │ 2240 │ constraint_305 │ ∅ │
│ 1793 │ 2239 │ constraint_304 │ ∅ │
│ 1794 │ 2240 │ constraint_305 │ ∅ │
│ 1795 │ 2241 │ constraint_303 │ ∅ │
│ 3488 │ 2241 │ constraint_303 │ ∅ │
│ 3489 │ 2239 │ constraint_304 │ ∅ │
│ 1868 │ 2240 │ constraint_305 │ ∅ │
│ 1869 │ 2241 │ constraint_303 │ ∅ │
│ 1870 │ 2239 │ constraint_304 │ ∅ │
│ 3513 │ 2241 │ constraint_303 │ ∅ │
│ 3514 │ 2239 │ constraint_304 │ ∅ │
│ 3515 │ 2240 │ constraint_305 │ ∅ │
│ 1921 │ 2239 │ constraint_304 │ ∅ │
│ 1922 │ 2240 │ constraint_305 │ ∅ │
│ 1923 │ 2241 │ constraint_303 │ ∅ │
│ 1978 │ 2239 │ constraint_304 │ ∅ │
│ 1979 │ 2240 │ constraint_305 │ ∅ │
│ 1980 │ 2241 │ constraint_303 │ ∅ │
│ 2022 │ 2239 │ constraint_304 │ ∅ │
│ 2023 │ 2241 │ constraint_303 │ ∅ │
│ 2024 │ 2240 │ constraint_305 │ ∅ │
│ 2049 │ 2240 │ constraint_305 │ ∅ │
│ 2050 │ 2241 │ constraint_303 │ ∅ │
│ 2051 │ 2239 │ constraint_304 │ ∅ │
│ 2074 │ 2240 │ constraint_305 │ ∅ │
│ 2075 │ 2241 │ constraint_303 │ ∅ │
│ 2076 │ 2239 │ constraint_304 │ ∅ │
│ 2077 │ 2239 │ constraint_304 │ ∅ │
│ 2078 │ 2241 │ constraint_303 │ ∅ │
│ 2229 │ 2240 │ constraint_305 │ ∅ │
│ 2079 │ 2240 │ constraint_305 │ ∅ │
│ 2084 │ 2239 │ constraint_304 │ ∅ │
│ 2085 │ 2241 │ constraint_303 │ ∅ │
│ 2086 │ 2240 │ constraint_305 │ ∅ │
│ 2192 │ 2240 │ constraint_305 │ ∅ │
│ 2193 │ 2239 │ constraint_304 │ ∅ │
│ 2194 │ 2241 │ constraint_303 │ ∅ │
│ 2228 │ 2241 │ constraint_303 │ ∅ │
│ 2230 │ 2239 │ constraint_304 │ ∅ │
│ 2251 │ 2240 │ constraint_305 │ ∅ │
│ 2252 │ 2239 │ constraint_304 │ ∅ │
│ 2253 │ 2241 │ constraint_303 │ ∅ │
│ 2257 │ 2240 │ constraint_305 │ ∅ │
│ 2258 │ 2241 │ constraint_303 │ ∅ │
│ 2259 │ 2239 │ constraint_304 │ ∅ │
│ 2280 │ 2241 │ constraint_303 │ ∅ │
│ 2281 │ 2239 │ constraint_304 │ ∅ │
│ 2282 │ 2240 │ constraint_305 │ ∅ │
│ 2322 │ 2241 │ constraint_303 │ ∅ │
│ 2323 │ 2239 │ constraint_304 │ ∅ │
│ 2324 │ 2240 │ constraint_305 │ ∅ │
│ 2397 │ 2240 │ constraint_305 │ ∅ │
│ 2398 │ 2239 │ constraint_304 │ ∅ │
│ 2399 │ 2241 │ constraint_303 │ ∅ │
│ 2430 │ 2241 │ constraint_303 │ ∅ │
│ 2431 │ 2240 │ constraint_305 │ ∅ │
│ 2432 │ 2239 │ constraint_304 │ ∅ │
│ 2459 │ 2240 │ constraint_305 │ ∅ │
│ 2460 │ 2239 │ constraint_304 │ ∅ │
│ 2461 │ 2241 │ constraint_303 │ ∅ │
│ 2465 │ 2240 │ constraint_305 │ ∅ │
│ 2466 │ 2241 │ constraint_303 │ ∅ │
│ 2467 │ 2239 │ constraint_304 │ ∅ │
│ 2488 │ 2240 │ constraint_305 │ ∅ │
│ 2489 │ 2239 │ constraint_304 │ ∅ │
│ 2490 │ 2241 │ constraint_303 │ ∅ │
│ 2494 │ 2239 │ constraint_304 │ ∅ │
│ 2495 │ 2241 │ constraint_303 │ ∅ │
│ 2496 │ 2240 │ constraint_305 │ ∅ │
│ 2518 │ 2241 │ constraint_303 │ ∅ │
│ 2519 │ 2240 │ constraint_305 │ ∅ │
│ 2520 │ 2239 │ constraint_304 │ ∅ │
│ 2576 │ 2241 │ constraint_303 │ ∅ │
│ 2577 │ 2240 │ constraint_305 │ ∅ │
│ 2578 │ 2239 │ constraint_304 │ ∅ │
│ 2628 │ 2240 │ constraint_305 │ ∅ │
│ 2629 │ 2241 │ constraint_303 │ ∅ │
│ 2630 │ 2239 │ constraint_304 │ ∅ │
│ 2757 │ 2240 │ constraint_305 │ ∅ │
│ 2758 │ 2239 │ constraint_304 │ ∅ │
│ 2759 │ 2241 │ constraint_303 │ ∅ │
│ 2780 │ 2240 │ constraint_305 │ ∅ │
│ 2781 │ 2239 │ constraint_304 │ ∅ │
│ 2782 │ 2241 │ constraint_303 │ ∅ │
│ 2786 │ 2240 │ constraint_305 │ ∅ │
│ 2787 │ 2241 │ constraint_303 │ ∅ │
│ 2788 │ 2239 │ constraint_304 │ ∅ │
│ 2840 │ 2241 │ constraint_303 │ ∅ │
│ 2841 │ 2239 │ constraint_304 │ ∅ │
│ 2842 │ 2240 │ constraint_305 │ ∅ │
│ 2912 │ 2241 │ constraint_303 │ ∅ │
│ 2913 │ 2240 │ constraint_305 │ ∅ │
│ 2914 │ 2239 │ constraint_304 │ ∅ │
│ 3016 │ 2241 │ constraint_303 │ ∅ │
│ 3017 │ 2240 │ constraint_305 │ ∅ │
│ 3018 │ 2239 │ constraint_304 │ ∅ │
│ 3021 │ 2239 │ constraint_304 │ ∅ │
│ 3022 │ 2241 │ constraint_303 │ ∅ │
│ 3056 │ 2241 │ constraint_303 │ ∅ │
│ 3023 │ 2240 │ constraint_305 │ ∅ │
│ 3050 │ 2239 │ constraint_304 │ ∅ │
│ 3051 │ 2240 │ constraint_305 │ ∅ │
│ 3052 │ 2241 │ constraint_303 │ ∅ │
│ 3057 │ 2240 │ constraint_305 │ ∅ │
│ 3058 │ 2239 │ constraint_304 │ ∅ │
│ 3111 │ 2241 │ constraint_303 │ ∅ │
│ 3112 │ 2240 │ constraint_305 │ ∅ │
│ 3113 │ 2239 │ constraint_304 │ ∅ │
└──────────┴────────────────────┴─────────────────┴────────────────────────────┘
(213 rows)
So it seems like we have a winner. That query should restore your corrupt catalog. You can attempt to fix it by running the following query.
BE ADVISED: keeping a fresh backup of the database would be ideal so you can revert back to it if the catalog is still corrupt after the attempted fix.
With that said, here is the query which should insert 213 catalog tuples exactly:
WITH dimension_count as (
SELECT ht.id, count(*)
FROM _timescaledb_catalog.hypertable ht
INNER JOIN _timescaledb_catalog.dimension d
ON d.hypertable_id = ht.id
WHERE table_name = 'clicks'
GROUP BY 1),
chunk_constraint_count AS (
SELECT c.hypertable_id, cc.chunk_id, c.schema_name, c.table_name, count(*)
FROM _timescaledb_catalog.chunk_constraint cc
INNER JOIN _timescaledb_catalog.chunk c
ON cc.chunk_id = c.id
GROUP BY 1, 2,3 ,4
)
INSERT INTO _timescaledb_catalog.chunk_constraint
SELECT ccc.chunk_id, tcc.dimension_slice_id, cc.constraint_name, null as hypertable_constraint_name
FROM information_schema.table_constraints tc
INNER JOIN chunk_constraint_count ccc
ON ccc.schema_name = tc.table_schema
and ccc.table_name = tc.table_name
INNER JOIN dimension_count dc
ON dc.id = ccc.hypertable_id
INNER JOIN information_schema.check_constraints cc
ON tc.constraint_name = cc.constraint_name
INNER JOIN information_schema.check_constraints jcc
ON cc.check_clause = jcc.check_clause
AND jcc.constraint_name != cc.constraint_name
AND EXISTS (
SELECT FROM _timescaledb_catalog.chunk_constraint
WHERE chunk_constraint.constraint_name = jcc.constraint_name
)
left JOIN lateral (
SELECT dimension_slice_id FROM _timescaledb_catalog.chunk_constraint
WHERE chunk_constraint.constraint_name = jcc.constraint_name
limit 1
) as tcc ON true
WHERE dc.count != ccc.count
and tc.constraint_name like 'constraint%'
and NOT EXISTS (
SELECT FROM _timescaledb_catalog.chunk_constraint
WHERE chunk_constraint.constraint_name = tc.constraint_name
AND chunk_constraint.chunk_id = ccc.chunk_id
AND chunk_constraint.hypertable_constraint_name IS NULL
);
Please let me know does it help.
Thanks!
What type of bug is this?
Incorrect result
What subsystems and features are affected?
Query planner
What happened?
After upgrade timescaledb 2.14 => 2.15.1 it recreated chunks for partitioned table and does not use old chunks if I run a query with filter by partitioned column.
Example:
Table structure:
List of latest chunks:
Dimensions:
TimescaleDB version affected
2.15.1
PostgreSQL version used
14.12
What operating system did you use?
(Ubuntu 14.12-1.pgdg22.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0, 64-bit
What installation method did you use?
Docker
What platform did you run on?
On prem/Self-hosted
Relevant log output and stack trace
How can we reproduce the bug?