Skip to content
forked from php/php-src

sync master #5

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 91 commits into from
Sep 20, 2020
Merged

sync master #5

merged 91 commits into from
Sep 20, 2020

Conversation

chopins
Copy link
Owner

@chopins chopins commented Sep 20, 2020

No description provided.

mbeccati and others added 30 commits September 16, 2020 10:06
follow-up to 7a95e94 for MySQL < 5.6
This showed up in ext/mysqli/tests/mysqli_change_user.phpt on azure
today. Not seeing it locally though, and also not sure why it decided
to show up now...
"cannot be used in MYSQLI_USE_RESULT mode" sounds more correct than "cannot be used with MYSQLI_USE_RESULT"

Closes GH-6137.
My git client (GitHub Desktop) decided to commit and push my staged changes, so arginfo generation was not done with the previous commit.
This changes GMP functions to accept a GMP|string|int union with
standard semantics (and thus also uses it in function signatures).

Relative to the previous behavior, this means that GMP functions
in weak mode now also accept float and null, and in strict mode no
longer accept bool, and have full type information.

Closes GH-6139.
In preparation for generating method signatures for the manual.

This change gets rid of bogus false|null return types, a few unnecessary trailing backslashes, and settles on using ? when possible for nullable types.
Aligning the behaviour of fetch_field and field_seek.
Skip over leading EXT_NOP, if it exists.
Add db2_execute() to the list of functions accessing the local
scope. Ideally the API wouldn't do that, but it seems most
pragmatic to address this on the opcache side at this point.
* PHP-7.3:
  Fixed bug #80083
* PHP-7.4:
  Fixed bug #80083
* PHP-7.3:
  ext/soap: Compare Set-Cookie header case-insensitively
* PHP-7.4:
  ext/soap: Compare Set-Cookie header case-insensitively
Tested with:
* mysql-5.6.49-linux-glibc2.12-x86_64
* mysql-5.7.31-linux-glibc2.12-x86_64
* mysql-8.0.21-linux-glibc2.17-x86_64
* mariadb-10.5.6

configure --with-mysqli=/usr/local/$version/bin/mysql_config   --with-pdo-mysql=/usr/local/$version

MySQL-8.0 removed my_bool
Some options where deprecated in mysql-8.0

MY_CHARSET_INFO used with exposed api mysql_get_character_set_info
rather than internal structures.
MySQL-8.0 removes option MYSQLI_OPT_SSL_VERIFY_SERVER_CERT
The mysqlclient_r library exists in mysql-5.6 for compatibility only.

Later versions have it removed.
* PHP-7.3:
  pdo_mysql/mysqli (native) libmysqlclient_r no-longer used
  mysql: native mysql-8.0 uses _Bool
  mysqli: use native api
* PHP-7.4:
  pdo_mysql/mysqli (native) libmysqlclient_r no-longer used
  mysql: native mysql-8.0 uses _Bool
  mysqli: use native api
nikic and others added 29 commits September 18, 2020 14:28
This should fix most of the remaining issues with tabs and spaces
being mixed in tests.
Travis on 7.3 is showing this error:

> The size of BLOB/TEXT data inserted in one transaction is greater
> than 10% of redo log size. Increase the redo log size using
> innodb_log_file_size.

Force MyISAM engine to avoid this.
* PHP-7.3:
  Use MyISAM engine for new test
* PHP-7.4:
  Use MyISAM engine for new test
Requires the use of mysql_real_escape_string_quote().
* PHP-7.3:
  Support NO_BACKSLASH_ESCAPES with newer libmysqlclient
* PHP-7.4:
  Support NO_BACKSLASH_ESCAPES with newer libmysqlclient
MariaDB versioning created a mess with regarding testing
features based on version. We sidestep the problem here
by assuming the extensions are present, and if a syntax
error occurs with a SQL mode TRANS_START_READ_WRITE |
TRANS_START_READ_ONLY enabled, then output the same
warning as before.
* PHP-7.3:
  Fix #78179: mysqli/mysqlnd transaction extensions
* PHP-7.4:
  Fix #78179: mysqli/mysqlnd transaction extensions
And drop the last remaining uses of it.
Drop various ZPP checks and make them PASS
Add CONFLICT file as the tests all hit the same mailbox
The `zend_system_id` is a (true global) system ID that fingerprints a process state. When extensions add engine hooks during MINIT/startup, entropy is added the system ID for each hook. This allows extensions to identify that changes have been made to the engine since the last PHP process restart.

Closes GH-5871
All the other method modifiers in stubs follow the guidelines of PSR-12, so let's use it in case of PhpToken::__construct() as well.
Closure::bind() and Closure::bindTo() are currently reported as aliases in stubs because they have a single implementation. They are not aliases in fact though, they just use zend_parse_method_parameters() cleverly.

Thus, let's separate their implementation so that we don't have to alias Closure::bindTo() anymore. This will also have the advantage that the two ZPP implementations become more clear.

Closes GH-6169
* PHP-7.3:
  Fix mysqli build with mysqlnd and without PDO
* PHP-7.4:
  Fix mysqli build with mysqlnd and without PDO
Given that this executes a random function with zero parameters,
actually executing the code doesn't make sense.

This should fix the imap + asan build.
URIs with a 0 port are generally valid, so `parse_url()` should
recognize such URIs, but still report the port as missing.

Co-authored-by: twosee <[email protected]>

Closes GH-6152.
* PHP-7.3:
  Fix #80114: parse_url does not accept URLs with port 0
* PHP-7.4:
  Fix #80114: parse_url does not accept URLs with port 0
@chopins chopins merged commit ee2ba03 into chopins:master Sep 20, 2020
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.