From d244ac46a1c2b024b7d22f44167c767a974c6a78 Mon Sep 17 00:00:00 2001 From: Kalle Sommer Nielsen Date: Mon, 17 Jan 2011 11:20:54 +0000 Subject: [PATCH] MFT: Added 'db' and 'catalog' keys to the field fetching functions (FR #39847) --- NEWS | 6 ++-- ext/mysqli/mysqli_api.c | 2 ++ ext/mysqli/tests/047.phpt | 36 +++++++++++++++---- ext/mysqli/tests/mysqli_fetch_field.phpt | 18 ++++++++-- .../tests/mysqli_fetch_field_direct.phpt | 6 +++- .../tests/mysqli_fetch_field_direct_oo.phpt | 6 +++- ext/mysqli/tests/mysqli_fetch_field_oo.phpt | 12 +++++-- ext/mysqli/tests/mysqli_fetch_fields.phpt | 12 +++++-- ext/mysqli/tests/mysqli_field_seek.phpt | 24 ++++++++++--- ext/mysqli/tests/mysqli_field_tell.phpt | 6 +++- ..._stmt_get_result_metadata_fetch_field.phpt | 24 ++++++++++--- .../tests/mysqli_stmt_result_metadata.phpt | 6 +++- 12 files changed, 131 insertions(+), 27 deletions(-) diff --git a/NEWS b/NEWS index c1fce02078..3925767bbc 100644 --- a/NEWS +++ b/NEWS @@ -50,13 +50,15 @@ (Stas). - MySQL Improved extension: + . Added 'db' and 'catalog' keys to the field fetching functions (FR #39847). + (Kalle) . Fixed bug #53503 (mysqli::query returns false after successful LOAD DATA query). (Kalle, Andrey) . Fixed bug #53425 (mysqli_real_connect() ignores client flags when built to call libmysql). (Kalle, tre-php-net at crushedhat dot com) . Fixed buggy counting of affected rows when using the text protocol. The - collected statistics were wrong when multi_query was used with mysqlnd. - (Andrey) + collected statistics were wrong when multi_query was used with mysqlnd + (Andrey) - OpenSSL extension: . Implemented FR #53447 (Cannot disable SessionTicket extension for servers diff --git a/ext/mysqli/mysqli_api.c b/ext/mysqli/mysqli_api.c index 5c8507c4a5..7e28cce269 100644 --- a/ext/mysqli/mysqli_api.c +++ b/ext/mysqli/mysqli_api.c @@ -1052,6 +1052,8 @@ static void php_add_field_properties(zval *value, const MYSQL_FIELD *field TSRML add_property_string(value, "table", (char *) (field->table ? field->table : ""), 1); add_property_string(value, "orgtable", (char *) (field->org_table ? field->org_table : ""), 1); add_property_string(value, "def", (field->def ? field->def : ""), 1); + add_property_string(value, "db", (field->db ? field->db : ""), 1); + add_property_string(value, "catalog", (field->catalog ? field->catalog : ""), 1); add_property_long(value, "max_length", field->max_length); add_property_long(value, "length", field->length); diff --git a/ext/mysqli/tests/047.phpt b/ext/mysqli/tests/047.phpt index 65c951c080..3e48f0e343 100644 --- a/ext/mysqli/tests/047.phpt +++ b/ext/mysqli/tests/047.phpt @@ -60,7 +60,7 @@ mysqli_close($link); === fetch_fields === array(2) { [0]=> - object(stdClass)#5 (11) { + object(stdClass)#5 (13) { [%u|b%"name"]=> %unicode|string%(3) "foo" [%u|b%"orgname"]=> @@ -71,6 +71,10 @@ array(2) { %unicode|string%(13) "test_affected" [%u|b%"def"]=> %unicode|string%(0) "" + [%u|b%"db"]=> + %unicode|string%(4) "test" + [%u|b%"catalog"]=> + %unicode|string%(3) "def" [%u|b%"max_length"]=> int(0) [%u|b%"length"]=> @@ -85,7 +89,7 @@ array(2) { int(0) } [1]=> - object(stdClass)#6 (11) { + object(stdClass)#6 (13) { [%u|b%"name"]=> %unicode|string%(3) "bar" [%u|b%"orgname"]=> @@ -96,6 +100,10 @@ array(2) { %unicode|string%(13) "test_affected" [%u|b%"def"]=> %unicode|string%(0) "" + [%u|b%"db"]=> + %unicode|string%(4) "test" + [%u|b%"catalog"]=> + %unicode|string%(3) "def" [%u|b%"max_length"]=> int(0) [%u|b%"length"]=> @@ -112,7 +120,7 @@ array(2) { } === fetch_field_direct === -object(stdClass)#6 (11) { +object(stdClass)#6 (13) { [%u|b%"name"]=> %unicode|string%(3) "foo" [%u|b%"orgname"]=> @@ -123,6 +131,10 @@ object(stdClass)#6 (11) { %unicode|string%(13) "test_affected" [%u|b%"def"]=> %unicode|string%(0) "" + [%u|b%"db"]=> + %unicode|string%(4) "test" + [%u|b%"catalog"]=> + %unicode|string%(3) "def" [%u|b%"max_length"]=> int(0) [%u|b%"length"]=> @@ -136,7 +148,7 @@ object(stdClass)#6 (11) { [%u|b%"decimals"]=> int(0) } -object(stdClass)#6 (11) { +object(stdClass)#6 (13) { [%u|b%"name"]=> %unicode|string%(3) "bar" [%u|b%"orgname"]=> @@ -147,6 +159,10 @@ object(stdClass)#6 (11) { %unicode|string%(13) "test_affected" [%u|b%"def"]=> %unicode|string%(0) "" + [%u|b%"db"]=> + %unicode|string%(4) "test" + [%u|b%"catalog"]=> + %unicode|string%(3) "def" [%u|b%"max_length"]=> int(0) [%u|b%"length"]=> @@ -162,7 +178,7 @@ object(stdClass)#6 (11) { } === fetch_field === -object(stdClass)#6 (11) { +object(stdClass)#6 (13) { [%u|b%"name"]=> %unicode|string%(3) "foo" [%u|b%"orgname"]=> @@ -173,6 +189,10 @@ object(stdClass)#6 (11) { %unicode|string%(13) "test_affected" [%u|b%"def"]=> %unicode|string%(0) "" + [%u|b%"db"]=> + %unicode|string%(4) "test" + [%u|b%"catalog"]=> + %unicode|string%(3) "def" [%u|b%"max_length"]=> int(0) [%u|b%"length"]=> @@ -186,7 +206,7 @@ object(stdClass)#6 (11) { [%u|b%"decimals"]=> int(0) } -object(stdClass)#5 (11) { +object(stdClass)#5 (13) { [%u|b%"name"]=> %unicode|string%(3) "bar" [%u|b%"orgname"]=> @@ -197,6 +217,10 @@ object(stdClass)#5 (11) { %unicode|string%(13) "test_affected" [%u|b%"def"]=> %unicode|string%(0) "" + [%u|b%"db"]=> + %unicode|string%(4) "test" + [%u|b%"catalog"]=> + %unicode|string%(3) "def" [%u|b%"max_length"]=> int(0) [%u|b%"length"]=> diff --git a/ext/mysqli/tests/mysqli_fetch_field.phpt b/ext/mysqli/tests/mysqli_fetch_field.phpt index 4dde6c9aaf..92c1e648aa 100644 --- a/ext/mysqli/tests/mysqli_fetch_field.phpt +++ b/ext/mysqli/tests/mysqli_fetch_field.phpt @@ -79,7 +79,7 @@ require_once('skipifconnectfailure.inc'); require_once("clean_table.inc"); ?> --EXPECTF-- -object(stdClass)#%d (11) { +object(stdClass)#%d (13) { [%u|b%"name"]=> %unicode|string%(2) "ID" [%u|b%"orgname"]=> @@ -90,6 +90,10 @@ object(stdClass)#%d (11) { %unicode|string%(4) "test" [%u|b%"def"]=> %unicode|string%(0) "" + [%u|b%"db"]=> + %unicode|string%(4) "test" + [%u|b%"catalog"]=> + %unicode|string%(3) "def" [%u|b%"max_length"]=> int(1) [%u|b%"length"]=> @@ -103,7 +107,7 @@ object(stdClass)#%d (11) { [%u|b%"decimals"]=> int(0) } -object(stdClass)#%d (11) { +object(stdClass)#%d (13) { [%u|b%"name"]=> %unicode|string%(5) "label" [%u|b%"orgname"]=> @@ -114,6 +118,10 @@ object(stdClass)#%d (11) { %unicode|string%(4) "test" [%u|b%"def"]=> %unicode|string%(0) "" + [%u|b%"db"]=> + %unicode|string%(4) "test" + [%u|b%"catalog"]=> + %unicode|string%(3) "def" [%u|b%"max_length"]=> int(%d) [%u|b%"length"]=> @@ -134,7 +142,7 @@ array(1) { [%u|b%"_default_test"]=> %unicode|string%(1) "2" } -object(stdClass)#%d (11) { +object(stdClass)#%d (13) { [%u|b%"name"]=> %unicode|string%(13) "_default_test" [%u|b%"orgname"]=> @@ -145,6 +153,10 @@ object(stdClass)#%d (11) { %unicode|string%(4) "test" [%u|b%"def"]=> %unicode|string%(0) "" + [%u|b%"db"]=> + %unicode|string%(4) "test" + [%u|b%"catalog"]=> + %unicode|string%(3) "def" [%u|b%"max_length"]=> int(1) [%u|b%"length"]=> diff --git a/ext/mysqli/tests/mysqli_fetch_field_direct.phpt b/ext/mysqli/tests/mysqli_fetch_field_direct.phpt index 33c5a0cf30..bfccea657c 100644 --- a/ext/mysqli/tests/mysqli_fetch_field_direct.phpt +++ b/ext/mysqli/tests/mysqli_fetch_field_direct.phpt @@ -47,7 +47,7 @@ require_once('skipifconnectfailure.inc'); --EXPECTF-- Warning: mysqli_fetch_field_direct(): Field offset is invalid for resultset in %s on line %d bool(false) -object(stdClass)#%d (11) { +object(stdClass)#%d (13) { [%u|b%"name"]=> %unicode|string%(2) "ID" [%u|b%"orgname"]=> @@ -58,6 +58,10 @@ object(stdClass)#%d (11) { %unicode|string%(4) "test" [%u|b%"def"]=> %unicode|string%(0) "" + [%u|b%"db"]=> + %unicode|string%(4) "test" + [%u|b%"catalog"]=> + %unicode|string%(3) "def" [%u|b%"max_length"]=> int(%d) [%u|b%"length"]=> diff --git a/ext/mysqli/tests/mysqli_fetch_field_direct_oo.phpt b/ext/mysqli/tests/mysqli_fetch_field_direct_oo.phpt index 23d46f3092..b52401b66d 100644 --- a/ext/mysqli/tests/mysqli_fetch_field_direct_oo.phpt +++ b/ext/mysqli/tests/mysqli_fetch_field_direct_oo.phpt @@ -56,7 +56,7 @@ require_once('skipifconnectfailure.inc'); --EXPECTF-- Warning: mysqli_result::fetch_field_direct(): Field offset is invalid for resultset in %s on line %d bool(false) -object(stdClass)#%d (11) { +object(stdClass)#%d (13) { [%u|b%"name"]=> %unicode|string%(2) "ID" [%u|b%"orgname"]=> @@ -67,6 +67,10 @@ object(stdClass)#%d (11) { %unicode|string%(4) "test" [%u|b%"def"]=> %unicode|string%(0) "" + [%u|b%"db"]=> + %unicode|string%(4) "test" + [%u|b%"catalog"]=> + %unicode|string%(3) "def" [%u|b%"max_length"]=> int(%d) [%u|b%"length"]=> diff --git a/ext/mysqli/tests/mysqli_fetch_field_oo.phpt b/ext/mysqli/tests/mysqli_fetch_field_oo.phpt index 0130f0e7f2..ad13d46816 100644 --- a/ext/mysqli/tests/mysqli_fetch_field_oo.phpt +++ b/ext/mysqli/tests/mysqli_fetch_field_oo.phpt @@ -63,7 +63,7 @@ require_once('skipifconnectfailure.inc'); require_once("clean_table.inc"); ?> --EXPECTF-- -object(stdClass)#%d (11) { +object(stdClass)#%d (13) { [%u|b%"name"]=> %unicode|string%(2) "ID" [%u|b%"orgname"]=> @@ -74,6 +74,10 @@ object(stdClass)#%d (11) { %unicode|string%(4) "test" [%u|b%"def"]=> %unicode|string%(0) "" + [%u|b%"db"]=> + %unicode|string%(4) "test" + [%u|b%"catalog"]=> + %unicode|string%(3) "def" [%u|b%"max_length"]=> int(1) [%u|b%"length"]=> @@ -87,7 +91,7 @@ object(stdClass)#%d (11) { [%u|b%"decimals"]=> int(0) } -object(stdClass)#%d (11) { +object(stdClass)#%d (13) { [%u|b%"name"]=> %unicode|string%(5) "label" [%u|b%"orgname"]=> @@ -98,6 +102,10 @@ object(stdClass)#%d (11) { %unicode|string%(4) "test" [%u|b%"def"]=> %unicode|string%(0) "" + [%u|b%"db"]=> + %unicode|string%(4) "test" + [%u|b%"catalog"]=> + %unicode|string%(3) "def" [%u|b%"max_length"]=> int(%d) [%u|b%"length"]=> diff --git a/ext/mysqli/tests/mysqli_fetch_fields.phpt b/ext/mysqli/tests/mysqli_fetch_fields.phpt index 885c7338b5..1426bb325f 100644 --- a/ext/mysqli/tests/mysqli_fetch_fields.phpt +++ b/ext/mysqli/tests/mysqli_fetch_fields.phpt @@ -60,7 +60,7 @@ require_once('skipifconnectfailure.inc'); require_once("clean_table.inc"); ?> --EXPECTF-- -object(stdClass)#%d (11) { +object(stdClass)#%d (13) { [%u|b%"name"]=> %unicode|string%(2) "ID" [%u|b%"orgname"]=> @@ -71,6 +71,10 @@ object(stdClass)#%d (11) { %unicode|string%(4) "test" [%u|b%"def"]=> %unicode|string%(0) "" + [%u|b%"db"]=> + %unicode|string%(4) "test" + [%u|b%"catalog"]=> + %unicode|string%(3) "def" [%u|b%"max_length"]=> int(1) [%u|b%"length"]=> @@ -84,7 +88,7 @@ object(stdClass)#%d (11) { [%u|b%"decimals"]=> int(0) } -object(stdClass)#%d (11) { +object(stdClass)#%d (13) { [%u|b%"name"]=> %unicode|string%(5) "label" [%u|b%"orgname"]=> @@ -95,6 +99,10 @@ object(stdClass)#%d (11) { %unicode|string%(4) "test" [%u|b%"def"]=> %unicode|string%(0) "" + [%u|b%"db"]=> + %unicode|string%(4) "test" + [%u|b%"catalog"]=> + %unicode|string%(3) "def" [%u|b%"max_length"]=> int(1) [%u|b%"length"]=> diff --git a/ext/mysqli/tests/mysqli_field_seek.phpt b/ext/mysqli/tests/mysqli_field_seek.phpt index 1da42c2833..ee6e11cff9 100644 --- a/ext/mysqli/tests/mysqli_field_seek.phpt +++ b/ext/mysqli/tests/mysqli_field_seek.phpt @@ -122,7 +122,7 @@ require_once('skipifconnectfailure.inc'); --EXPECTF-- Warning: mysqli_field_seek(): Invalid field offset in %s on line %d bool(false) -object(stdClass)#%d (11) { +object(stdClass)#%d (13) { [%u|b%"name"]=> %unicode|string%(2) "id" [%u|b%"orgname"]=> @@ -133,6 +133,10 @@ object(stdClass)#%d (11) { %unicode|string%(4) "test" [%u|b%"def"]=> %unicode|string%(0) "" + [%u|b%"db"]=> + %unicode|string%(4) "test" + [%u|b%"catalog"]=> + %unicode|string%(3) "def" [%u|b%"max_length"]=> int(0) [%u|b%"length"]=> @@ -147,7 +151,7 @@ object(stdClass)#%d (11) { int(0) } bool(true) -object(stdClass)#%d (11) { +object(stdClass)#%d (13) { [%u|b%"name"]=> %unicode|string%(2) "id" [%u|b%"orgname"]=> @@ -158,6 +162,10 @@ object(stdClass)#%d (11) { %unicode|string%(4) "test" [%u|b%"def"]=> %unicode|string%(0) "" + [%u|b%"db"]=> + %unicode|string%(4) "test" + [%u|b%"catalog"]=> + %unicode|string%(3) "def" [%u|b%"max_length"]=> int(0) [%u|b%"length"]=> @@ -172,7 +180,7 @@ object(stdClass)#%d (11) { int(0) } bool(true) -object(stdClass)#%d (11) { +object(stdClass)#%d (13) { [%u|b%"name"]=> %unicode|string%(5) "label" [%u|b%"orgname"]=> @@ -183,6 +191,10 @@ object(stdClass)#%d (11) { %unicode|string%(4) "test" [%u|b%"def"]=> %unicode|string%(0) "" + [%u|b%"db"]=> + %unicode|string%(4) "test" + [%u|b%"catalog"]=> + %unicode|string%(3) "def" [%u|b%"max_length"]=> int(%d) [%u|b%"length"]=> @@ -205,7 +217,7 @@ bool(false) Warning: mysqli_field_seek(): Invalid field offset in %s on line %d bool(false) bool(true) -object(stdClass)#3 (11) { +object(stdClass)#3 (13) { [%u|b%"name"]=> %unicode|string%(5) "_null" [%u|b%"orgname"]=> @@ -216,6 +228,10 @@ object(stdClass)#3 (11) { %unicode|string%(0) "" [%u|b%"def"]=> %unicode|string%(0) "" + [%u|b%"db"]=> + %unicode|string%(0) "" + [%u|b%"catalog"]=> + %unicode|string%(3) "def" [%u|b%"max_length"]=> int(0) [%u|b%"length"]=> diff --git a/ext/mysqli/tests/mysqli_field_tell.phpt b/ext/mysqli/tests/mysqli_field_tell.phpt index f1e43c4912..a31b93529a 100644 --- a/ext/mysqli/tests/mysqli_field_tell.phpt +++ b/ext/mysqli/tests/mysqli_field_tell.phpt @@ -64,7 +64,7 @@ int(0) Warning: mysqli_field_seek() expects exactly 2 parameters, 1 given in %s on line %d NULL int(0) -object(stdClass)#%d (11) { +object(stdClass)#%d (13) { [%u|b%"name"]=> %unicode|string%(2) "id" [%u|b%"orgname"]=> @@ -75,6 +75,10 @@ object(stdClass)#%d (11) { %unicode|string%(4) "test" [%u|b%"def"]=> %unicode|string%(0) "" + [%u|b%"db"]=> + %unicode|string%(4) "test" + [%u|b%"catalog"]=> + %unicode|string%(3) "def" [%u|b%"max_length"]=> int(0) [%u|b%"length"]=> diff --git a/ext/mysqli/tests/mysqli_stmt_get_result_metadata_fetch_field.phpt b/ext/mysqli/tests/mysqli_stmt_get_result_metadata_fetch_field.phpt index 23d045a22b..1c2b49d169 100644 --- a/ext/mysqli/tests/mysqli_stmt_get_result_metadata_fetch_field.phpt +++ b/ext/mysqli/tests/mysqli_stmt_get_result_metadata_fetch_field.phpt @@ -61,7 +61,7 @@ if (!function_exists('mysqli_stmt_get_result')) require_once("clean_table.inc"); ?> --EXPECTF-- -object(stdClass)#%d (11) { +object(stdClass)#%d (13) { [%u|b%"name"]=> %unicode|string%(2) "id" [%u|b%"orgname"]=> @@ -72,6 +72,10 @@ object(stdClass)#%d (11) { %unicode|string%(4) "test" [%u|b%"def"]=> %unicode|string%(0) "" + [%u|b%"db"]=> + %unicode|string%(4) "test" + [%u|b%"catalog"]=> + %unicode|string%(3) "def" [%u|b%"max_length"]=> int(0) [%u|b%"length"]=> @@ -85,7 +89,7 @@ object(stdClass)#%d (11) { [%u|b%"decimals"]=> int(0) } -object(stdClass)#%d (11) { +object(stdClass)#%d (13) { [%u|b%"name"]=> %unicode|string%(5) "label" [%u|b%"orgname"]=> @@ -96,6 +100,10 @@ object(stdClass)#%d (11) { %unicode|string%(4) "test" [%u|b%"def"]=> %unicode|string%(0) "" + [%u|b%"db"]=> + %unicode|string%(4) "test" + [%u|b%"catalog"]=> + %unicode|string%(3) "def" [%u|b%"max_length"]=> int(%d) [%u|b%"length"]=> @@ -109,7 +117,7 @@ object(stdClass)#%d (11) { [%u|b%"decimals"]=> int(0) } -object(stdClass)#%d (11) { +object(stdClass)#%d (13) { [%u|b%"name"]=> %unicode|string%(3) "_id" [%u|b%"orgname"]=> @@ -120,6 +128,10 @@ object(stdClass)#%d (11) { %unicode|string%(0) "" [%u|b%"def"]=> %unicode|string%(0) "" + [%u|b%"db"]=> + %unicode|string%(0) "" + [%u|b%"catalog"]=> + %unicode|string%(3) "def" [%u|b%"max_length"]=> int(0) [%u|b%"length"]=> @@ -133,7 +145,7 @@ object(stdClass)#%d (11) { [%u|b%"decimals"]=> int(0) } -object(stdClass)#%d (11) { +object(stdClass)#%d (13) { [%u|b%"name"]=> %unicode|string%(8) "___label" [%u|b%"orgname"]=> @@ -144,6 +156,10 @@ object(stdClass)#%d (11) { %unicode|string%(0) "" [%u|b%"def"]=> %unicode|string%(0) "" + [%u|b%"db"]=> + %unicode|string%(0) "" + [%u|b%"catalog"]=> + %unicode|string%(3) "def" [%u|b%"max_length"]=> int(%d) [%u|b%"length"]=> diff --git a/ext/mysqli/tests/mysqli_stmt_result_metadata.phpt b/ext/mysqli/tests/mysqli_stmt_result_metadata.phpt index f9fd3cf3ca..bd742a2163 100644 --- a/ext/mysqli/tests/mysqli_stmt_result_metadata.phpt +++ b/ext/mysqli/tests/mysqli_stmt_result_metadata.phpt @@ -101,7 +101,7 @@ require_once('skipifconnectfailure.inc'); Warning: mysqli_stmt_result_metadata(): invalid object or resource mysqli_stmt in %s on line %d -object(stdClass)#5 (%d) { +object(stdClass)#5 (13) { [%u|b%"name"]=> %unicode|string%(2) "id" [%u|b%"orgname"]=> @@ -112,6 +112,10 @@ object(stdClass)#5 (%d) { %unicode|string%(4) "test" [%u|b%"def"]=> %unicode|string%(0) "" + [%u|b%"db"]=> + %unicode|string%(4) "test" + [%u|b%"catalog"]=> + %unicode|string%(3) "def" [%u|b%"max_length"]=> int(0) [%u|b%"length"]=> -- 2.40.0