Unverified Commit 97f18bc5 authored by Dimitri Fontaine's avatar Dimitri Fontaine Committed by GitHub
Browse files

Use our SQLite catalogs for the pgcopydb sentinel table. (#601)

* Use our SQLite catalogs for the pgcopydb sentinel table.

The main use-case for the sentinel table is to communicate progress made by
the three independent worker processes for stream, transform, and replay.
It is also needed to communicate new startpos, endpos and apply values with
those processes from another pgcopydb (interactive) command, a process
that's not in the process tree.

This was previously solved by creating and using a pgcopydb.sentinel table
on the source database. Now that we have a SQLite database internal to the
pgcopydb run, we can use that instead.

* More work on the sentinel table move to SQLite catalogs.

In particular, we need to share a common directory mount point in the test
and inject containers, because the inject container is setting the endpos
for the test container where the main tests are running.

For that, in my testing the best option is to use a host directory. This
also makes it very easy to then use sqlite3 and inspect what's going on from
the outside.

* Attempt to fix GitHub Action host workdir perms

* Fix follow-data-only tests: update sentinel at stream flush time.

* Assorted fixes, per self-review.
parent d365e07f
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment