Edit report at http://bugs.php.net/bug.php?id=46508&edit=1

 ID:               46508
 Updated by:       u...@php.net
 Reported by:      marques at displague dot com
 Summary:          [PATCH]: getColumnMeta returns
                   'LONG','VAR_STRING','BLOB' as php native_type
-Status:           Assigned
+Status:           Open
 Type:             Bug
 Package:          PDO related
 Operating System: *
 PHP Version:      5.2.9
-Assigned To:      mysql
+Assigned To:      

 New Comment:

Whatever the docs say, what counts is "EXPERIMENTAL" = "TENTATIVE" =
"UNDEFINED". It is irrelevant how meaningful and sensible your
suggestion is. 



If you want any changes to PDO, please write an RFC/discuss on
internal/do whatever the current procedure is to get the "EXPERIMENTAL"
removed. Specification via bug reports does not make much sense to me.
You fix one and break another causing a bug report stating just the
opposite and, for example, claiming you break backwards compatibility. 



The underlying issue is the lack of a clear definition. The issue is the
"EXPERIMENTAL". 



I do understand how annoying the answer is. But please respect that
"specification via bug reports" is not a good approach and sometimes it
is better to go a step back and do it right: fix PDO as such.



Whoever wants, may play the patch-and-work-without-specs game. But I
won't do it. Its an endless game leading nowhere: leaving bug open,
unassigning mysql (at least as long as there is no clear specs).


Previous Comments:
------------------------------------------------------------------------
[2009-06-29 10:18:50] marques at displague dot com

I stated in the bug report that the return values do not match up with
the documentation.  The docs state (pretty clearly):



http://php.net/manual/en/pdostatement.getcolumnmeta.php:



native_type     The PHP native type used to represent the column value.



driver:decl_type        The SQL type used to represent the column value in the
database. If the column in the result set is the result of a function,
this value is not returned by PDOStatement::getColumnMeta(). 



pdo_type        The type of this column as represented by the PDO::PARAM_*
constants.





The problems are that (per the docs) native_type is missed for some
types (TINYINT) and that the native_type values currently returned
should be in driver:decl_type, and PHP native types should be returned
for native_type instead.

------------------------------------------------------------------------
[2009-06-29 09:42:27] uwendel at mysql dot com

Why would I bother about a function that has no specification? Without a
specification there is no definition of how things should go and there
is no bug - by definition...





"Warning



This function is EXPERIMENTAL. The behaviour of this function, its name,
and surrounding documentation may change without notice in a future
release of PHP. This function should be used at your own risk. ",

http://de.php.net/manual/en/pdostatement.getcolumnmeta.php



There needs to be a proper PDO spec before one can decide about any bug
report. IMHO the bug report should be closed as bogus.

------------------------------------------------------------------------
[2009-04-10 14:01:57] php at displague dot com

This should probably be the topic of another bug, but TINYINT doesn't
return a native_type (I'm guessing because TINY is used everywhere, but
not TINYINT - maybe another constant is needed).



mysql://u...@host/db> show columns from table like 'disable' \G;

*************************** 1. row ***************************

  Field: disable

   Type: tinyint(4)

   Null: NO

    Key: 

Default: 0

  Extra: 

1 row in set (0.00 sec)



getColumnMeta (php 5.2.9) returns:

Array

(

    [flags] => Array

        (

            [0] => not_null

        )



    [table] => promo_item

    [name] => disable

    [len] => 4

    [precision] => 0

    [pdo_type] => 2

)



native_type is missing.



Is there any chance this correction will make it into 5.2.x?

------------------------------------------------------------------------
[2008-11-07 16:24:52] fel...@php.net

Hi Marques, good observation! I've updated the patch. ;)



Thanks.

------------------------------------------------------------------------
[2008-11-07 16:02:59] marques at displague dot com

The values that are currently being reported may belong in the
getmetacolumn array member 'driver:decl_type' (per the getColumnMeta
documentation example).

------------------------------------------------------------------------


The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at

    http://bugs.php.net/bug.php?id=46508


-- 
Edit this bug report at http://bugs.php.net/bug.php?id=46508&edit=1

Reply via email to