By: Tom Sydney Kerckhove <syd@cs-syd.eu>
Group columns and indices into a SchemaSnapshot record querySchema used to return only a column map; queryIndices was a second separate query. Anywhere we wanted to compare two schemas in full, the caller had to remember to query both and call compareSchemas twice. Replace with a SchemaSnapshot record holding both maps. querySchema now returns SchemaSnapshot; the old column query is renamed queryColumns so the two halves can still be called directly. compareSchemaSnapshots compares both halves under context "columns" / "indices" and uses the undefined-trick so adding a field forces an update to the comparison. Tidy-up: - import Path and Path.IO open everywhere instead of qualified / partial - use fromAbsDir and fromAbsFile instead of generic toFilePath - settingsFor in both test suites now takes Path Rel Dir, not FilePath, with [reldir|test_resources/foo|] at call sites