blob: a79ec079f41a8f6292c9a07fe6907c5f808afd5b [file] [log] [blame]
-- Test AOCO XLogging
CREATE TABLE generate_aoco_xlog_table(a INT, b INT) WITH (APPENDONLY=TRUE, ORIENTATION=COLUMN);
-- Store the location of xlog in a temporary table so that we can
-- use it to request walsender to start streaming from this point
CREATE TEMP TABLE tmp(dummy int, dbid int, startpoint pg_lsn) distributed by (dummy);
INSERT INTO tmp SELECT 1, gp_execution_segment(),pg_current_wal_lsn() FROM
gp_dist_random('gp_id');
-- Generate some xlog records for AOCO
INSERT INTO generate_aoco_xlog_table SELECT i,i+3 FROM generate_series(1,15)i;
-- Verify that AO xlog record was received
SELECT gp_segment_id, relname, record_type, segment_filenum, recordlen, file_offset
FROM test_xlog_ao_wrapper(
(SELECT array_agg(startpoint) FROM
(SELECT startpoint from tmp order by dbid) t
)
)
WHERE spcNode = (SELECT oid FROM pg_tablespace WHERE spcname = 'pg_default')
AND dbNode = (SELECT oid FROM pg_database WHERE datname = current_database())
ORDER BY gp_segment_id, xrecoff;
-- Store the latest xlog offset
DELETE FROM tmp;
INSERT INTO tmp SELECT 1, gp_execution_segment(),pg_current_wal_lsn()
FROM gp_dist_random('gp_id');
-- Generate a truncate XLOG entry for generate_ao_xlog_table.
BEGIN;
INSERT INTO generate_aoco_xlog_table SELECT i,i FROM generate_series(1,10)i;
ABORT;
VACUUM generate_aoco_xlog_table;
-- Verify that truncate AO xlog record was received
SELECT gp_segment_id, relname, record_type, segment_filenum, recordlen, file_offset
FROM test_xlog_ao_wrapper(
(SELECT array_agg(startpoint) FROM
(SELECT startpoint from tmp order by dbid) t
)
)
WHERE spcNode = (SELECT oid FROM pg_tablespace WHERE spcname = 'pg_default')
AND dbNode = (SELECT oid FROM pg_database WHERE datname = current_database())
ORDER BY gp_segment_id, xrecoff;