php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #64609 pg_convert enum type support
Submitted: 2013-04-08 02:21 UTC Modified: 2013-06-01 21:50 UTC
From: jasen at treshna dot com Assigned: mbeccati (profile)
Status: Closed Package: PostgreSQL related
PHP Version: 5.4.13 OS: linux
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: jasen at treshna dot com
New email:
PHP Version: OS:

 

 [2013-04-08 02:21 UTC] jasen at treshna dot com
Description:
------------
pg_convert, pg_update, pg_insert 
can't handle inputs that reference enum columns.

syntactically enum columns can be treated like string columns.



Test script:
---------------
<?php
function sql_assert($c,$q)
{
	$r=pg_query($c,$q);
	if($r)
	{
		pg_free_result($r);
		return;
	}
	echo "FAILED: $q\nERROR:".pg_last_error($c)."\n";
	echo "can't initialise the test environment - giving up";
	die(1);
}
$con=pg_connect("host=127.0.0.1 user=test password=php5 dbname=phptest");
sql_assert($con,"drop type if exists enumtest cascade;");
sql_assert($con," create type enumtest as enum ( 'alpha', 'beta', 'gamma' );");
sql_assert($con," drop table if exists e_test;");
sql_assert($con," create table e_test( id integer, label text, num enumtest );");
print_r(pg_convert($con,"e_test",array('id'=>11,'label'=>'fail','num'=>'gamma')));


Expected result:
----------------
some text starting with the word Array

Actual result:
--------------
nothing.

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2013-04-08 02:58 UTC] jasen at treshna dot com
on looking at the source 
php_pgsql_convert() in ext/pgsql/pgsql.c 

It looks like this usage goes against the design principles of pg_convert and thus pg_insert pg_delete pg_update (etc...) perhaps the documentation could be ammended to reflect this.


other things I noticed

 no support of ipv6
 attempts to validate dates using regex
 [2013-06-01 21:50 UTC] mbeccati@php.net
-Summary: pg_convert barfs on enum columns +Summary: pg_convert enum type support -Assigned To: +Assigned To: mbeccati
 [2013-06-02 04:35 UTC] mbeccati@php.net
Automatic comment on behalf of mbeccati
Revision: http://git.php.net/?p=php-src.git;a=commit;h=25aae37229a439109c020150d0f496ef4a237ecd
Log: Fixed bug #64609 (pg_convert enum type support)
 [2013-06-02 04:35 UTC] mbeccati@php.net
-Status: Assigned +Status: Closed
 [2014-10-07 23:19 UTC] stas@php.net
Automatic comment on behalf of mbeccati
Revision: http://git.php.net/?p=php-src-security.git;a=commit;h=25aae37229a439109c020150d0f496ef4a237ecd
Log: Fixed bug #64609 (pg_convert enum type support)
 [2014-10-07 23:30 UTC] stas@php.net
Automatic comment on behalf of mbeccati
Revision: http://git.php.net/?p=php-src-security.git;a=commit;h=25aae37229a439109c020150d0f496ef4a237ecd
Log: Fixed bug #64609 (pg_convert enum type support)
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Nov 21 13:01:29 2024 UTC