interval type regex does not compile
| Bug #27300 | [PATCH] pg_convert(): interval type regex does not compile | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Submitted: | 2004-02-17 21:58 UTC | Modified: | 2004-03-17 20:27 UTC |
|
||||||||||
| From: | benjcarson at digitaljunkies dot ca | Assigned: | ||||||||||||
| Status: | Closed | Package: | PostgreSQL related | |||||||||||
| PHP Version: | 4CVS, 5CVS (2004-02-17) | OS: | * | |||||||||||
| Private report: | No | CVE-ID: | None | |||||||||||
[2004-02-17 21:58 UTC] benjcarson at digitaljunkies dot ca
Description: ------------ When trying to call pg_convert for a table with an interval column, php throws a warning indicating that it can not compile the regex used to match interval values. The regex is on line 3999 of ext/pgsql/pgsql.c I think the regex is missing a ')' as the second last character. However, this regex also contains other semantic errors and rejects valid values as well as accepts some bogus ones. I have written a replacement regex and created a patch, available at http://www.digitaljunkies.ca/~benj/pgsql.c.diff.txt. Reproduce code: --------------- <?php error_reporting(E_ALL); $con = pg_connect("dbname=database"); $arr = array("interval_col" => "1 day"); // Presumably tmp_table contains a column 'interval_col' with type 'interval' $sql = pg_convert($con, "tmp_table", $arr); print_r($sql); echo "\n"; exit(0); ?> Expected result: ---------------- Array ( [interval_col] => '1 day' ) Actual result: -------------- Notice: pg_convert(): '1 day' does not match with '^[+-]{0,1}[ \t]+((second|seconds|minute|minute|hour|hour|day|days|week|weeks|month|monthes|year|years|decade|decades|century|centuries|millennium|millenniums){1,1}[ \t]+)+([ \t]+ago){0,1}$' in pg_convert.php on line 8 Warning: pg_convert(): Cannot compile regex in pg_convert.php on line 8 Notice: pg_convert(): Expects NULL or string for PostgreSQL interval field (interval_col) in pg_convert.php on line 8
Patches
Pull Requests
History
AllCommentsChangesGit/SVN commits
[2004-03-13 03:55 UTC] mike at musicplace dot com
[2004-03-17 20:27 UTC] iliaa@php.net