mirror of
https://github.com/timescale/timescaledb.git
synced 2025-05-21 05:04:32 +08:00
Merged in mat/fix-simultaneous-chunk-creation-bug (pull request #138)
Fix bug with simultaneous chunk creation. Approved-by: Olof Rensfelt <olof@iobeam.com> Approved-by: RobAtticus NA <rob.kiefer@gmail.com> Approved-by: ci-vast
This commit is contained in:
commit
d13f1e86db
@ -194,6 +194,8 @@ CREATE TABLE IF NOT EXISTS _timescaledb_catalog.chunk (
|
||||
UNIQUE (partition_id, end_time),
|
||||
CHECK (start_time <= end_time)
|
||||
);
|
||||
CREATE UNIQUE INDEX ON _timescaledb_catalog.chunk (partition_id) WHERE start_time IS NULL;
|
||||
CREATE UNIQUE INDEX ON _timescaledb_catalog.chunk (partition_id) WHERE end_time IS NULL;
|
||||
CREATE INDEX ON _timescaledb_catalog.chunk(partition_id, start_time, end_time);
|
||||
SELECT pg_catalog.pg_extension_config_dump('_timescaledb_catalog.chunk', '');
|
||||
SELECT pg_catalog.pg_extension_config_dump(pg_get_serial_sequence('_timescaledb_catalog.chunk','id'), '');
|
||||
|
@ -91,6 +91,13 @@ DECLARE
|
||||
chunk_row _timescaledb_catalog.chunk;
|
||||
partition_row _timescaledb_catalog.partition;
|
||||
BEGIN
|
||||
--get lock: prevents simultaneous creation of multiple chunks for same partition.
|
||||
SELECT *
|
||||
INTO partition_row
|
||||
FROM _timescaledb_catalog.partition
|
||||
WHERE id = partition_id
|
||||
FOR UPDATE;
|
||||
|
||||
--recheck:
|
||||
chunk_row := _timescaledb_internal.get_chunk(partition_id, time_point);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user