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

 ID:                 41241
 Updated by:         [email protected]
 Reported by:        develar at gmail dot com
 Summary:            Realization array type. SQL 2003, S091
 Status:             Open
 Type:               Feature/Change Request
 Package:            PostgreSQL related
 Operating System:   Windows XP SP2
 PHP Version:        5.2.1
-Assigned To:        
+Assigned To:        yohgaki
 Block user comment: N
 Private report:     N

 New Comment:

Changing return value may break applications. I may implement 

pg_array(mixed $var);

when $var is string, convert to array.
when $var is array, convert to string for query.


Previous Comments:
------------------------------------------------------------------------
[2007-04-30 16:03:10] [email protected]

Reclassified as feature request.

------------------------------------------------------------------------
[2007-04-30 14:31:05] develar at gmail dot com

<?php

$Pdo = new PDO('pgsql:host=localhost port=5432 dbname=postgres user=postgres 
password=password');
var_export($Pdo->query('select proargnames from pg_catalog.pg_proc order by 
proargnames limit 1')->fetchAll(PDO::FETCH_ASSOC));

?>

actual:

array (
  0 => 
  array (
    'proargnames' => '{"",x,n}',
  ),
)

expected:

proargnames is array, but not string

array (
  0 => 
  array (
    'proargnames' => 
    array (
      0 => '',
      1 => 'x',
      2 => 'n',
    ),
  ),
)

------------------------------------------------------------------------
[2007-04-30 13:20:08] develar at gmail dot com

Pdo (pdo_pgsql) supports SQL 2003 T031 - BOOLEAN data type. If I select value 
of a field, it will be returned with type BOOL.

I ask, that also was supported SQL 2003 S091 - ARRAY data type. If I select 
proargnames with type text[], I expect, that PDO will return to me array, 
instead of string.

------------------------------------------------------------------------
[2007-04-30 13:06:53] develar at gmail dot com

"Actual result" and "Expected result" reverse, excuse me :).

------------------------------------------------------------------------
[2007-04-30 13:01:28] develar at gmail dot com

Description:
------------
SQL 2003, S091.

Reproduce code:
---------------
PostgreSQL 8.2

select proargnames from pg_catalog.pg_proc order by proargnames limit 1

Expected result:
----------------
array (
  0 => 
  array (
    'proargnames' => 
'{"","","",id,uri,time_create,priority_base_time_create,title,time_modify,status,priority_base_title,type_name,leaf,version,author_name,author_surname,author_patronymic,privilege_edit,privilege_delete,privilege_grant}',
  ),
)

Actual result:
--------------
array (
  0 => 
  array (
    'proargnames' => 
'{"","","",id,uri,time_create,priority_base_time_create,title,time_modify,array 
(
  0 => 
  array (
    'proargnames' => 
    array (
      0 => '',
      1 => '',
      2 => '',
      3 => 'id',
      4 => 'uri',
      5 => 'time_create',
      6 => 'priority_base_time_create',
      7 => 'title',
      8 => 'time_modify',
      9 => 'status',
      10 => 'priority_base_title',
      11 => 'type_name',
      12 => 'leaf',
      13 => 'version',
      14 => 'author_name',
      15 => 'author_surname',
      16 => 'author_patronymic',
      17 => 'privilege_edit',
      18 => 'privilege_delete',
      19 => 'privilege_grant',
    ),
  ),
)}',
  ),
)


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



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

Reply via email to