From feecb7b42304d3f49bf6622bf95d4ba781fa1607 Mon Sep 17 00:00:00 2001 From: Hadi Moshayedi Date: Mon, 30 Nov 2020 18:09:43 -0800 Subject: [PATCH] Columnar: few fixes (#4371) * Columnar: fix a memory issue * Columnar: no need for deferred triggers * Columnar: relax memory growth constraints --- src/backend/columnar/cstore_writer.c | 2 +- src/backend/columnar/sql/columnar--9.5-1--10.0-1.sql | 2 +- src/test/regress/expected/am_memory.out | 2 +- src/test/regress/sql/am_memory.sql | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/backend/columnar/cstore_writer.c b/src/backend/columnar/cstore_writer.c index 2724d7b8d..7e9d4cf8f 100644 --- a/src/backend/columnar/cstore_writer.c +++ b/src/backend/columnar/cstore_writer.c @@ -112,7 +112,7 @@ CStoreBeginWrite(RelFileNode relfilenode, writeState->stripeWriteContext = stripeWriteContext; writeState->blockData = blockData; writeState->compressionBuffer = NULL; - writeState->perTupleContext = AllocSetContextCreate(stripeWriteContext, + writeState->perTupleContext = AllocSetContextCreate(CurrentMemoryContext, "CStore per tuple context", ALLOCSET_DEFAULT_SIZES); diff --git a/src/backend/columnar/sql/columnar--9.5-1--10.0-1.sql b/src/backend/columnar/sql/columnar--9.5-1--10.0-1.sql index d1f982f61..23a20796d 100644 --- a/src/backend/columnar/sql/columnar--9.5-1--10.0-1.sql +++ b/src/backend/columnar/sql/columnar--9.5-1--10.0-1.sql @@ -42,7 +42,7 @@ CREATE TABLE cstore_skipnodes ( exists_stream_length bigint NOT NULL, value_compression_type int NOT NULL, PRIMARY KEY (storageid, stripe, attr, block), - FOREIGN KEY (storageid, stripe) REFERENCES cstore_stripes(storageid, stripe) ON DELETE CASCADE INITIALLY DEFERRED + FOREIGN KEY (storageid, stripe) REFERENCES cstore_stripes(storageid, stripe) ON DELETE CASCADE ) WITH (user_catalog_table = true); COMMENT ON TABLE cstore_skipnodes IS 'CStore per block metadata'; diff --git a/src/test/regress/expected/am_memory.out b/src/test/regress/expected/am_memory.out index 8a4b038c6..574f1b267 100644 --- a/src/test/regress/expected/am_memory.out +++ b/src/test/regress/expected/am_memory.out @@ -81,7 +81,7 @@ write_clear_outside_xact | t INSERT INTO t SELECT i, 'last batch', 0 /* no need to record memusage per row */ FROM generate_series(1, 50000) i; -SELECT 1.0 * TopMemoryContext / :top_post BETWEEN 0.99 AND 1.01 AS top_growth_ok +SELECT 1.0 * TopMemoryContext / :top_post BETWEEN 0.98 AND 1.02 AS top_growth_ok FROM column_store_memory_stats(); -[ RECORD 1 ]-+-- top_growth_ok | t diff --git a/src/test/regress/sql/am_memory.sql b/src/test/regress/sql/am_memory.sql index 6ce8fcf18..e1fea5823 100644 --- a/src/test/regress/sql/am_memory.sql +++ b/src/test/regress/sql/am_memory.sql @@ -85,7 +85,7 @@ INSERT INTO t SELECT i, 'last batch', 0 /* no need to record memusage per row */ FROM generate_series(1, 50000) i; -SELECT 1.0 * TopMemoryContext / :top_post BETWEEN 0.99 AND 1.01 AS top_growth_ok +SELECT 1.0 * TopMemoryContext / :top_post BETWEEN 0.98 AND 1.02 AS top_growth_ok FROM column_store_memory_stats(); -- before this change, max mem usage while executing inserts was 28MB and