[PHP-CVS] cvs: php-src(PHP_5_2) / NEWS /ext/pdo pdo_sql_parser.c pdo_sql_parser.re /ext/pdo/tests bug_43130.phpt

2007-10-29 Thread Ilia Alshanetsky
iliaa   Mon Oct 29 22:37:26 2007 UTC

  Added files: (Branch: PHP_5_2)
/php-src/ext/pdo/tests  bug_43130.phpt 

  Modified files:  
/php-src/ext/pdopdo_sql_parser.re pdo_sql_parser.c 
/php-srcNEWS 
  Log:
  
  MFB: Fixed bug #43130 (Bound parameters cannot have - in their name)
  http://cvs.php.net/viewvc.cgi/php-src/ext/pdo/pdo_sql_parser.re?r1=1.28.2.4.2.9r2=1.28.2.4.2.10diff_format=u
Index: php-src/ext/pdo/pdo_sql_parser.re
diff -u php-src/ext/pdo/pdo_sql_parser.re:1.28.2.4.2.9 
php-src/ext/pdo/pdo_sql_parser.re:1.28.2.4.2.10
--- php-src/ext/pdo/pdo_sql_parser.re:1.28.2.4.2.9  Tue Jun  5 22:55:26 2007
+++ php-src/ext/pdo/pdo_sql_parser.re   Mon Oct 29 22:37:25 2007
@@ -16,7 +16,7 @@
   +--+
 */
 
-/* $Id: pdo_sql_parser.re,v 1.28.2.4.2.9 2007/06/05 22:55:26 iliaa Exp $ */
+/* $Id: pdo_sql_parser.re,v 1.28.2.4.2.10 2007/10/29 22:37:25 iliaa Exp $ */
 
 #include php.h
 #include php_pdo_driver.h
@@ -46,7 +46,7 @@
 
s-tok = cursor;
/*!re2c
-   BINDCHR = [:][a-zA-Z0-9_]+;
+   BINDCHR = [:][a-zA-Z0-9_-]+;
QUESTION= [?];
SPECIALS= [:?'];
MULTICHAR   = [:?];
http://cvs.php.net/viewvc.cgi/php-src/ext/pdo/pdo_sql_parser.c?r1=1.35.2.6.2.12r2=1.35.2.6.2.13diff_format=u
Index: php-src/ext/pdo/pdo_sql_parser.c
diff -u php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.12 
php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.13
--- php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.12  Tue Jun  5 22:55:26 2007
+++ php-src/ext/pdo/pdo_sql_parser.cMon Oct 29 22:37:25 2007
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.11.0 on Tue Jun  5 18:45:24 2007 */
+/* Generated by re2c 0.11.0 on Mon Oct 29 18:36:37 2007 */
 #line 1 ext/pdo/pdo_sql_parser.re
 /*
   +--+
@@ -18,7 +18,7 @@
   +--+
 */
 
-/* $Id: pdo_sql_parser.c,v 1.35.2.6.2.12 2007/06/05 22:55:26 iliaa Exp $ */
+/* $Id: pdo_sql_parser.c,v 1.35.2.6.2.13 2007/10/29 22:37:25 iliaa Exp $ */
 
 #include php.h
 #include php_pdo_driver.h
@@ -50,142 +50,250 @@
#line 55 ext/pdo/pdo_sql_parser.re
 
 
-   {
-   static unsigned char yybm[] = {
-   192, 200, 200, 200, 200, 200, 200, 200, 
-   200, 200, 200, 200, 200, 200, 200, 200, 
-   200, 200, 200, 200, 200, 200, 200, 200, 
-   200, 200, 200, 200, 200, 200, 200, 200, 
-   200, 200,  64, 200, 200, 200, 200, 128, 
-   200, 200, 200, 200, 200, 200, 200, 200, 
-   232, 232, 232, 232, 232, 232, 232, 232, 
-   232, 232, 208, 200, 200, 200, 200, 208, 
-   200, 232, 232, 232, 232, 232, 232, 232, 
-   232, 232, 232, 232, 232, 232, 232, 232, 
-   232, 232, 232, 232, 232, 232, 232, 232, 
-   232, 232, 232, 200, 200, 200, 200, 232, 
-   200, 232, 232, 232, 232, 232, 232, 232, 
-   232, 232, 232, 232, 232, 232, 232, 232, 
-   232, 232, 232, 232, 232, 232, 232, 232, 
-   232, 232, 232, 200, 200, 200, 200, 200, 
-   200, 200, 200, 200, 200, 200, 200, 200, 
-   200, 200, 200, 200, 200, 200, 200, 200, 
-   200, 200, 200, 200, 200, 200, 200, 200, 
-   200, 200, 200, 200, 200, 200, 200, 200, 
-   200, 200, 200, 200, 200, 200, 200, 200, 
-   200, 200, 200, 200, 200, 200, 200, 200, 
-   200, 200, 200, 200, 200, 200, 200, 200, 
-   200, 200, 200, 200, 200, 200, 200, 200, 
-   200, 200, 200, 200, 200, 200, 200, 200, 
-   200, 200, 200, 200, 200, 200, 200, 200, 
-   200, 200, 200, 200, 200, 200, 200, 200, 
-   200, 200, 200, 200, 200, 200, 200, 200, 
-   200, 200, 200, 200, 200, 200, 200, 200, 
-   200, 200, 200, 200, 200, 200, 200, 200, 
-   200, 200, 200, 200, 200, 200, 200, 200, 
-   200, 200, 200, 200, 200, 200, 200, 200, 
-   };
-
-#line 90 ext/pdo/pdo_sql_parser.c
-   {
-   YYCTYPE yych;
-
-   if((YYLIMIT - YYCURSOR)  2) YYFILL(2);
-   yych = *YYCURSOR;
-   if(yybm[0+yych]  8) {
-   goto yy8;
-   }
-   if(yych = 0x00) goto yy11;
-   if(yych = '') goto yy2;
-   if(yych = '\'') goto yy4;
-   if(yych = '') goto yy5;
-   goto yy6;
+   
+#line 55 ext/pdo/pdo_sql_parser.c
+{
+   YYCTYPE yych;
+
+   if((YYLIMIT - YYCURSOR)  2) YYFILL(2);
+   yych = *YYCURSOR;
+   switch(yych) {
+   case 0x00:  goto yy11;
+   case '':   goto yy2;
+   case '\'':  goto yy4;
+   case ':':   goto yy5;
+   case '?':   goto yy6;
+   default:

[PHP-CVS] cvs: php-src(PHP_5_2) / NEWS /ext/pdo pdo_sql_parser.c pdo_sql_parser.re

2007-06-05 Thread Ilia Alshanetsky
iliaa   Tue Jun  5 22:55:27 2007 UTC

  Modified files:  (Branch: PHP_5_2)
/php-src/ext/pdopdo_sql_parser.re pdo_sql_parser.c 
/php-srcNEWS 
  Log:
  
  Fixed bug #41596 (Fixed a crash inside pdo_pgsql on some non-well-formed
  SQL queries).
  
http://cvs.php.net/viewvc.cgi/php-src/ext/pdo/pdo_sql_parser.re?r1=1.28.2.4.2.8r2=1.28.2.4.2.9diff_format=u
Index: php-src/ext/pdo/pdo_sql_parser.re
diff -u php-src/ext/pdo/pdo_sql_parser.re:1.28.2.4.2.8 
php-src/ext/pdo/pdo_sql_parser.re:1.28.2.4.2.9
--- php-src/ext/pdo/pdo_sql_parser.re:1.28.2.4.2.8  Tue Mar  6 00:52:55 2007
+++ php-src/ext/pdo/pdo_sql_parser.re   Tue Jun  5 22:55:26 2007
@@ -16,7 +16,7 @@
   +--+
 */
 
-/* $Id: pdo_sql_parser.re,v 1.28.2.4.2.8 2007/03/06 00:52:55 iliaa Exp $ */
+/* $Id: pdo_sql_parser.re,v 1.28.2.4.2.9 2007/06/05 22:55:26 iliaa Exp $ */
 
 #include php.h
 #include php_pdo_driver.h
@@ -28,6 +28,7 @@
 #define PDO_PARSER_EOI 4
 
 #define RET(i) {s-cur = cursor; return i; }
+#define SKIP_ONE(i) {s-cur = s-tok + 1; return 1; }
 
 #define YYCTYPE unsigned char
 #define YYCURSORcursor
@@ -57,9 +58,9 @@
([] ([^])* [])   { RET(PDO_PARSER_TEXT); }
(['] ([^'])* ['])   { RET(PDO_PARSER_TEXT); }
MULTICHAR{2,}   
{ RET(PDO_PARSER_TEXT); }
-   BINDCHR 
{ RET(PDO_PARSER_BIND); }
+   BINDCHR { 
RET(PDO_PARSER_BIND); }
QUESTION
{ RET(PDO_PARSER_BIND_POS); }
-   SPECIALS
{ RET(PDO_PARSER_TEXT); }
+   SPECIALS
{ SKIP_ONE(PDO_PARSER_TEXT); }
(ANYNOEOF\SPECIALS)+{ 
RET(PDO_PARSER_TEXT); }
EOF 
{ RET(PDO_PARSER_EOI); }
*/  
@@ -96,6 +97,10 @@
while((t = scan(s)) != PDO_PARSER_EOI) {
if (t == PDO_PARSER_BIND || t == PDO_PARSER_BIND_POS) {
if (t == PDO_PARSER_BIND) {
+   int len = s.cur - s.tok;
+   if ((inquery  (s.cur - len))  
isalnum(*(s.cur - len - 1))) {
+   continue;
+   }
query_type |= PDO_PLACEHOLDER_NAMED;
} else {
query_type |= PDO_PLACEHOLDER_POSITIONAL;
http://cvs.php.net/viewvc.cgi/php-src/ext/pdo/pdo_sql_parser.c?r1=1.35.2.6.2.11r2=1.35.2.6.2.12diff_format=u
Index: php-src/ext/pdo/pdo_sql_parser.c
diff -u php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.11 
php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.12
--- php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.11  Tue Mar  6 00:52:55 2007
+++ php-src/ext/pdo/pdo_sql_parser.cTue Jun  5 22:55:26 2007
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.11.0 on Mon Mar  5 19:42:28 2007 */
+/* Generated by re2c 0.11.0 on Tue Jun  5 18:45:24 2007 */
 #line 1 ext/pdo/pdo_sql_parser.re
 /*
   +--+
@@ -18,7 +18,7 @@
   +--+
 */
 
-/* $Id: pdo_sql_parser.c,v 1.35.2.6.2.11 2007/03/06 00:52:55 iliaa Exp $ */
+/* $Id: pdo_sql_parser.c,v 1.35.2.6.2.12 2007/06/05 22:55:26 iliaa Exp $ */
 
 #include php.h
 #include php_pdo_driver.h
@@ -30,6 +30,7 @@
 #define PDO_PARSER_EOI 4
 
 #define RET(i) {s-cur = cursor; return i; }
+#define SKIP_ONE(i) {s-cur = s-tok + 1; return 1; }
 
 #define YYCTYPE unsigned char
 #define YYCURSORcursor
@@ -46,7 +47,7 @@
char *cursor = s-cur;
 
s-tok = cursor;
-   #line 54 ext/pdo/pdo_sql_parser.re
+   #line 55 ext/pdo/pdo_sql_parser.re
 
 
{
@@ -85,7 +86,7 @@
200, 200, 200, 200, 200, 200, 200, 200, 
};
 
-#line 89 ext/pdo/pdo_sql_parser.c
+#line 90 ext/pdo/pdo_sql_parser.c
{
YYCTYPE yych;
 
@@ -103,9 +104,9 @@
yych = *++YYCURSOR;
goto yy24;
 yy3:
-#line 62 ext/pdo/pdo_sql_parser.re
-   { RET(PDO_PARSER_TEXT); }
-#line 109 ext/pdo/pdo_sql_parser.c
+#line 63 ext/pdo/pdo_sql_parser.re
+   { SKIP_ONE(PDO_PARSER_TEXT); }
+#line 110 ext/pdo/pdo_sql_parser.c
 yy4:
yych = *++YYCURSOR;
goto yy20;
@@ -122,9 +123,9 @@
if(yybm[0+(yych = *YYCURSOR)]  16) {
goto yy13;
}
-#line 61 ext/pdo/pdo_sql_parser.re
+#line 62 ext/pdo/pdo_sql_parser.re
 

[PHP-CVS] cvs: php-src(PHP_5_2) / NEWS /ext/pdo pdo_sql_parser.c pdo_sql_parser.re

2007-03-05 Thread Ilia Alshanetsky
iliaa   Tue Mar  6 00:52:55 2007 UTC

  Modified files:  (Branch: PHP_5_2)
/php-src/ext/pdopdo_sql_parser.c pdo_sql_parser.re 
/php-srcNEWS 
  Log:
  
  Fixed bug #40417 (Allow multiple instances of the same named PDO token in
  prepared statement emulation code).
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/pdo/pdo_sql_parser.c?r1=1.35.2.6.2.10r2=1.35.2.6.2.11diff_format=u
Index: php-src/ext/pdo/pdo_sql_parser.c
diff -u php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.10 
php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.11
--- php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.10  Fri Feb  2 00:03:33 2007
+++ php-src/ext/pdo/pdo_sql_parser.cTue Mar  6 00:52:55 2007
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.11.0 on Thu Feb  1 19:01:11 2007 */
+/* Generated by re2c 0.11.0 on Mon Mar  5 19:42:28 2007 */
 #line 1 ext/pdo/pdo_sql_parser.re
 /*
   +--+
@@ -18,7 +18,7 @@
   +--+
 */
 
-/* $Id: pdo_sql_parser.c,v 1.35.2.6.2.10 2007/02/02 00:03:33 iliaa Exp $ */
+/* $Id: pdo_sql_parser.c,v 1.35.2.6.2.11 2007/03/06 00:52:55 iliaa Exp $ */
 
 #include php.h
 #include php_pdo_driver.h
@@ -280,13 +280,25 @@
}
 
if (params  bindno != zend_hash_num_elements(params)  
stmt-supports_placeholders == PDO_PLACEHOLDER_NONE) {
+   /* extra bit of validation for instances when same params are 
bound more then once */
+   if (query_type != PDO_PLACEHOLDER_POSITIONAL  bindno  
zend_hash_num_elements(params)) {
+   int ok = 1;
+   for (plc = placeholders; plc; plc = plc-next) {
+   if (zend_hash_find(params, plc-pos, plc-len, 
(void**) param) == FAILURE) {
+   ok = 0;
+   break;
+   }
+   }
+   if (ok) {
+   goto safe;
+   }
+   }
pdo_raise_impl_error(stmt-dbh, stmt, HY093, number of bound 
variables does not match number of tokens TSRMLS_CC);
ret = -1;
goto clean_up;
}
-
+safe:
/* what are we going to do ? */
-   
if (stmt-supports_placeholders == PDO_PLACEHOLDER_NONE) {
/* query generation */
 
http://cvs.php.net/viewvc.cgi/php-src/ext/pdo/pdo_sql_parser.re?r1=1.28.2.4.2.7r2=1.28.2.4.2.8diff_format=u
Index: php-src/ext/pdo/pdo_sql_parser.re
diff -u php-src/ext/pdo/pdo_sql_parser.re:1.28.2.4.2.7 
php-src/ext/pdo/pdo_sql_parser.re:1.28.2.4.2.8
--- php-src/ext/pdo/pdo_sql_parser.re:1.28.2.4.2.7  Thu Feb  1 00:12:39 2007
+++ php-src/ext/pdo/pdo_sql_parser.re   Tue Mar  6 00:52:55 2007
@@ -16,7 +16,7 @@
   +--+
 */
 
-/* $Id: pdo_sql_parser.re,v 1.28.2.4.2.7 2007/02/01 00:12:39 iliaa Exp $ */
+/* $Id: pdo_sql_parser.re,v 1.28.2.4.2.8 2007/03/06 00:52:55 iliaa Exp $ */
 
 #include php.h
 #include php_pdo_driver.h
@@ -155,13 +155,25 @@
}
 
if (params  bindno != zend_hash_num_elements(params)  
stmt-supports_placeholders == PDO_PLACEHOLDER_NONE) {
+   /* extra bit of validation for instances when same params are 
bound more then once */
+   if (query_type != PDO_PLACEHOLDER_POSITIONAL  bindno  
zend_hash_num_elements(params)) {
+   int ok = 1;
+   for (plc = placeholders; plc; plc = plc-next) {
+   if (zend_hash_find(params, plc-pos, plc-len, 
(void**) param) == FAILURE) {
+   ok = 0;
+   break;
+   }
+   }
+   if (ok) {
+   goto safe;
+   }
+   }
pdo_raise_impl_error(stmt-dbh, stmt, HY093, number of bound 
variables does not match number of tokens TSRMLS_CC);
ret = -1;
goto clean_up;
}
-
+safe:
/* what are we going to do ? */
-   
if (stmt-supports_placeholders == PDO_PLACEHOLDER_NONE) {
/* query generation */
 
http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.574r2=1.2027.2.547.2.575diff_format=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2027.2.547.2.574 php-src/NEWS:1.2027.2.547.2.575
--- php-src/NEWS:1.2027.2.547.2.574 Mon Mar  5 15:49:00 2007
+++ php-src/NEWSTue Mar  6 00:52:55 2007
@@ -52,6 +52,8 @@
 - Fixed bug #40451 (addAttribute() may crash when used with non-existent child 
   node). (Tony)
 - Fixed bug #40428 (imagepstext() doesn't accept optional parameter). (Pierre)
+- Fixed bug #40417 (Allow multiple instances of the same named PDO token in
+  prepared statement emulation code). 

[PHP-CVS] cvs: php-src(PHP_5_2) / NEWS /ext/pdo pdo_sql_parser.c pdo_sql_parser.re /ext/pdo/tests bug_39656.phpt

2007-01-31 Thread Ilia Alshanetsky
iliaa   Thu Feb  1 00:12:39 2007 UTC

  Modified files:  (Branch: PHP_5_2)
/php-src/ext/pdo/tests  bug_39656.phpt 
/php-srcNEWS 
/php-src/ext/pdopdo_sql_parser.re pdo_sql_parser.c 
  Log:
  
  Fixed bug #40285 (The PDO prepare parser goes into an infinite loop in   
  some instances).
  
  http://cvs.php.net/viewvc.cgi/php-src/ext/pdo/tests/bug_39656.phpt?r1=1.1.2.4r2=1.1.2.5diff_format=u
Index: php-src/ext/pdo/tests/bug_39656.phpt
diff -u php-src/ext/pdo/tests/bug_39656.phpt:1.1.2.4 
php-src/ext/pdo/tests/bug_39656.phpt:1.1.2.5
--- php-src/ext/pdo/tests/bug_39656.phpt:1.1.2.4Sat Dec  9 16:41:24 2006
+++ php-src/ext/pdo/tests/bug_39656.phptThu Feb  1 00:12:39 2007
@@ -1,5 +1,5 @@
 --TEST--
-PDO Common: Bug #39656 (Crash when calling fetch() on a PDO statment object 
after closeCursor())
+PDO Common: Bug #40285 (The prepare parser goes into an infinite loop on ': or 
:)
 --SKIPIF--
 ?php  
 if (!extension_loaded('pdo')) die('skip');
@@ -15,36 +15,13 @@
 require_once getenv('REDIR_TEST_DIR') . 'pdo_test.inc';
 $db = PDOTest::factory();
 
[EMAIL PROTECTED]exec(DROP TABLE testtable);
-$db-setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
+$db-exec('CREATE TABLE test (field1 VARCHAR(32), field2 VARCHAR(32), field3 
VARCHAR(32), field4 INT)');
 
-$db-exec(CREATE TABLE testtable (id INTEGER NOT NULL PRIMARY KEY, usr 
VARCHAR( 256 ) NOT NULL));
-$db-exec(INSERT INTO testtable (id, usr) VALUES (1, 'user'));
-
-$stmt = $db-prepare(SELECT * FROM testtable WHERE id = ?);
-$stmt-bindValue(1, 1, PDO::PARAM_INT );
-$stmt-execute();
-$row = $stmt-fetch();
-var_dump( $row );
-
-$stmt-execute();
-$stmt-closeCursor();
-$row = $stmt-fetch(); // this line will crash CLI
-var_dump( $row );
+$db-setAttribute(PDO::ATTR_EMULATE_PREPARES, true);
+$s = $db-prepare(INSERT INTO test VALUES( ':id', 'name', 'section', 22) );
+$s-execute();
 
 echo Done\n;
 ?
 --EXPECT-- 
-array(4) {
-  [id]=
-  string(1) 1
-  [0]=
-  string(1) 1
-  [usr]=
-  string(4) user
-  [1]=
-  string(4) user
-}
-bool(false)
 Done
-
http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.517r2=1.2027.2.547.2.518diff_format=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2027.2.547.2.517 php-src/NEWS:1.2027.2.547.2.518
--- php-src/NEWS:1.2027.2.547.2.517 Wed Jan 31 13:57:58 2007
+++ php-src/NEWSThu Feb  1 00:12:39 2007
@@ -101,6 +101,8 @@
   the user part of the email address. (Derick)
 - Fixed bug #40297 (compile failure in ZTS mode when collections support is 
   missing). (Tony)
+- Fixed bug #40285 (The PDO prepare parser goes into an infinite loop in
+  some instances). (Ilia)
 - Fixed bug #40259 (ob_start call many times - memory error). (Dmitry)
 - Fixed bug #40231 (file_exists incorrectly reports false). (Dmitry)
 - Fixed bug #40228 (ZipArchive::extractTo does create empty directories 
http://cvs.php.net/viewvc.cgi/php-src/ext/pdo/pdo_sql_parser.re?r1=1.28.2.4.2.6r2=1.28.2.4.2.7diff_format=u
Index: php-src/ext/pdo/pdo_sql_parser.re
diff -u php-src/ext/pdo/pdo_sql_parser.re:1.28.2.4.2.6 
php-src/ext/pdo/pdo_sql_parser.re:1.28.2.4.2.7
--- php-src/ext/pdo/pdo_sql_parser.re:1.28.2.4.2.6  Wed Jan  3 22:05:24 2007
+++ php-src/ext/pdo/pdo_sql_parser.re   Thu Feb  1 00:12:39 2007
@@ -16,7 +16,7 @@
   +--+
 */
 
-/* $Id: pdo_sql_parser.re,v 1.28.2.4.2.6 2007/01/03 22:05:24 nlopess Exp $ */
+/* $Id: pdo_sql_parser.re,v 1.28.2.4.2.7 2007/02/01 00:12:39 iliaa Exp $ */
 
 #include php.h
 #include php_pdo_driver.h
@@ -48,6 +48,7 @@
BINDCHR = [:][a-zA-Z0-9_]+;
QUESTION= [?];
SPECIALS= [:?'];
+   MULTICHAR   = [:?];
EOF = [\000];
ANYNOEOF= [\001-\377];
*/
@@ -55,7 +56,7 @@
/*!re2c
([] ([^])* [])   { RET(PDO_PARSER_TEXT); }
(['] ([^'])* ['])   { RET(PDO_PARSER_TEXT); }
-   SPECIALS{2,}
{ RET(PDO_PARSER_TEXT); }
+   MULTICHAR{2,}   
{ RET(PDO_PARSER_TEXT); }
BINDCHR 
{ RET(PDO_PARSER_BIND); }
QUESTION
{ RET(PDO_PARSER_BIND_POS); }
SPECIALS
{ RET(PDO_PARSER_TEXT); }
http://cvs.php.net/viewvc.cgi/php-src/ext/pdo/pdo_sql_parser.c?r1=1.35.2.6.2.8r2=1.35.2.6.2.9diff_format=u
Index: php-src/ext/pdo/pdo_sql_parser.c
diff -u php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.8 
php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.9
--- php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.8   Wed Jan  3 22:05:24 2007
+++ php-src/ext/pdo/pdo_sql_parser.cThu Feb  1 00:12:39 2007
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.10.4 on Wed 

[PHP-CVS] cvs: php-src(PHP_5_2) / NEWS /ext/pdo pdo_sql_parser.c pdo_sql_parser.re /ext/pdo/tests bug_36798.phpt

2006-12-05 Thread Ilia Alshanetsky
iliaa   Tue Dec  5 18:05:00 2006 UTC

  Added files: (Branch: PHP_5_2)
/php-src/ext/pdo/tests  bug_36798.phpt 

  Modified files:  
/php-src/ext/pdopdo_sql_parser.re pdo_sql_parser.c 
/php-srcNEWS 
  Log:
  Fixed bug #36798 (Error parsing named parameters with queries containing  
  high-ascii chars).
  http://cvs.php.net/viewvc.cgi/php-src/ext/pdo/pdo_sql_parser.re?r1=1.28.2.4.2.4r2=1.28.2.4.2.5diff_format=u
Index: php-src/ext/pdo/pdo_sql_parser.re
diff -u php-src/ext/pdo/pdo_sql_parser.re:1.28.2.4.2.4 
php-src/ext/pdo/pdo_sql_parser.re:1.28.2.4.2.5
--- php-src/ext/pdo/pdo_sql_parser.re:1.28.2.4.2.4  Mon Dec  4 00:38:46 2006
+++ php-src/ext/pdo/pdo_sql_parser.re   Tue Dec  5 18:04:59 2006
@@ -16,7 +16,7 @@
   +--+
 */
 
-/* $Id: pdo_sql_parser.re,v 1.28.2.4.2.4 2006/12/04 00:38:46 iliaa Exp $ */
+/* $Id: pdo_sql_parser.re,v 1.28.2.4.2.5 2006/12/05 18:04:59 iliaa Exp $ */
 
 #include php.h
 #include php_pdo_driver.h
@@ -48,15 +48,13 @@
BINDCHR = [:][a-zA-Z0-9_]+;
QUESTION= [?];
SPECIALS= [:?'];
-   ESCQQ   = [\\][];
-   ESCQ= [\\]['];
-   EOF = [\000];
+   EOF = [\000];
ANYNOEOF= [\001-\377];
*/
 
/*!re2c
-   ([] (ESCQQ|[\\]ANYNOEOF|ANYNOEOF\[\\])* [])  { 
RET(PDO_PARSER_TEXT); }
-   (['] (ESCQ|[\\]ANYNOEOF|ANYNOEOF\[\\'])* ['])   { 
RET(PDO_PARSER_TEXT); }
+   ([] ([^])* [])   { RET(PDO_PARSER_TEXT); }
+   (['] ([^'])* ['])   { RET(PDO_PARSER_TEXT); }
SPECIALS{2,}
{ RET(PDO_PARSER_TEXT); }
BINDCHR 
{ RET(PDO_PARSER_BIND); }
QUESTION
{ RET(PDO_PARSER_BIND_POS); }
http://cvs.php.net/viewvc.cgi/php-src/ext/pdo/pdo_sql_parser.c?r1=1.35.2.6.2.5r2=1.35.2.6.2.6diff_format=u
Index: php-src/ext/pdo/pdo_sql_parser.c
diff -u php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.5 
php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.6
--- php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.5   Mon Dec  4 00:38:46 2006
+++ php-src/ext/pdo/pdo_sql_parser.cTue Dec  5 18:04:59 2006
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.10.6 on Sun Dec  3 19:05:06 2006 */
+/* Generated by re2c 0.10.6 on Mon Dec  4 16:21:45 2006 */
 #line 1 ext/pdo/pdo_sql_parser.re
 /*
   +--+
@@ -18,7 +18,7 @@
   +--+
 */
 
-/* $Id: pdo_sql_parser.c,v 1.35.2.6.2.5 2006/12/04 00:38:46 iliaa Exp $ */
+/* $Id: pdo_sql_parser.c,v 1.35.2.6.2.6 2006/12/05 18:04:59 iliaa Exp $ */
 
 #include php.h
 #include php_pdo_driver.h
@@ -46,12 +46,12 @@
char *cursor = s-cur;
 
s-tok = cursor;
-   #line 55 ext/pdo/pdo_sql_parser.re
+   #line 53 ext/pdo/pdo_sql_parser.re
 
 
{
static unsigned char yybm[] = {
- 0, 162, 162, 162, 162, 162, 162, 162, 
+   160, 162, 162, 162, 162, 162, 162, 162, 
162, 162, 162, 162, 162, 162, 162, 162, 
162, 162, 162, 162, 162, 162, 162, 162, 
162, 162, 162, 162, 162, 162, 162, 162, 
@@ -62,7 +62,7 @@
162, 170, 170, 170, 170, 170, 170, 170, 
170, 170, 170, 170, 170, 170, 170, 170, 
170, 170, 170, 170, 170, 170, 170, 170, 
-   170, 170, 170, 162,   2, 162, 162, 170, 
+   170, 170, 170, 162, 162, 162, 162, 170, 
162, 170, 170, 170, 170, 170, 170, 170, 
170, 170, 170, 170, 170, 170, 170, 170, 
170, 170, 170, 170, 170, 170, 170, 170, 
@@ -88,7 +88,6 @@
 #line 89 ext/pdo/pdo_sql_parser.c
{
YYCTYPE yych;
-   unsigned int yyaccept = 0;
 
if((YYLIMIT - YYCURSOR)  3) YYFILL(3);
yych = *YYCURSOR;
@@ -101,27 +100,23 @@
if(yych = '') goto yy5;
goto yy6;
 yy2:
-   yyaccept = 0;
-   yych = *(YYMARKER = ++YYCURSOR);
+   yych = *++YYCURSOR;
if(yybm[0+yych]  64) {
-   goto yy30;
+   goto yy28;
}
-   if(yych = 0x00) goto yy3;
-   if(yych == '') goto yy28;
-   goto yy33;
+   if(yych == '') goto yy26;
+   goto yy30;
 yy3:
-#line 63 ext/pdo/pdo_sql_parser.re
+#line 61 ext/pdo/pdo_sql_parser.re
{ RET(PDO_PARSER_TEXT); }
-#line 116 ext/pdo/pdo_sql_parser.c
+#line 113 ext/pdo/pdo_sql_parser.c
 yy4:
-   yyaccept = 0;
-   yych = 

[PHP-CVS] cvs: php-src(PHP_5_2) / NEWS /ext/pdo pdo_sql_parser.c pdo_sql_parser.re

2006-12-03 Thread Ilia Alshanetsky
iliaa   Mon Dec  4 00:38:46 2006 UTC

  Modified files:  (Branch: PHP_5_2)
/php-src/ext/pdopdo_sql_parser.c pdo_sql_parser.re 
/php-srcNEWS 
  Log:
  Fixed bug #39483 (Problem with handling of \ char in prepared statements).
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/pdo/pdo_sql_parser.c?r1=1.35.2.6.2.4r2=1.35.2.6.2.5diff_format=u
Index: php-src/ext/pdo/pdo_sql_parser.c
diff -u php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.4 
php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.5
--- php-src/ext/pdo/pdo_sql_parser.c:1.35.2.6.2.4   Sun Dec  3 23:27:44 2006
+++ php-src/ext/pdo/pdo_sql_parser.cMon Dec  4 00:38:46 2006
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.10.6 on Sun Dec  3 18:24:46 2006 */
+/* Generated by re2c 0.10.6 on Sun Dec  3 19:05:06 2006 */
 #line 1 ext/pdo/pdo_sql_parser.re
 /*
   +--+
@@ -18,7 +18,7 @@
   +--+
 */
 
-/* $Id: pdo_sql_parser.c,v 1.35.2.6.2.4 2006/12/03 23:27:44 iliaa Exp $ */
+/* $Id: pdo_sql_parser.c,v 1.35.2.6.2.5 2006/12/04 00:38:46 iliaa Exp $ */
 
 #include php.h
 #include php_pdo_driver.h
@@ -232,8 +232,8 @@
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-   if(yych == '\'') goto yy23;
-   goto yy25;
+   if(yych = 0x00) goto yy25;
+   goto yy23;
 yy27:
yych = *++YYCURSOR;
goto yy22;
@@ -274,8 +274,8 @@
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-   if(yych == '') goto yy32;
-   goto yy25;
+   if(yych = 0x00) goto yy25;
+   goto yy32;
 yy35:
++YYCURSOR;
yych = *YYCURSOR;
http://cvs.php.net/viewvc.cgi/php-src/ext/pdo/pdo_sql_parser.re?r1=1.28.2.4.2.3r2=1.28.2.4.2.4diff_format=u
Index: php-src/ext/pdo/pdo_sql_parser.re
diff -u php-src/ext/pdo/pdo_sql_parser.re:1.28.2.4.2.3 
php-src/ext/pdo/pdo_sql_parser.re:1.28.2.4.2.4
--- php-src/ext/pdo/pdo_sql_parser.re:1.28.2.4.2.3  Sun Dec  3 23:27:44 2006
+++ php-src/ext/pdo/pdo_sql_parser.re   Mon Dec  4 00:38:46 2006
@@ -16,7 +16,7 @@
   +--+
 */
 
-/* $Id: pdo_sql_parser.re,v 1.28.2.4.2.3 2006/12/03 23:27:44 iliaa Exp $ */
+/* $Id: pdo_sql_parser.re,v 1.28.2.4.2.4 2006/12/04 00:38:46 iliaa Exp $ */
 
 #include php.h
 #include php_pdo_driver.h
@@ -55,8 +55,8 @@
*/
 
/*!re2c
-   ([] (ESCQQ|ANYNOEOF\[\\])* [])   { 
RET(PDO_PARSER_TEXT); }
-   (['] (ESCQ|ANYNOEOF\[\\'])* [']){ 
RET(PDO_PARSER_TEXT); }
+   ([] (ESCQQ|[\\]ANYNOEOF|ANYNOEOF\[\\])* [])  { 
RET(PDO_PARSER_TEXT); }
+   (['] (ESCQ|[\\]ANYNOEOF|ANYNOEOF\[\\'])* ['])   { 
RET(PDO_PARSER_TEXT); }
SPECIALS{2,}
{ RET(PDO_PARSER_TEXT); }
BINDCHR 
{ RET(PDO_PARSER_BIND); }
QUESTION
{ RET(PDO_PARSER_BIND_POS); }
http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.394r2=1.2027.2.547.2.395diff_format=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2027.2.547.2.394 php-src/NEWS:1.2027.2.547.2.395
--- php-src/NEWS:1.2027.2.547.2.394 Sun Dec  3 21:27:35 2006
+++ php-src/NEWSMon Dec  4 00:38:46 2006
@@ -82,6 +82,8 @@
   ZEND_MM_ALIGNED_MIN_HEADER_SIZE). (wharmby at uk dot ibm dot com, Dmitry)
 - Fixed bug #39527 (Failure to retrieve results when multiple unbuffered,
   prepared statements are used in pdo_mysql). (Ilia)
+- Fixed bug #39483 (Problem with handling of \ char in prepared statements).
+  (Ilia, suhachov at gmail dot com)
 - Fixed bug #39458 (ftp_nlist() returns false on empty dirs). (Nuno)
 - Fixed bug #39454 (Returning a SOAP array segfaults PHP). (Dmitry)
 - Fixed bug #39445 (Calling debug_backtrace() in the __toString() function

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