From 76b580d87afcbdd170853194ffcb80cee45894bd Mon Sep 17 00:00:00 2001 From: Stanislav Malyshev Date: Wed, 29 Feb 2012 07:25:21 +0000 Subject: [PATCH 1/3] 5.4.0 From 43a652dc75618aa3b60b0a5bc00d5fbf61754ed8 Mon Sep 17 00:00:00 2001 From: Antony Dovgal Date: Fri, 13 Apr 2012 13:59:52 +0400 Subject: [PATCH 2/3] fix bug #48724 PDO's getColumnMeta() doesn't return native_type for BIT, TINYINT and YEAR --- ext/pdo_mysql/mysql_statement.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/ext/pdo_mysql/mysql_statement.c b/ext/pdo_mysql/mysql_statement.c index 965987f123283..697cf801d5a50 100755 --- a/ext/pdo_mysql/mysql_statement.c +++ b/ext/pdo_mysql/mysql_statement.c @@ -763,8 +763,11 @@ static char *type_to_name_native(int type) /* {{{ */ switch (type) { PDO_MYSQL_NATIVE_TYPE_NAME(STRING) PDO_MYSQL_NATIVE_TYPE_NAME(VAR_STRING) -#ifdef MYSQL_HAS_TINY +#ifdef FIELD_TYPE_TINY PDO_MYSQL_NATIVE_TYPE_NAME(TINY) +#endif +#ifdef FIELD_TYPE_BIT + PDO_MYSQL_NATIVE_TYPE_NAME(BIT) #endif PDO_MYSQL_NATIVE_TYPE_NAME(SHORT) PDO_MYSQL_NATIVE_TYPE_NAME(LONG) @@ -780,7 +783,7 @@ static char *type_to_name_native(int type) /* {{{ */ PDO_MYSQL_NATIVE_TYPE_NAME(GEOMETRY) #endif PDO_MYSQL_NATIVE_TYPE_NAME(TIMESTAMP) -#ifdef MYSQL_HAS_YEAR +#ifdef FIELD_TYPE_YEAR PDO_MYSQL_NATIVE_TYPE_NAME(YEAR) #endif PDO_MYSQL_NATIVE_TYPE_NAME(SET) From 5ff4d7b16f79d597cc597b825f145ac332b0b749 Mon Sep 17 00:00:00 2001 From: Daniel Beardsley Date: Wed, 2 Jan 2013 10:55:23 -0700 Subject: [PATCH 3/3] Tests: PDO Mysql - update for fixed getColumnMeta() The test has always been disabled... so it's never run anyway. Oh well. --- .../tests/pdo_mysql_stmt_getcolumnmeta.phpt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/ext/pdo_mysql/tests/pdo_mysql_stmt_getcolumnmeta.phpt b/ext/pdo_mysql/tests/pdo_mysql_stmt_getcolumnmeta.phpt index 0fef33487846c..67b115de73020 100644 --- a/ext/pdo_mysql/tests/pdo_mysql_stmt_getcolumnmeta.phpt +++ b/ext/pdo_mysql/tests/pdo_mysql_stmt_getcolumnmeta.phpt @@ -148,9 +148,9 @@ try { $db->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, false); $is_mysqlnd = MySQLPDOTest::isPDOMySQLnd(); - test_meta($db, 20, 'BIT(8)', 1, NULL, ($is_mysqlnd) ? PDO::PARAM_INT : PDO::PARAM_STR); - test_meta($db, 30, 'TINYINT', -127, NULL, ($is_mysqlnd) ? PDO::PARAM_INT : PDO::PARAM_STR); - test_meta($db, 40, 'TINYINT UNSIGNED', 255, NULL, ($is_mysqlnd) ? PDO::PARAM_INT : PDO::PARAM_STR); + test_meta($db, 20, 'BIT(8)', 1, 'BIT', ($is_mysqlnd) ? PDO::PARAM_INT : PDO::PARAM_STR); + test_meta($db, 30, 'TINYINT', -127, 'TINY', ($is_mysqlnd) ? PDO::PARAM_INT : PDO::PARAM_STR); + test_meta($db, 40, 'TINYINT UNSIGNED', 255, 'TINY', ($is_mysqlnd) ? PDO::PARAM_INT : PDO::PARAM_STR); test_meta($db, 50, 'BOOLEAN', 1, NULL, ($is_mysqlnd) ? PDO::PARAM_INT : PDO::PARAM_STR); test_meta($db, 60, 'SMALLINT', -32768, 'SHORT', ($is_mysqlnd) ? PDO::PARAM_INT : PDO::PARAM_STR); @@ -194,7 +194,7 @@ try { test_meta($db, 340, 'TIME', '14:37:00', 'TIME', PDO::PARAM_STR); test_meta($db, 350, 'TIMESTAMP', time(), 'TIMESTAMP', PDO::PARAM_STR); test_meta($db, 360, 'DATETIME', '2008-03-23 14:38:00', 'DATETIME', PDO::PARAM_STR); - test_meta($db, 370, 'YEAR', '2008', NULL, ($is_mysqlnd) ? PDO::PARAM_INT : PDO::PARAM_STR); + test_meta($db, 370, 'YEAR', '2008', 'YEAR', ($is_mysqlnd) ? PDO::PARAM_INT : PDO::PARAM_STR); test_meta($db, 380, 'CHAR(1)', 'a', 'STRING', PDO::PARAM_STR); test_meta($db, 390, 'CHAR(10)', '0123456789', 'STRING', PDO::PARAM_STR); @@ -225,8 +225,8 @@ try { test_meta($db, 600, 'LONGTEXT', str_repeat('b', 256), 'BLOB', PDO::PARAM_STR); test_meta($db, 610, 'LONGTEXT BINARY', str_repeat('b', 256), 'BLOB', PDO::PARAM_STR); - test_meta($db, 620, "ENUM('yes', 'no') DEFAULT 'yes'", 'no', NULL, PDO::PARAM_STR); - test_meta($db, 630, "SET('yes', 'no') DEFAULT 'yes'", 'no', NULL, PDO::PARAM_STR); + test_meta($db, 620, "ENUM('yes', 'no') DEFAULT 'yes'", 'no', 'ENUM', PDO::PARAM_STR); + test_meta($db, 630, "SET('yes', 'no') DEFAULT 'yes'", 'no', 'SET', PDO::PARAM_STR); /* | spatial_type