Skip to content

Remove obsolete compatibility surfaces - #469

Draft
JanJakes wants to merge 10 commits into
trunkfrom
removals
Draft

Remove obsolete compatibility surfaces#469
JanJakes wants to merge 10 commits into
trunkfrom
removals

Conversation

@JanJakes

@JanJakes JanJakes commented Aug 1, 2026

Copy link
Copy Markdown
Member

Summary

This narrows the API surface that WordPress SQLite Integration 3.0 will commit to by removing obsolete compatibility paths and explicitly classifying implementation details. It keeps WP_MySQL_On_SQLite as the primary driver while retaining WP_SQLite_Driver only as a deprecated compatibility facade until 4.0.

  • Remove the obsolete DATABASE_ENGINE input alias in favor of DB_ENGINE.
  • Remove the broken development-only crosscheck instrumentation from the plugin and release package.
  • Remove the obsolete Performance Lab SQLite migration, its upgrade UI, and its notice compatibility. The migration had been broken since 2023 because it dereferenced $wp_filesystem without initializing the WordPress filesystem.
  • Remove test-only access to private legacy-driver state and its redundant state assignment.
  • Make self-contained constant maps and self-only translation helpers private.
  • Mark parser, native bridge, connection, schema, and diagnostic implementation APIs with WordPress Core-style @access private annotations.
  • Formally deprecate WP_SQLite_Driver in favor of WP_MySQL_On_SQLite, with removal planned for 4.0.

@github-actions

github-actions Bot commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

🤖 Lexer benchmark

Changes to lexer-related files were detected and triggered a benchmark:

Config Base (QPS) This PR (QPS) Speedup
no JIT 74,130 73,948 1.00×
tracing JIT 156,737 161,035 1.03×

Note: Hosted runners are noisy, and absolute numbers vary. Treat the results with caution and verify them locally.

To reproduce locally:

cd packages/mysql-on-sqlite && composer run bench-lexer

define( 'DB_ENGINE', 'sqlite' );
} elseif ( defined( 'DATABASE_ENGINE' ) ) {
// backwards compatibility with previous versions of the plugin.
define( 'DB_ENGINE', DATABASE_ENGINE );

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Drop the DATABASE_ENGINE input alias now that DB_ENGINE is the supported configuration API.
Delete the broken development-only MySQL crosscheck path from the runtime plugin and its release contents.
@JanJakes
JanJakes force-pushed the removals branch 3 times, most recently from 004e0b2 to ed06848 Compare August 3, 2026 10:02
Stop exposing magic access to private driver state and remove the private-method relay that existed only for compatibility tests.

Remove the redundant facade assignment that depended on the magic setter.
Make translation helpers and self-contained constant maps private.
Keep parser, native bridge, connection, schema, and diagnostic plumbing outside the public 3.0 compatibility contract.
Document WP_SQLite_Driver as deprecated in 3.0 with WP_MySQL_On_SQLite as its replacement.
The migration path has been broken since 2023, when direct file deletion was replaced with $wp_filesystem->delete() without initializing the WordPress filesystem. Remove its upgrade handler, UI, and notice compatibility now that the former module is obsolete.
Expose the active MySQL-on-SQLite driver through WP_SQLite_DB and its underlying SQLite PDO through WP_MySQL_On_SQLite.

Stop treating the compatibility global as a connection input. Retain it temporarily as a deprecated output alias while consumers migrate to the explicit accessors.
Align the exception class with the WP_MySQL_On_SQLite API name. Do not retain the obsolete class name because no external runtime usage was found.
Align the concrete statement class with the WP_MySQL_On_SQLite API name and replace the obsolete proxy terminology. Do not retain an alias because public code searches found no external dependency on the old class name.
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