Repository navigation
Stdlib: SQLite3Stmt bindParam/getSQL/readOnly + Result columnType after step (ext/sqlite3/php_sqlite3.c) #19854
Copy link
Copy link
Closed
Labels
area:vmVirtual machineVirtual machinebugSomething isn't workingSomething isn't workingenhancementNew feature or requestNew feature or requestimplementation-readySpec complete: repro, php-src ref, done-when — safe for workers to claimSpec complete: repro, php-src ref, done-when — safe for workers to claimphase-4:stdlibPhase 4 – stdlib for web appsPhase 4 – stdlib for web appsstdlib
Description
Activity
- addedbugSomething isn't workingSomething isn't workingenhancementNew feature or requestNew feature or requestphase-4:stdlibPhase 4 – stdlib for web appsPhase 4 – stdlib for web appsarea:vmVirtual machineVirtual machineimplementation-readySpec complete: repro, php-src ref, done-when — safe for workers to claimSpec complete: repro, php-src ref, done-when — safe for workers to claim
on Jul 17, 2026 claim: PHP Compiler Ext — I/O & Crypto — starting this run
Gate snapshot (before claim):
bootstrap-selfhost-link: greenbootstrap-inventory --check: OK 5288/5288release-readiness --json:user_release_ready: no- first fail:
check-selfhost-spine-coverage-sync— missingext/sqlite3/VmSQLite3Stmt.php north-star5-verify-fast: fail (same spine sync)
- first fail:
bootstrap-selfhost-vm-driver-execute-probe: ok
Implementing
bindParam/getSQL/readOnly+ named binds; will restore spine coverage forVmSQLite3Stmt.phpas part of this.Merged in #19858
Verification:
- Issue repro green on VM (
bindParam/getSQL/readOnly, named binds, livebindParamre-read,columnTypefalse before fetch) - Spine coverage restored (5288/5288) — was Pillar 1 red for missing
VmSQLite3Stmt.phpet al. - PHPUnit sqlite3 filter 6/6;
north-star5-verify-fastOK
- Issue repro green on VM (
- added a commit that references this issue
on Jul 17, 2026 Merged: #19858 (squash)
Done-when covered:
bindParam+ named:v/:namebindValuegetSQL()/readOnly()for INSERT vs SELECTcolumnTypereturnsfalsebefore firstfetchArray(sqlite3_data_count)- Compliance
test/compliance/cases/ext/sqlite3_stmt_bindparam_getsql.phpt - Spine coverage restored (Pillar 1 was red on missing sqlite3 stmt/result units)
north-star5-verify-fastOK before merge
- added a commit that references this issue
on Aug 30, 2026
Metadata
Metadata
Assignees
Labels
area:vmVirtual machineVirtual machinebugSomething isn't workingSomething isn't workingenhancementNew feature or requestNew feature or requestimplementation-readySpec complete: repro, php-src ref, done-when — safe for workers to claimSpec complete: repro, php-src ref, done-when — safe for workers to claimphase-4:stdlibPhase 4 – stdlib for web appsPhase 4 – stdlib for web appsstdlib
Category
stdlib· php-src-strict · ext/sqlite3 multi-row API (follow-up to #19821)Problem
#19821 shipped
query/prepare,SQLite3Result::{fetchArray,numColumns,finalize},SQLite3Stmt::{bindValue,execute,reset}, pluschanges/lastInsertRowID/escapeString. Remaining Zend surface still missing or incomplete:SQLite3Stmt::bindParamSQLite3Stmt::getSQL/readOnlySQLite3Result::columnTypebefore firstfetchArray:name)php-src reference
ext/sqlite3/sqlite3.c— stmt/result methodsext/sqlite3/sqlite3.stub.phpPHP implementation target
ext/sqlite3/VmSQLite3Stmt.php/VmSQLite3Result.php/VmSqlite3Native.php— PHP-in-PHP + thin FFIRepro
Expected (Zend): all
1. VM after #19821: all0.Done when
bindParam+ named:vbindValue work for a simple INSERTgetSQL()/readOnly()match Zend for a prepared INSERT vs SELECT.phptundertest/compliance/cases/ext/PHP_COMPILER_PROFILE=8.4Related
#19821 (merged) · #19838 · #3434