Skip to content

Define wpdb named-column retirement contract - #42

Draft
alexstandiford wants to merge 13 commits into
codex/real-wpdb-query-contract-testsfrom
packet/table-column-retirement-wordpress
Draft

alexstandiford wants to merge 13 commits into
codex/real-wpdb-query-contract-testsfrom
packet/table-column-retirement-wordpress

Conversation

@alexstandiford

@alexstandiford alexstandiford commented Sep 20, 2026 •

Copy link
Copy Markdown
Contributor

Implements the optional named-column retirement capability for the WordPress adapter while preserving the corrected #41 protected extension surface and making ordinary sync additive. The official-wpdb strategy resolves both base and retirement interfaces to one configured instance. Requested and declared names use the backend metadata identifier collation even when a declared column is absent; aliases deduplicate to one persisted target. Full preflight validates the complete batch, rejects malformed metadata, and refuses declared columns, index dependencies, unresolved functional-index metadata, and foreign keys before DDL.

Persisted official-wpdb/MySQL 8.0.45 fixtures cover active-schema scoping, absent declared ASCII/Unicode case variants, the distinct legacy/légacy accent boundary, additive sync, mixed present/absent retirement, deduplication/idempotence, invalid-batch atomicity, quoted identifiers, preserved data, and dependency guards. Unit boundary fixtures honor requested COLUMN_NAME and identifier-comparison predicates without weakening assertions.

This PR is based on corrected #41 head c98c432 and preserves its official WordPress bootstrap, query contracts, protected APIs, and dual optional/required integration scripts. Temporary dependency files resolve phpnomad/db#38 at 406843bc0eefeeadc6fecb847f6e9f3b596458a5 through the branch alias over HTTPS. Release sequence: land/release DB #38 and replace the temporary alias with the released constraint, land #41, then merge/release this adapter. No tag or release is created here.

Architecture: Named Table Column Retirement Contract (Source 9972)

@alexstandiford
alexstandiford force-pushed the codex/real-wpdb-query-contract-tests branch from a43199e to 7df38e0 Compare September 20, 2026 17:06
@alexstandiford
alexstandiford force-pushed the packet/table-column-retirement-wordpress branch from 0d0c34c to 2e5b5a6 Compare September 20, 2026 17:24
@alexstandiford
alexstandiford force-pushed the codex/real-wpdb-query-contract-tests branch from 21b25c4 to 111135d Compare September 20, 2026 17:25
@alexstandiford
alexstandiford force-pushed the packet/table-column-retirement-wordpress branch from 3e88a55 to 37b89bf Compare September 20, 2026 17:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant