History log of /PHP-8.2/UPGRADING (Results 451 – 475 of 1683)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 33e90491 14-Dec-2020 Nikita Popov

MySQLnd: Clean up and optimize mysqlnd result set handling

This is a larger overhaul of the mysqlnd result set infrastructure:

* Drop support for two different types of buffered re

MySQLnd: Clean up and optimize mysqlnd result set handling

This is a larger overhaul of the mysqlnd result set infrastructure:

* Drop support for two different types of buffered results sets
("c" and "zval"). Possibly these made sense at some earlier
time, but now (with minor adjustments) one option is strictly
worse than the other. Buffered result sets already buffer the
full row packets, from which zvals can be decoded. The "zval"
style additionally also buffered the decoded zvals. As result
sets, even buffered ones, are generally only traversed once,
this just ends up wasting memory. Now, a potentially useful
variation here would be to buffer the decoded zvals instead of
the row packets, but that's not what the code was doing.
* To make it really strictly better, pre-allocate the zval row
buffer and reuse it for all rows. Previously the "c" style always
allocated a new buffer for each row.
* The fetch_row API now provides a populated zval[]. The task of
populating an array is deferred to fetch_row_into, which also
avoids duplicating this code in multiple places. The fetch_row_c
API is also implemented on top of fetch_row now, rather than
duplicating large parts of the code.
* The row fetching code for prepared statements and normal result
sets has been mostly merged. These already used the same
infrastructure, but prepared statements used separate row
fetching functions that were nearly the same as the normal ones.
This requires passing the stmt into the result set, rather than
just a flag. The only part that remains separate is reading of
unbuffered results in the presence of PS cursors.

show more ...


# 890e4caf 14-Dec-2020 Nikita Popov

Drop support for max_length in mysqli_fetch_fields()

Retain the field, but always populate it with zero. This was
already the case for PS without length updating.

max_length has

Drop support for max_length in mysqli_fetch_fields()

Retain the field, but always populate it with zero. This was
already the case for PS without length updating.

max_length has nothing lost in the field metadata -- it is a
property of the specific result set, and requires scanning the
whole result set to compute. PHP itself never uses max_length
with mysqlnd, it is only exposed in the raw mysqli API.

Keeping it for just that purpose is not worthwhile given the costs
involved. People who actually need this for some reason can easily
calculate it themselves, while making it obvious that the
calculation requires a full result set scan.

show more ...


# 2b7eb0e2 13-Dec-2020 Christoph M. Becker

Disallow version_compare() $operator abbreviations

`version_compare()` does a sloppy check for the `$operators` argument
which allows arbitrary abbreviations of the supported operators t

Disallow version_compare() $operator abbreviations

`version_compare()` does a sloppy check for the `$operators` argument
which allows arbitrary abbreviations of the supported operators to be
accepted. This is both undocumented and unexpected, and could lead to
subtle BC breaks, if the order of the comparisions will be changed.
Therefore we change to strict comparisons.

Closes GH-6510.

show more ...


# c6d3c68f 13-Dec-2020 Anatol Belski

UPGRADING: Document algorithm specific hash options [ci skip]

Signed-off-by: Anatol Belski <ab@php.net>


# f1d11c11 18-Nov-2020 Christoph M. Becker

Fix #62004: SplFileObject: fgets after seek returns wrong line

As it is, `::seek(0)` sets the file pointer to the beginning of the
file, but `::seek($n)` where `$n > 0` sets the file poi

Fix #62004: SplFileObject: fgets after seek returns wrong line

As it is, `::seek(0)` sets the file pointer to the beginning of the
file, but `::seek($n)` where `$n > 0` sets the file pointer to the
beginning of the following line, having line `$n` already read into the
line buffer. This is pretty inconsistent; we fix it by always seeking
to the beginning of the line.

We also add a test case for the duplicate bug #46569.

Closes GH-6434.

show more ...


# a55402d0 24-Nov-2020 George Peter Banyard

Rename XmlParser to XMLParser for consistency with XMLWriter/XMLReader


# 306555e1 25-Nov-2020 Nikita Popov

Add UPGRADING note for PDO::inTransaction()

[ci skip]


# cdd5ec7a 24-Nov-2020 Florian Engelhardt

[ci skip] Fix misspelled method names

Closes GH-6452.


# 7965bc36 24-Nov-2020 Nikita Popov

Use pkg-config for libargon2

We already tried this in PHP 7.4, but ran into issues, because
alpine did not support pkg-config for libargon2 (or had a broken
pc file, not sure). The A

Use pkg-config for libargon2

We already tried this in PHP 7.4, but ran into issues, because
alpine did not support pkg-config for libargon2 (or had a broken
pc file, not sure). The Alpine issue has been resolved in the
meantime, so let's give this another try.

show more ...


# 860f46e2 20-Nov-2020 jrfnl

UPGRADING: (real) cast has been removed

.. but the removal wasn't mentioned in the `UPGRADING` docs yet.

Ref:
* https://github.com/php/php-src/pull/5220
* https://github.com

UPGRADING: (real) cast has been removed

.. but the removal wasn't mentioned in the `UPGRADING` docs yet.

Ref:
* https://github.com/php/php-src/pull/5220
* https://github.com/php/php-src/commit/c9db32271a8083721582c5ec1dd09c4d4f562c74

Closes GH-6440.

[ci-skip]

show more ...


# 7bbed180 14-Nov-2020 Pavel Djundik

[ci skip] Add note that imagedestroy() no longer has an effect

Closes GH-6427.


# 4d16d3cc 02-Nov-2020 Chris Brown

Fix typo in UPGRADING

Closes GH-6395.


# 94938e4e 02-Nov-2020 Chris Brown

[ci skip] Fix small typo

`as` -> `was`

Closes GH-6394.


# c3a6debc 10-Oct-2020 Jakub Zelenka

Bump minimal OpenSSL version to 1.0.2


# 347a3f87 31-Oct-2020 Anatol Belski

UPGRADING: Add murmurhash note [ci skip]

Signed-off-by: Anatol Belski <ab@php.net>


# 2693f799 28-Oct-2020 Dmitry Stogov

Don't force rebuild of symbol table, when populating $http_response_header variable by the HTTP stream wrapper


# d776d25a 27-Oct-2020 Nikita Popov

Don't throw for out of bounds offsets in strspn()

Make strspn($str1, $str2, $offset, $length) behaviorally
equivalent to strspn(substr($str1, $offset, $length), $str2)
by not throwin

Don't throw for out of bounds offsets in strspn()

Make strspn($str1, $str2, $offset, $length) behaviorally
equivalent to strspn(substr($str1, $offset, $length), $str2)
by not throwing for out of bounds offset.

There have been two reports that this change cause issues,
including bug #80285.

show more ...


# 9c28dc0c 24-Oct-2020 Thiemo Kreuz

Document breaking change in strspn/strcspn

See https://phabricator.wikimedia.org/T264502.

[ci skip]


# fab76e3a 25-Oct-2020 Christoph M. Becker

[ci skip] Fix typos in UPGRADING


# c97da0f8 19-Oct-2020 Nikita Popov

Revert "Fix bug #64865: Use CONTEXT_DOCUMENT_ROOT for scanning dir tree"

This reverts commit 98bfad738ad2734dfba5733323f7ba733daf3ec3.

This doesn't work well in some setups, see bug

Revert "Fix bug #64865: Use CONTEXT_DOCUMENT_ROOT for scanning dir tree"

This reverts commit 98bfad738ad2734dfba5733323f7ba733daf3ec3.

This doesn't work well in some setups, see bug #80113 and GH-5051.
Reverting this for now.

show more ...


# 521c36c8 18-Oct-2020 Christoph M. Becker

Remove IGNORE_URL_WIN macro

This macro is defined to zero as of PHP 5.0.0, and as the comment
indicates, is no longer relevant. Thus, we remove the definition and
all usages from th

Remove IGNORE_URL_WIN macro

This macro is defined to zero as of PHP 5.0.0, and as the comment
indicates, is no longer relevant. Thus, we remove the definition and
all usages from the core and bundled extensions.

Closes GH-6351.

show more ...


# 6669426a 16-Oct-2020 Anatoly Pashin

[ci skip] Make it clear what GD uses instead of resources

Closes GH-6342.


# d6264b09 13-Oct-2020 Máté Kocsis

Verify parameter names of function aliases

Closes GH-6335


# 5582490b 13-Oct-2020 Nikita Popov

Normalize mb_ereg() return value

mb_ereg()/mb_eregi() currently have an inconsistent return value
based on whether the $matches parameter is passed or not:

> Returns the byte le

Normalize mb_ereg() return value

mb_ereg()/mb_eregi() currently have an inconsistent return value
based on whether the $matches parameter is passed or not:

> Returns the byte length of the matched string if a match for
> pattern was found in string, or FALSE if no matches were found
> or an error occurred.
>
> If the optional parameter regs was not passed or the length of
> the matched string is 0, this function returns 1.

Coupling this behavior to the $matches parameter doesn't make sense
-- we know the match length either way, there is no technical
reason to distinguish them. However, returning the match length
is not particularly useful either, especially due to the need to
convert 0-length into 1-length to satisfy "truthy" checks. We
could always return 1, which would kind of match the behavior of
preg_match() -- however, preg_match() actually returns the number
of matches, which is 0 or 1 for preg_match(), while false signals
an error. However, mb_ereg() returns false both for no match and
for an error. This would result in an odd 1|false return value.

The patch canonicalizes mb_ereg() to always return a boolean,
where true indicates a match and false indicates no match or error.
This also matches the behavior of the mb_ereg_match() and
mb_ereg_search() functions.

This fixes the default value integrity violation in PHP 8.

Closes GH-6331.

show more ...


# fbf221ca 11-Oct-2020 Christoph M. Becker

XMLReader::open() and XMLReader::xml() are now static


1...<<11121314151617181920>>...68