mirror of
https://github.com/php/php-src.git
synced 2026-03-24 00:02:20 +01:00
Fix GH-20122: getColumnMeta() for JSON-column in MySQL
While at it, also add VECTOR. Closes GH-20143.
This commit is contained in:
1
NEWS
1
NEWS
@@ -29,6 +29,7 @@ PHP NEWS
|
||||
- MySQLnd:
|
||||
. Fixed bug GH-8978 (SSL certificate verification fails (port doubled)).
|
||||
(nielsdos)
|
||||
. Fixed bug GH-20122 (getColumnMeta() for JSON-column in MySQL). (nielsdos)
|
||||
|
||||
- Opcache:
|
||||
. Fixed bug GH-20081 (access to uninitialized vars in preload_load()).
|
||||
|
||||
@@ -94,6 +94,7 @@ require_once 'skipifconnectfailure.inc';
|
||||
MYSQLI_TYPE_NEWDATE => 'MYSQLI_TYPE_NEWDATE - TODO add testing',
|
||||
MYSQLI_TYPE_INTERVAL => 'MYSQLI_TYPE_INTERVAL - TODO add testing',
|
||||
MYSQLI_TYPE_GEOMETRY => 'MYSQLI_TYPE_GEOMETRY - TODO add testing',
|
||||
MYSQLI_TYPE_JSON => array('JSON', '[]'),
|
||||
);
|
||||
|
||||
$datatypes[MYSQLI_TYPE_NEWDECIMAL] = array('DECIMAL', '1.1');
|
||||
|
||||
@@ -748,6 +748,12 @@ static char *type_to_name_native(int type) /* {{{ */
|
||||
PDO_MYSQL_NATIVE_TYPE_NAME(DATE)
|
||||
#ifdef FIELD_TYPE_NEWDATE
|
||||
PDO_MYSQL_NATIVE_TYPE_NAME(NEWDATE)
|
||||
#endif
|
||||
#ifdef FIELD_TYPE_VECTOR
|
||||
PDO_MYSQL_NATIVE_TYPE_NAME(VECTOR)
|
||||
#endif
|
||||
#ifdef FIELD_TYPE_JSON
|
||||
PDO_MYSQL_NATIVE_TYPE_NAME(JSON)
|
||||
#endif
|
||||
PDO_MYSQL_NATIVE_TYPE_NAME(TIME)
|
||||
PDO_MYSQL_NATIVE_TYPE_NAME(DATETIME)
|
||||
|
||||
33
ext/pdo_mysql/tests/gh20122.phpt
Normal file
33
ext/pdo_mysql/tests/gh20122.phpt
Normal file
@@ -0,0 +1,33 @@
|
||||
--TEST--
|
||||
GH-20122 (getColumnMeta() for JSON-column in MySQL)
|
||||
--EXTENSIONS--
|
||||
pdo
|
||||
pdo_mysql
|
||||
--SKIPIF--
|
||||
<?php
|
||||
require __DIR__ . '/config.inc';
|
||||
require __DIR__ . '/../../../ext/pdo/tests/pdo_test.inc';
|
||||
PDOTest::skip();
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
require __DIR__ . '/config.inc';
|
||||
require __DIR__ . '/../../../ext/pdo/tests/pdo_test.inc';
|
||||
$db = PDOTest::test_factory(__DIR__ . '/common.phpt');
|
||||
|
||||
$db->exec('CREATE TABLE test (bar JSON)');
|
||||
$db->exec('INSERT INTO test VALUES("[]")');
|
||||
|
||||
$stmt = $db->query('SELECT * from test');
|
||||
$meta = $stmt->getColumnMeta(0);
|
||||
|
||||
// Note: JSON is an alias for LONGTEXT on MariaDB!
|
||||
echo $meta['native_type'], "\n";
|
||||
?>
|
||||
--CLEAN--
|
||||
<?php
|
||||
require __DIR__ . '/mysql_pdo_test.inc';
|
||||
MySQLPDOTest::dropTestTable();
|
||||
?>
|
||||
--EXPECTF--
|
||||
%r(JSON|LONGTEXT)%r
|
||||
Reference in New Issue
Block a user