これはPGroonga 2.0.0以降用のドキュメントです。PGroonga 1.Xを使っているなら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)