Skip to content

Install the SQLite ODBC driver in CI#22686

Open
iliaal wants to merge 1 commit into
php:PHP-8.4from
iliaal:ci/sqlite-odbc-driver
Open

Install the SQLite ODBC driver in CI#22686
iliaal wants to merge 1 commit into
php:PHP-8.4from
iliaal:ci/sqlite-odbc-driver

Conversation

@iliaal

@iliaal iliaal commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

The ext/odbc and pdo_odbc regression tests connect through a real ODBC driver (Driver=SQLite3), which CI never installed, so they skipped on every lane. libsqliteodbc registers the SQLite3 driver and supports Database=:memory:, so the tests run without a database server. Alpine has no such package, so those lanes keep skipping. Follow-up to the driver discussion on #22672.

The ext/odbc and pdo_odbc regression tests connect through a real ODBC
driver (Driver=SQLite3), which was never installed, so they skipped on
every lane. libsqliteodbc registers the SQLite3 driver and supports
Database=:memory:, so the tests run without a database server. Alpine
has no such package, so those lanes keep skipping.
@NattyNarwhal

Copy link
Copy Markdown
Member

I'll let others comment, but this looks OK to me.

For FreeBSD, we can install sqliteodbc... except there are no ODBC tests being performed there. For ppc64, I'll install it there.


For tests: any tests that don't rely on specific driver quirks, we should continue to use PDO_ODBC_TEST_DSN/ODBC_TEST_DSN. While some assume SQL Server (for dialect or behaviour reasons), most don't, and we could in theory test those with the SQLite ODBC driver just using it there (if we didn't mind cleaning up assumptions/adding some skipifs for not SQL Server).

For the tests you're adding that have to rely on the SQLIte ODBC driver behaviour, we could hardcode the connection string, but it doesn't seem quite right to hardcode it (i.e. in case of different driver name in odbcinst). We could just make them use the standard ODBC test DSN env vars, and re-run ODBC tests with a different matrix? But that seems pretty complicated, so maybe I'm overthinking that.

@iliaal

iliaal commented Jul 10, 2026

Copy link
Copy Markdown
Contributor Author

Just to keep it simple maybe add PDO_ODB_SQLITE_DSN and the new tests that rely on sqlite can use that and pre-existing keep using what is there

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants