iliaa           Tue Jul 19 23:38:34 2005 EDT

  Modified files:              
    /php-src/ext/pdo_mysql      mysql_driver.c mysql_statement.c 
    /php-src/ext/pdo    pdo.c php_pdo_driver.h 
  Log:
  Proper handling for databases that need to pre-calculate length of large
  columns, which is not normally done for performance reasons.
  
  
http://cvs.php.net/diff.php/php-src/ext/pdo_mysql/mysql_driver.c?r1=1.58&r2=1.59&ty=u
Index: php-src/ext/pdo_mysql/mysql_driver.c
diff -u php-src/ext/pdo_mysql/mysql_driver.c:1.58 
php-src/ext/pdo_mysql/mysql_driver.c:1.59
--- php-src/ext/pdo_mysql/mysql_driver.c:1.58   Wed Jul 13 22:09:08 2005
+++ php-src/ext/pdo_mysql/mysql_driver.c        Tue Jul 19 23:38:32 2005
@@ -17,7 +17,7 @@
   +----------------------------------------------------------------------+
 */
 
-/* $Id: mysql_driver.c,v 1.58 2005/07/14 02:09:08 wez Exp $ */
+/* $Id: mysql_driver.c,v 1.59 2005/07/20 03:38:32 iliaa Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -208,6 +208,8 @@
 
        dbh->alloc_own_columns = 1;
 
+       S->max_length = pdo_attr_lval(driver_options, PDO_ATTR_MAX_COLUMN_LEN, 
0 TSRMLS_CC);
+
        return 1;
 
 #else
http://cvs.php.net/diff.php/php-src/ext/pdo_mysql/mysql_statement.c?r1=1.46&r2=1.47&ty=u
Index: php-src/ext/pdo_mysql/mysql_statement.c
diff -u php-src/ext/pdo_mysql/mysql_statement.c:1.46 
php-src/ext/pdo_mysql/mysql_statement.c:1.47
--- php-src/ext/pdo_mysql/mysql_statement.c:1.46        Tue Jul 19 22:36:34 2005
+++ php-src/ext/pdo_mysql/mysql_statement.c     Tue Jul 19 23:38:32 2005
@@ -17,7 +17,7 @@
   +----------------------------------------------------------------------+
 */
 
-/* $Id: mysql_statement.c,v 1.46 2005/07/20 02:36:34 iliaa Exp $ */
+/* $Id: mysql_statement.c,v 1.47 2005/07/20 03:38:32 iliaa Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -93,8 +93,7 @@
 
                /* if buffered, pre-fetch all the data */
                if (H->buffered) {
-                       /* if we have bound the buffers don't set the attribute 
again */
-                       if (!S->result && stmt->column_count > 0) {
+                       if (S->max_length == 1 && !S->result) {
                                my_bool on = 1;
                                mysql_stmt_attr_set(S->stmt, 
STMT_ATTR_UPDATE_MAX_LENGTH, &on);
                        }
http://cvs.php.net/diff.php/php-src/ext/pdo/pdo.c?r1=1.55&r2=1.56&ty=u
Index: php-src/ext/pdo/pdo.c
diff -u php-src/ext/pdo/pdo.c:1.55 php-src/ext/pdo/pdo.c:1.56
--- php-src/ext/pdo/pdo.c:1.55  Mon Jul 11 22:40:59 2005
+++ php-src/ext/pdo/pdo.c       Tue Jul 19 23:38:33 2005
@@ -18,7 +18,7 @@
   +----------------------------------------------------------------------+
 */
 
-/* $Id: pdo.c,v 1.55 2005/07/12 02:40:59 wez Exp $ */
+/* $Id: pdo.c,v 1.56 2005/07/20 03:38:33 iliaa Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -338,6 +338,7 @@
        REGISTER_LONG_CONSTANT("PDO_ATTR_FETCH_CATALOG_NAMES",          
(long)PDO_ATTR_FETCH_CATALOG_NAMES,                     
CONST_CS|CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("PDO_ATTR_DRIVER_NAME",          
(long)PDO_ATTR_DRIVER_NAME,     CONST_CS|CONST_PERSISTENT);
        
REGISTER_LONG_CONSTANT("PDO_ATTR_STRINGIFY_FETCHES",(long)PDO_ATTR_STRINGIFY_FETCHES,
   CONST_CS|CONST_PERSISTENT);
+       
REGISTER_LONG_CONSTANT("PDO_ATTR_MAX_COLUMN_LEN",(long)PDO_ATTR_MAX_COLUMN_LEN, 
CONST_CS|CONST_PERSISTENT);
        
        REGISTER_LONG_CONSTANT("PDO_ERRMODE_SILENT",    
(long)PDO_ERRMODE_SILENT,               CONST_CS|CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("PDO_ERRMODE_WARNING",   
(long)PDO_ERRMODE_WARNING,              CONST_CS|CONST_PERSISTENT);
http://cvs.php.net/diff.php/php-src/ext/pdo/php_pdo_driver.h?r1=1.65&r2=1.66&ty=u
Index: php-src/ext/pdo/php_pdo_driver.h
diff -u php-src/ext/pdo/php_pdo_driver.h:1.65 
php-src/ext/pdo/php_pdo_driver.h:1.66
--- php-src/ext/pdo/php_pdo_driver.h:1.65       Mon Jul 11 22:40:59 2005
+++ php-src/ext/pdo/php_pdo_driver.h    Tue Jul 19 23:38:33 2005
@@ -16,7 +16,7 @@
   +----------------------------------------------------------------------+
 */
 
-/* $Id: php_pdo_driver.h,v 1.65 2005/07/12 02:40:59 wez Exp $ */
+/* $Id: php_pdo_driver.h,v 1.66 2005/07/20 03:38:33 iliaa Exp $ */
 
 #ifndef PHP_PDO_DRIVER_H
 #define PHP_PDO_DRIVER_H
@@ -128,6 +128,7 @@
        PDO_ATTR_FETCH_CATALOG_NAMES, /* include the catalog/db name names in 
the column names, where available */
        PDO_ATTR_DRIVER_NAME,             /* name of the driver (as used in the 
constructor) */
        PDO_ATTR_STRINGIFY_FETCHES,     /* converts integer/float types to 
strings during fetch */
+       PDO_ATTR_MAX_COLUMN_LEN,        /* make database calculate maximum 
length of data found in a column */
 
        /* this defines the start of the range for driver specific options.
         * Drivers should define their own attribute constants beginning with 
this

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to