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
Please register or sign in to comment