mirror of
https://github.com/php/php-src.git
synced 2026-03-24 08:12:21 +01:00
Merge branch 'PHP-8.4' into PHP-8.5
* PHP-8.4: Fix GH-20122: getColumnMeta() for JSON-column in MySQL
This commit is contained in:
@@ -90,6 +90,7 @@ require_once 'skipifconnectfailure.inc';
|
||||
// MYSQLI_TYPE_GEOMETRY => array('GEOMETRY', 'TODO add testing'),
|
||||
MYSQLI_TYPE_NEWDECIMAL => array('DECIMAL', '1.1'),
|
||||
MYSQLI_TYPE_BIT => array('BIT', 0),
|
||||
MYSQLI_TYPE_JSON => array('JSON', '[]'),
|
||||
);
|
||||
|
||||
foreach ($datatypes as $php_type => $datatype) {
|
||||
|
||||
@@ -746,6 +746,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