これはPGroonga 2.X and 3.X用のドキュメントです。古いPGroongaを使っているならPGroonga 1.xのドキュメントを見てください。
pgroonga_list_lagged_indexes
関数3.2.1で追加
pgroonga_list_lagged_indexes
関数は未適用の(PostgreSQLのWALではなく)PGroongaのWALがあるPGroongaのインデックスを表示します。
具体的には以下の場合に表示します。
pgroonga_wal_status
function の current_*
と last_*
が異なる場合
pg_stat_wal_receiver
の flushed_lsn
と latest_end_lsn
が異なる場合
この関数の構文は次の通りです。
SETOF text pgroonga_list_lagged_indexes()
この関数は未適用の(PostgreSQLのWALではなく)PGroongaのWALがあるPGroongaのインデックスを取得します。
以下のようなレコードを返します。
pgroonga_list_lagged_indexes
------------------------------
pgrn_memos_index
pgrn_tags_index
SELECT pgroonga_list_lagged_indexes();
ストリーミングレプリケーションの設定や pgroonga.enable_wal = yes
の設定は済んでいるものとして例を記載します。
CREATE TABLE memos (
content text
);
CREATE TABLE tags (
name text
);
CREATE INDEX pgrn_memos_index ON memos USING PGroonga (content);
CREATE INDEX pgrn_tags_index ON tags USING PGroonga (name);
PGroongaのWALが未適用の状態。
SELECT name,
current_block,
current_offset,
current_size,
last_block,
last_offset,
last_size
FROM pgroonga_wal_status();
name | current_block | current_offset | current_size | last_block | last_offset | last_size
------------------+---------------+----------------+--------------+------------+-------------+-----------
pgrn_memos_index | 0 | 0 | 0 | 1 | 566 | 8758
pgrn_tags_index | 0 | 0 | 0 | 1 | 560 | 8752
(2 rows)
SELECT pgroonga_list_lagged_indexes();
pgroonga_list_lagged_indexes
------------------------------
pgrn_memos_index
pgrn_tags_index
(2 rows)
一部のPGroongaインデックスでPGroongaのWALが適用済。
SELECT * FROM tags WHERE name &@ 'dummy';
name
------
(0 rows)
SELECT name,
current_block,
current_offset,
current_size,
last_block,
last_offset,
last_size
FROM pgroonga_wal_status();
name | current_block | current_offset | current_size | last_block | last_offset | last_size
------------------+---------------+----------------+--------------+------------+-------------+-----------
pgrn_memos_index | 0 | 0 | 0 | 1 | 566 | 8758
pgrn_tags_index | 1 | 560 | 8752 | 1 | 560 | 8752
(2 rows)
SELECT pgroonga_list_lagged_indexes();
pgroonga_list_lagged_indexes
------------------------------
pgrn_memos_index
(1 row)
すべてのPGroongaインデックスでPGroongaのWALが適用済。
SELECT pgroonga_wal_apply();
pgroonga_wal_apply
--------------------
7
(1 row)
SELECT name,
current_block,
current_offset,
current_size,
last_block,
last_offset,
last_size
FROM pgroonga_wal_status();
name | current_block | current_offset | current_size | last_block | last_offset | last_size
------------------+---------------+----------------+--------------+------------+-------------+-----------
pgrn_memos_index | 1 | 566 | 8758 | 1 | 566 | 8758
pgrn_tags_index | 1 | 560 | 8752 | 1 | 560 | 8752
(2 rows)
SELECT pgroonga_list_lagged_indexes();
pgroonga_list_lagged_indexes
------------------------------
(0 rows)