diff --git a/.github/actions/apt-x32/action.yml b/.github/actions/apt-x32/action.yml index af1d7918bb28d..39ef1df6c2c8c 100644 --- a/.github/actions/apt-x32/action.yml +++ b/.github/actions/apt-x32/action.yml @@ -38,6 +38,7 @@ runs: libxml2-dev:i386 \ libxpm-dev:i386 \ libxslt1-dev:i386 \ + firebird-dev:i386 \ locales \ make \ pkg-config:i386 \ diff --git a/.github/actions/configure-x32/action.yml b/.github/actions/configure-x32/action.yml index de500e02d4991..a5c5df4f7971d 100644 --- a/.github/actions/configure-x32/action.yml +++ b/.github/actions/configure-x32/action.yml @@ -27,6 +27,7 @@ runs: --with-pgsql \ --with-pdo-pgsql \ --with-pdo-sqlite \ + --with-pdo-firebird \ --without-pear \ --enable-gd \ --with-jpeg \ diff --git a/.github/actions/test-linux/action.yml b/.github/actions/test-linux/action.yml index 164606ecddc12..a5bf49bd00157 100644 --- a/.github/actions/test-linux/action.yml +++ b/.github/actions/test-linux/action.yml @@ -30,7 +30,9 @@ runs: export PDO_PGSQL_TEST_DSN="pgsql:host=localhost port=5432 dbname=test user=postgres password=postgres" fi export PDO_FIREBIRD_TEST_DATABASE=test.fdb - export PDO_FIREBIRD_TEST_DSN=firebird:dbname=localhost:test.fdb + if [[ -z "$PDO_FIREBIRD_TEST_DSN" ]]; then + export PDO_FIREBIRD_TEST_DSN=firebird:dbname=localhost:test.fdb + fi export PDO_FIREBIRD_TEST_PASS=test export PDO_FIREBIRD_TEST_USER=test export ODBC_TEST_USER="odbc_test" diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index f59fcb8d7badc..4705b8874dd05 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -147,6 +147,7 @@ jobs: MYSQL_TEST_HOST: mysql PDO_MYSQL_TEST_DSN: mysql:host=mysql;dbname=test PDO_MYSQL_TEST_HOST: mysql + PDO_FIREBIRD_TEST_DSN: firebird:dbname=firebird:test.fdb services: mysql: image: mysql:8.3 @@ -155,6 +156,15 @@ jobs: env: MYSQL_DATABASE: test MYSQL_ROOT_PASSWORD: root + firebird: + image: jacobalberty/firebird + ports: + - 3050:3050 + env: + ISC_PASSWORD: test + FIREBIRD_DATABASE: test.fdb + FIREBIRD_USER: test + FIREBIRD_PASSWORD: test steps: - name: git checkout uses: actions/checkout@v4 diff --git a/ext/pdo_firebird/firebird_driver.c b/ext/pdo_firebird/firebird_driver.c index 157766f51dd17..9d7cb20d2cdeb 100644 --- a/ext/pdo_firebird/firebird_driver.c +++ b/ext/pdo_firebird/firebird_driver.c @@ -1409,7 +1409,7 @@ static int pdo_firebird_handle_factory(pdo_dbh_t *dbh, zval *driver_options) /* char errmsg[512]; const ISC_STATUS *s = H->isc_status; fb_interpret(errmsg, sizeof(errmsg),&s); - zend_throw_exception_ex(php_pdo_get_exception(), H->isc_status[1], "SQLSTATE[%s] [%ld] %s", + zend_throw_exception_ex(php_pdo_get_exception(), H->isc_status[1], "SQLSTATE[%s] [%" PRIiPTR "] %s", "HY000", H->isc_status[1], errmsg); } diff --git a/ext/pdo_firebird/tests/bug_15604.phpt b/ext/pdo_firebird/tests/bug_15604.phpt index e8aa04c9ddf54..2a31d29e7b8cc 100644 --- a/ext/pdo_firebird/tests/bug_15604.phpt +++ b/ext/pdo_firebird/tests/bug_15604.phpt @@ -15,7 +15,7 @@ $dbh = getDbConnection(); $dbh->exec(' recreate table t_bug_15604 ( - id bigint not null, + id int not null, a int not null, b int, constraint pk_bug_15604 primary key(id) diff --git a/ext/pdo_firebird/tests/bug_76448.phpt b/ext/pdo_firebird/tests/bug_76448.phpt index 0d567dbc6282f..af19736842f69 100644 --- a/ext/pdo_firebird/tests/bug_76448.phpt +++ b/ext/pdo_firebird/tests/bug_76448.phpt @@ -6,6 +6,8 @@ sockets --XLEAK-- A bug in firebird causes a memory leak when calling `isc_attach_database()`. See https://github.com/FirebirdSQL/firebird/issues/7849 +--SKIPIF-- + --FILE--