Skip to content

CI green: PHP 8.2 prado harness, IBM DB2, SQL Server and Firebird suites - #1

Merged
belisoful merged 1 commit into
pradosoft:masterfrom
belisoful:claude/fork-ci-green-b53c45
Oct 22, 2026
Merged

belisoful merged 1 commit into
pradosoft:masterfrom
belisoful:claude/fork-ci-green-b53c45

Conversation

@belisoful

Copy link
Copy Markdown
Member

Install / harness

  • composer.json: dev platform PHP 8.2 (pradosoft/prado dev-master requires 8.2); autoload prado's namespaced test harness (Prado\Test\Unit) from vendor.
  • phpunit bootstrap / BaseCase: use Prado\Test\Unit\Harness\TTestApplication and Prado\Test\Unit\PradoUnit (PradoUnitRequires.php no longer exists).
  • BaseCase: include the underlying exception in the schema-init failure; close the config connection between classes. TActiveRecordManager kept the previous class's pdo_firebird connection open, and its implicit transaction blocked the next class's DROP TABLE forever (the Firebird job hang).

SqlMap (src)

  • TPreparedCommand: bind NULL as PDO::PARAM_STR on pdo_ibm (PARAM_NULL is rejected); bind PHP bools as 0/1 on pdo_firebird (bools bind only to BOOLEAN columns).
  • TMappedStatement: drop the PRADO_ROWNUM helper column that TIbmCommandBuilder's ROW_NUMBER() paging subquery returns.

Test maps / configs

  • mssql Category.xml: insert-null-params binds GuidString; InsertCategoryNull is an with a post selectKey; GetCategory aliases GuidString.
  • IbmScriptRunner strips "--" comments before splitting on ";".
  • IbmBaseTestConfig: PDO::ATTR_CASE CASE_NATURAL (pdo_ibm defaults to CASE_UPPER).
  • Firebird maps: quote reserved-word aliases (value, Date, Day, Month, datetime) and hashtable aliases; CAST nullable delete parameters.
  • ActiveAccount COLUMN_MAPPING: uppercase Firebird column names.
  • IBM ActiveRecord save test skips until Prado\Data\TDbDriverCapabilities (untyped binding for pdo_ibm) is available in prado.

Workflow

  • PHP matrix 8.2-8.5, actions/checkout@v7, actions/cache@v6, Firebird step timeout.

Install / harness
- composer.json: dev platform PHP 8.2 (pradosoft/prado dev-master requires 8.2);
  autoload prado's namespaced test harness (Prado\Test\Unit\) from vendor.
- phpunit bootstrap / BaseCase: use Prado\Test\Unit\Harness\TTestApplication and
  Prado\Test\Unit\PradoUnit (PradoUnitRequires.php no longer exists).
- BaseCase: include the underlying exception in the schema-init failure; close the
  config connection between classes. TActiveRecordManager kept the previous class's
  pdo_firebird connection open, and its implicit transaction blocked the next
  class's DROP TABLE forever (the Firebird job hang).

SqlMap (src)
- TPreparedCommand: bind NULL as PDO::PARAM_STR on pdo_ibm (PARAM_NULL is rejected);
  bind PHP bools as 0/1 on pdo_firebird (bools bind only to BOOLEAN columns).
- TMappedStatement: drop the PRADO_ROWNUM helper column that TIbmCommandBuilder's
  ROW_NUMBER() paging subquery returns.

Test maps / configs
- mssql Category.xml: insert-null-params binds GuidString; InsertCategoryNull is an
  <insert> with a post selectKey; GetCategory aliases GuidString.
- IbmScriptRunner strips "--" comments before splitting on ";".
- IbmBaseTestConfig: PDO::ATTR_CASE CASE_NATURAL (pdo_ibm defaults to CASE_UPPER).
- Firebird maps: quote reserved-word aliases (value, Date, Day, Month, datetime) and
  hashtable aliases; CAST nullable delete parameters.
- ActiveAccount COLUMN_MAPPING: uppercase Firebird column names.
- IBM ActiveRecord save test skips until Prado\Data\TDbDriverCapabilities
  (untyped binding for pdo_ibm) is available in prado.

Workflow
- PHP matrix 8.2-8.5, actions/checkout@v7, actions/cache@v6, Firebird step timeout.
@belisoful
belisoful merged commit 75fe344 into pradosoft:master Oct 22, 2026
11 checks passed
@belisoful
belisoful deleted the claude/fork-ci-green-b53c45 branch October 22, 2026 23:33
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