mirror of
https://github.com/timescale/timescaledb.git
synced 2025-05-15 01:53:41 +08:00
First step to remove the re-aggregation for Continuous Aggregates is to remove the `chunk_id` from the materialization hypertable. Also added new metadata column named `finalized` to `continuous_cagg` catalog table in order to store information about the new following finalized version of Continuous Aggregates that will not need the partials anymore. This flag is important to maintain backward compatibility with previous Continuous Aggregate implementation that requires the `chunk_id` to refresh data properly.
39 lines
1.2 KiB
SQL
39 lines
1.2 KiB
SQL
-- This file and its contents are licensed under the Timescale License.
|
|
-- Please see the included NOTICE for copyright information and
|
|
-- LICENSE-TIMESCALE for a copy of the license.
|
|
|
|
--expects QUERY to be set
|
|
\o /dev/null
|
|
|
|
DROP MATERIALIZED VIEW IF EXISTS mat_test;
|
|
|
|
CREATE MATERIALIZED VIEW mat_test
|
|
WITH (timescaledb.continuous)
|
|
as :QUERY
|
|
WITH NO DATA;
|
|
|
|
select h.schema_name AS "MAT_SCHEMA_NAME",
|
|
h.table_name AS "MAT_TABLE_NAME",
|
|
partial_view_name as "PART_VIEW_NAME",
|
|
partial_view_schema as "PART_VIEW_SCHEMA"
|
|
from _timescaledb_catalog.continuous_agg ca
|
|
INNER JOIN _timescaledb_catalog.hypertable h ON(h.id = ca.mat_hypertable_id)
|
|
where user_view_name = 'mat_test'
|
|
\gset
|
|
|
|
\c :TEST_DBNAME :ROLE_SUPERUSER
|
|
INSERT INTO :"MAT_SCHEMA_NAME".:"MAT_TABLE_NAME" SELECT * FROM :"PART_VIEW_SCHEMA".:"PART_VIEW_NAME";
|
|
\c :TEST_DBNAME :ROLE_DEFAULT_PERM_USER
|
|
\o
|
|
|
|
with original AS (
|
|
SELECT row_number() OVER(ORDER BY q.*) row_number, * FROM (:QUERY) as q
|
|
),
|
|
view AS (
|
|
SELECT row_number() OVER (ORDER BY q.*) row_number, * FROM mat_test as q
|
|
)
|
|
SELECT 'Number of rows different between view and original (expect 0)', count(*)
|
|
FROM original
|
|
FULL OUTER JOIN view ON (original.row_number = view.row_number)
|
|
WHERE (original.*) IS DISTINCT FROM (view.*);
|