Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reorganize yezzey upgarde scripts after 1.8.1 #108

Merged
merged 1 commit into from
Feb 18, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/xvacuum.cpp
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

mb not

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

whitespaces...

Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ int yezzey_vacuum_garbage_internal(int segindx, bool confirm, bool crazyDrop) {
}
return 0;
}

int yezzey_vacuum_garbage_relation_internal(Relation rel, int segindx,
bool confirm, bool crazyDrop) {
try {
Expand Down Expand Up @@ -109,6 +110,7 @@ int yezzey_vacuum_garbage_relation_internal(Relation rel, int segindx,
}
return 0;
}

int yezzey_vacuum_garbage_relation_internal_oid(Oid reloid, int segindx,
bool confirm, bool crazyDrop) {
Relation rel = relation_open(reloid, NoLock);
Expand Down
39 changes: 33 additions & 6 deletions yezzey--1.8.1--1.8.2.sql
Original file line number Diff line number Diff line change
@@ -1,8 +1,35 @@

CREATE TABLE yezzey.yezzey_expire_hint
(
x_path TEXT PRIMARY KEY,
lsn pg_lsn
) WITH (appendonly=false);
CREATE TABLE yezzey.yezzey_virtual_index_stale AS
SELECT * FROM yezzey.yezzey_virtual_index LIMIT 0;

CREATE INDEX yezzey_virtual_index_x_path ON yezzey.yezzey_virtual_index(x_path);
CREATE TABLE yezzey.offload_metadata_stale AS
SELECT * FROM yezzey.offload_metadata LIMIT 0;

CREATE OR REPLACE FUNCTION
yezzey.yezzey_fixup_stale_metadata() RETURNS VOID
AS
$$
WITH stale_data AS (
SELECT * FROM
yezzey.yezzey_virtual_index vi
WHERE NOT EXISTS (SELECT 1 FROM pg_class WHERE relfilenode = vi.filenode)
)
INSERT INTO yezzey.yezzey_virtual_index_stale TABLE stale_data;

DELETE FROM
yezzey.yezzey_virtual_index vi
WHERE NOT EXISTS (SELECT 1 FROM pg_class WHERE relfilenode = vi.filenode);

WITH stale_offload_data AS (
SELECT * FROM
yezzey.offload_metadata op
WHERE NOT EXISTS (SELECT 1 FROM pg_class WHERE oid = op.reloid)
)
INSERT INTO yezzey.offload_metadata_stale TABLE stale_offload_data;

DELETE FROM
yezzey.offload_metadata op
WHERE NOT EXISTS (SELECT 1 FROM pg_class WHERE oid = op.reloid);

$$ LANGUAGE SQL
EXECUTE ON ALL SEGMENTS;
42 changes: 1 addition & 41 deletions yezzey--1.8.3--1.8.4.sql
Original file line number Diff line number Diff line change
@@ -1,43 +1,3 @@

CREATE TABLE yezzey.yezzey_virtual_index_stale AS
SELECT * FROM yezzey.yezzey_virtual_index LIMIT 0;

CREATE TABLE yezzey.offload_metadata_stale AS
SELECT * FROM yezzey.offload_metadata LIMIT 0;

CREATE OR REPLACE FUNCTION
yezzey.fixup_stale_data() RETURNS VOID
AS
$$
WITH stale_data AS (
SELECT * FROM
yezzey.yezzey_virtual_index vi
WHERE NOT EXISTS (SELECT 1 FROM pg_class WHERE relfilenode = vi.filenode)
)
INSERT INTO yezzey.yezzey_virtual_index_stale TABLE stale_data;

DELETE FROM
yezzey.yezzey_virtual_index vi
WHERE NOT EXISTS (SELECT 1 FROM pg_class WHERE relfilenode = vi.filenode);

WITH stale_offload_data AS (
SELECT * FROM
yezzey.offload_metadata op
WHERE NOT EXISTS (SELECT 1 FROM pg_class WHERE oid = op.reloid)
)
INSERT INTO yezzey.offload_metadata_stale TABLE stale_offload_data;

DELETE FROM
yezzey.offload_metadata op
WHERE NOT EXISTS (SELECT 1 FROM pg_class WHERE oid = op.reloid);

$$ LANGUAGE SQL
EXECUTE ON ALL SEGMENTS;

SET allow_segment_dml TO ON;

SELECT yezzey.fixup_stale_data();

RESET allow_segment_DML;

DROP FUNCTION yezzey.fixup_stale_data();
-- create yezzey hint index here