760792e5

By: Tom Sydney Kerckhove <syd@cs-syd.eu>

Compare indices, not just columns, in the schema-equality check

The schema-equality check in sqitch-persistent compared
information_schema.columns only, so two databases with identical
columns but divergent indices would compare as equal. That hid drift
between sqitch deploy scripts and the application's runtime
setUpIndices.

Add Test.Syd.Sqitch.Schema.queryIndices reading pg_indexes (which gives
indexdef capturing columns, ordering, uniqueness, and any partial-index
predicate), and have runSqitchPersistentChecks compare both columns and
indices on each side.

Regression test: toy-sqitch-index-drift, where the sqitch deploy
creates an index the persistent model doesn't. Confirmed that the test
fails without the fix and passes with it.

Suite timing

Time to Start Worker time Duration Time to finish
Config 0s 2s 2s 2s
Eval 3s 43s 43s 47s
Build 10s 55s 30s 40s
Test - - - -
Deploy - - - -
Suite 0s 1m42s 47s 47s

Timeline

0s10s20s30s40s