History log of /php-src/ext/pdo_firebird/firebird_statement.c (Results 1 – 25 of 121)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# 7ebdd7d0 29-Aug-2024 Peter Kokot

Trim trailing whitespace (#15649)

[skip ci]


# 8487ddb8 27-Aug-2024 Simonov Denis

pdo_firebird: Cleanup code (GH-15510)

Since we're requiring fbclient >= 3.0 anyway, we:

* Remove unneeded `#if FB_API_VER >= 25`, `#if FB_API_VER >= 30`,
`#ifdef SQL_BOOLEAN`

pdo_firebird: Cleanup code (GH-15510)

Since we're requiring fbclient >= 3.0 anyway, we:

* Remove unneeded `#if FB_API_VER >= 25`, `#if FB_API_VER >= 30`,
`#ifdef SQL_BOOLEAN`

* Simplify support for new types for query input parameters.
Support force_null for them.

* fbclient 3.0+ does not have a limit on the length of a SQL query of 64 KB.
The new limit is 10 MB, no one in their right mind would transmit a query of such length.

show more ...


# 225034db 12-Aug-2024 Simonov Denis

pdo_firebird: Formatting time zone types

As a follow-up to the commit which introduced support for Firebird 4.0+
data types[1], we add support for formats for types with time zones.

pdo_firebird: Formatting time zone types

As a follow-up to the commit which introduced support for Firebird 4.0+
data types[1], we add support for formats for types with time zones.

Since this uses the newer Firebird C++ API, pdo_firebird now requires a
C++ compiler to be built.

[1] <https://github.com/php/php-src/pull/14897>

Co-authored-by: Christoph M. Becker <cmbecker69@gmx.de>

Closes GH-15230.

show more ...


# 11accb5c 25-Jun-2024 Arnaud Le Blanc

Preferably include from build dir (#13516)

* Include from build dir first

This fixes out of tree builds by ensuring that configure artifacts are included
from the build dir.

Preferably include from build dir (#13516)

* Include from build dir first

This fixes out of tree builds by ensuring that configure artifacts are included
from the build dir.

Before, out of tree builds would preferably include files from the src dir, as
the include path was defined as follows (ignoring includes from ext/ and sapi/) :

-I$(top_builddir)/main
-I$(top_srcdir)
-I$(top_builddir)/TSRM
-I$(top_builddir)/Zend
-I$(top_srcdir)/main
-I$(top_srcdir)/Zend
-I$(top_srcdir)/TSRM
-I$(top_builddir)/

As a result, an out of tree build would include configure artifacts such as
`main/php_config.h` from the src dir.

After this change, the include path is defined as follows:

-I$(top_builddir)/main
-I$(top_builddir)
-I$(top_srcdir)/main
-I$(top_srcdir)
-I$(top_builddir)/TSRM
-I$(top_builddir)/Zend
-I$(top_srcdir)/Zend
-I$(top_srcdir)/TSRM

* Fix extension include path for out of tree builds

* Include config.h with the brackets form

`#include "config.h"` searches in the directory containing the including-file
before any other include path. This can include the wrong config.h when building
out of tree and a config.h exists in the source tree.

Using `#include <config.h>` uses exclusively the include path, and gives
priority to the build dir.

show more ...


# df481ef9 03-Jun-2024 Peter Kokot

Simplify PDO include paths (#14444)

PDO include paths can be simplified and synced as done in other
extensions: either the project root directory or the phpincludedir (for
the system

Simplify PDO include paths (#14444)

PDO include paths can be simplified and synced as done in other
extensions: either the project root directory or the phpincludedir (for
the system installation). The 'ext' include is automatically appended
when doing phpize build. In php-src it is only present on Windows build.
The PHP_CHECK_PDO_INCLUDES is left intact working as before and checks
if PDO headers are found.

show more ...


# fa751c7d 13-Jan-2024 SakiTakamachi

Fix GH-13119 (#13125)

Fixed an issue where pdo_firebird float and double type values were wrong.

Changed from using `%F` format with `zend_strpprintf` to using `%H` format with

Fix GH-13119 (#13125)

Fixed an issue where pdo_firebird float and double type values were wrong.

Changed from using `%F` format with `zend_strpprintf` to using `%H` format with
`zend_strpprintf_unchecked`.

Fixes GH-13119
Closes GH-13125

show more ...


# dfaf7986 27-Nov-2023 Saki Takamachi <34942839+SakiTakamachi@users.noreply.github.com>

[pdo_firebird] Transaction management optimization (#12741)

take2 of #12657

## About Firebird transaction

Firebird is a full transactional database, so the DB itself does n

[pdo_firebird] Transaction management optimization (#12741)

take2 of #12657

## About Firebird transaction

Firebird is a full transactional database, so the DB itself does not support autocommit mode. (Strictly, there is an autocommit mode, but it is a different concept from the "autocommit" that we are used to with MySQL and others.)

Therefore, a transaction must have started before any operation is performed, and autocommit mode had to be emulated in PHP.

I made sure that a transaction always exists when in autocommit mode. Since the `in_transacntion` function does not work as expected, I have introduced `H->in_manually_txn` to determine whether a transaction is being manually manipulated.

## There are two types of commit/rollback

(I'm not talking about two-phase commit. This change does not take into account two-phase commit.)

There are `isc_commit_retaining` which starts a transaction again in the same context immediately after committing, and `isc_commit_transaction` which closes the transaction as is.

Similarly, there are two types of rollback.

-----------

Due to the default value of the transaction isolation level, autocommit mode may obtain unintended results.
Regarding this, it would be too large to include support for transaction isolation levels in this PR, so I will leave it as is for now.

show more ...


# 54b12bcd 22-Nov-2023 SakiTakamachi

Unified function naming conventions


# 239379b7 20-Nov-2023 Saki Takamachi <34942839+SakiTakamachi@users.noreply.github.com>

ext/pdo_firebird: Output correct error messages


# 7f7da6ae 17-Nov-2023 KentarouTakeda

Enable `pdo-firebird` nightly testing (#12699)

* Enable `pdo-firebird` Testing in Nightly

* fix(ext/pdo_firebird/tests): dont detect memory leak

* fix(ext/pdo_firebird): me

Enable `pdo-firebird` nightly testing (#12699)

* Enable `pdo-firebird` Testing in Nightly

* fix(ext/pdo_firebird/tests): dont detect memory leak

* fix(ext/pdo_firebird): memory alignment error

show more ...


# 21e0305f 23-Mar-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Fix GH-10908: Bus error with PDO Firebird on RPI with 64 bit kernel and 32 bit userland

The alignment of sqldata is in most cases only the basic alignment,
so the code type-puns it to a

Fix GH-10908: Bus error with PDO Firebird on RPI with 64 bit kernel and 32 bit userland

The alignment of sqldata is in most cases only the basic alignment,
so the code type-puns it to a larger type, it *can* crash due to the
misaligned access. This is only an issue for types > 4 bytes because
every sensible system requires an alignment of at least 4 bytes for
allocated data.

Even though this patch uses memcpy, the compiler is smart enough to
optimise it to something more efficient, especially on x86.
This is just the usual approach to solve these alignment problems.

Actually, unaligned memory access is undefined behaviour, so even on x86
platforms, where the bug doesn't cause a crash, this can be problematic.
Furthermore, even though the issue talks about a 64-bit kernel and
32-bit userspace, this doesn't necessarily need to be the case to
trigger this crash.

Test was Co-authored-by: rvk01

Closes GH-10920.

show more ...


# 44377c3c 29-Nov-2022 Christoph M. Becker

Fix GH-9971: Incorrect NUMERIC value returned from PDO_Firebird

Dialect 1 databases store and transfer `NUMERIC(15,2)` values as
doubles, which we need to cater to in `firebird_stmt_get_

Fix GH-9971: Incorrect NUMERIC value returned from PDO_Firebird

Dialect 1 databases store and transfer `NUMERIC(15,2)` values as
doubles, which we need to cater to in `firebird_stmt_get_col()` to
avoid `ZEND_ASSUME(0)` to ever be triggered, since that may result
in undefined behavior.

Since adding a regression test would require to create a dialect 1
database, we go without it.

Closes GH-10021.

show more ...


Revision tags: php-8.2.0RC1, php-8.1.10, php-8.0.23, php-8.0.23RC1, php-8.1.10RC1, php-8.2.0beta3, php-8.2.0beta2, php-8.1.9, php-8.0.22
# ba9debb5 28-Jul-2022 Nikita Popov

Fix parentheses warnings

Revision tags: php-8.1.9RC1, php-8.2.0beta1, php-8.0.22RC1, php-8.0.21, php-8.1.8, php-8.2.0alpha3
# 2fc9e769 05-Jul-2022 Christoph M. Becker

Fix GH-8576: Bad interpretation of length when char is UTF-8

For columns of type `SQL_TEXT`, Firebird does not properly report the
actual column length, but rather only the maximum colum

Fix GH-8576: Bad interpretation of length when char is UTF-8

For columns of type `SQL_TEXT`, Firebird does not properly report the
actual column length, but rather only the maximum column length, so for
multi-byte encodings like UTF-8, such columns may have trailing
spaces. We work around that by treating such columns as `SQL_VARYING`
when we ask the server to describe the colum, what yields the desired
results.

Given that this is a work-around, and may break code which expects the
results with trailing spaces, we target "master" only.

Closes GH-8926.

show more ...

Revision tags: php-8.1.8RC1, php-8.2.0alpha2, php-8.0.21RC1, php-8.0.20, php-8.1.7, php-8.2.0alpha1
# a6a13139 07-Jun-2022 Ben Ramsey

Fix #76452: Crash while parsing blob data in firebird_fetch_blob

This reapplies 286162e9b03071c4308e7e92597bca4239f49d89 to the PHP-8.1 (and up)
branches, fixing what might have been cau

Fix #76452: Crash while parsing blob data in firebird_fetch_blob

This reapplies 286162e9b03071c4308e7e92597bca4239f49d89 to the PHP-8.1 (and up)
branches, fixing what might have been caused by a bad merge conflict resolution.

show more ...

Revision tags: php-7.4.30, php-8.1.7RC1, php-8.0.20RC1, php-8.1.6, php-8.0.19, php-8.1.6RC1, php-8.0.19RC1, php-8.0.18, php-8.1.5, php-7.4.29, php-8.1.5RC1, php-8.0.18RC1, php-8.1.4, php-8.0.17, php-8.1.4RC1, php-8.0.17RC1, php-8.1.3, php-8.0.16, php-7.4.28, php-8.1.3RC1, php-8.0.16RC1, php-8.1.2, php-8.0.15, php-8.1.2RC1, php-8.0.15RC1, php-8.0.14, php-8.1.1, php-7.4.27, php-8.1.1RC1, php-8.0.14RC1, php-7.4.27RC1, php-8.1.0, php-8.0.13, php-7.4.26, php-7.3.33, php-8.1.0RC6, php-7.4.26RC1, php-8.0.13RC1, php-8.1.0RC5, php-7.3.32, php-7.4.25, php-8.0.12, php-8.1.0RC4, php-8.0.12RC1, php-7.4.25RC1, php-8.1.0RC3, php-8.0.11, php-7.4.24, php-7.3.31, php-8.1.0RC2, php-7.4.24RC1, php-8.0.11RC1, php-8.1.0RC1, php-7.4.23, php-8.0.10, php-7.3.30, php-8.1.0beta3, php-8.0.10RC1, php-7.4.23RC1, php-8.1.0beta2, php-8.0.9, php-7.4.22, php-8.1.0beta1, php-7.4.22RC1, php-8.0.9RC1, php-8.1.0alpha3, php-7.4.21, php-7.3.29, php-8.0.8
# d72e82bf 28-Jun-2021 Stanislav Malyshev

Merge branch 'PHP-8.0'

* PHP-8.0:
Update NEWS
Fix #76448: Stack buffer overflow in firebird_info_cb
Fix #76449: SIGSEGV in firebird_handle_doer
Fix #76450: SIGSEGV in

Merge branch 'PHP-8.0'

* PHP-8.0:
Update NEWS
Fix #76448: Stack buffer overflow in firebird_info_cb
Fix #76449: SIGSEGV in firebird_handle_doer
Fix #76450: SIGSEGV in firebird_stmt_execute
Fix #76452: Crash while parsing blob data in firebird_fetch_blob
Fix #81122: SSRF bypass in FILTER_VALIDATE_URL

show more ...


# 892674ef 28-Jun-2021 Stanislav Malyshev

Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
Update NEWS
Fix #76448: Stack buffer overflow in firebird_info_cb
Fix #76449: SIGSEGV in firebird_handle_doer
Fix #7645

Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
Update NEWS
Fix #76448: Stack buffer overflow in firebird_info_cb
Fix #76449: SIGSEGV in firebird_handle_doer
Fix #76450: SIGSEGV in firebird_stmt_execute
Fix #76452: Crash while parsing blob data in firebird_fetch_blob
Fix #81122: SSRF bypass in FILTER_VALIDATE_URL

show more ...


# 2327e3d3 28-Jun-2021 Stanislav Malyshev

Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
Update NEWS
Fix #76448: Stack buffer overflow in firebird_info_cb
Fix #76449: SIGSEGV in firebird_handle_doer
Fix #7645

Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
Update NEWS
Fix #76448: Stack buffer overflow in firebird_info_cb
Fix #76449: SIGSEGV in firebird_handle_doer
Fix #76450: SIGSEGV in firebird_stmt_execute
Fix #76452: Crash while parsing blob data in firebird_fetch_blob
Fix #81122: SSRF bypass in FILTER_VALIDATE_URL

show more ...


Revision tags: php-8.1.0alpha2, php-7.4.21RC1, php-8.0.8RC1, php-8.1.0alpha1, php-8.0.7, php-7.4.20, php-8.0.7RC1, php-7.4.20RC1, php-8.0.6, php-7.4.19
# bcbf8aa0 30-Apr-2021 Christoph M. Becker

Fix #76450: SIGSEGV in firebird_stmt_execute

We need to verify that the `result_size` is not larger than our buffer,
and also should make sure that the `len` which is passed to
`isc_

Fix #76450: SIGSEGV in firebird_stmt_execute

We need to verify that the `result_size` is not larger than our buffer,
and also should make sure that the `len` which is passed to
`isc_vax_integer()` has a permissible value; otherwise we bail out.

show more ...

# 286162e9 05-May-2021 Christoph M. Becker

Fix #76452: Crash while parsing blob data in firebird_fetch_blob

We need to prevent integer overflow when calling `erealloc()` with
`len+1`.

# 01b3fc03 06-May-2021 KsaR

Update http->https in license (#6945)

1. Update: http://www.php.net/license/3_01.txt to https, as there is anyway server header "Location:" to https.
2. Update few license 3.0 to 3.01 as

Update http->https in license (#6945)

1. Update: http://www.php.net/license/3_01.txt to https, as there is anyway server header "Location:" to https.
2. Update few license 3.0 to 3.01 as 3.0 states "php 5.1.1, 4.1.1, and earlier".
3. In some license comments is "at through the world-wide-web" while most is without "at", so deleted.
4. fixed indentation in some files before |

show more ...

Revision tags: php-7.4.18, php-7.3.28, php-8.0.5, php-8.0.5RC1, php-7.4.18RC1, php-8.0.4RC1, php-7.4.17RC1, php-8.0.3, php-7.4.16, php-8.0.3RC1, php-7.4.16RC1, php-8.0.2, php-7.4.15, php-7.3.27, php-8.0.2RC1, php-7.4.15RC2, php-7.4.15RC1, php-8.0.1, php-7.4.14, php-7.3.26, php-7.4.14RC1, php-8.0.1RC1, php-7.3.26RC1, php-8.0.0, php-7.3.25, php-7.4.13, php-8.0.0RC5, php-7.4.13RC1, php-8.0.0RC4, php-7.3.25RC1, php-7.4.12, php-8.0.0RC3, php-7.3.24, php-8.0.0RC2, php-7.4.12RC1, php-7.3.24RC1, php-7.2.34, php-8.0.0rc1
# 5caaf40b 29-Sep-2020 George Peter Banyard

Introduce pseudo-keyword ZEND_FALLTHROUGH

And use it instead of comments

# 128082c8 17-Mar-2021 Christoph M. Becker

Initalize return_value before use

Otherwise we likely segfault[1]. We fix the same issue for
PDO_Firebird as well.

[1] <https://ci.appveyor.com/project/php/php-src/builds/38267

Initalize return_value before use

Otherwise we likely segfault[1]. We fix the same issue for
PDO_Firebird as well.

[1] <https://ci.appveyor.com/project/php/php-src/builds/38267250/job/6y3ngn1k6ryxx6j3?fullLog=true#L9783>

Closes GH-6785.

show more ...

# caa71003 17-Dec-2020 Nikita Popov

Rewrite PDO result binding

Instead of requiring the type to be determined in advance by the
describer function and then requiring get_col to return a buffer
of appropriate type, allo

Rewrite PDO result binding

Instead of requiring the type to be determined in advance by the
describer function and then requiring get_col to return a buffer
of appropriate type, allow get_col to return an arbitrary zval.
See UPGRADING.INTERNALS for a more detailed description of the
change.

This makes the result fetching simpler, more efficient and more
flexible. The general possibility already existed via the special
PDO_PARAM_ZVAL type, but the usage was very inconvenient and/or
inefficient. Now it's possible to easily implement behavior like
"return int if it fits, otherwise string" and to avoid any kind
of complex management of temporary buffers.

This also fixes bug #40913 (our second highest voted bug of all
time, for some reason). PARAM_LOB result bindings will now
consistently return a stream resource, independently of the used
database driver.

I've tried my best to update all PDO drivers for this change, but
some of the changes may be broken, as I cannot test or even build
some of these drivers (in particular PDO dblib and PDO oci).
Fixes are appreciated -- a working CI setup would be even more
appreciated ;)

show more ...

# cc23fcfc 21-Dec-2020 Nikita Popov

PDO Firebird: Fix uninitialized var warning

12345