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/pdo    pdo_sql_parser.re pdo_sql_parser.c 
    /php-src    NEWS 
  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.9&r2=1.28.2.4.2.10&diff_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.12&r2=1.35.2.6.2.13&diff_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.c    Mon 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:        goto yy8;
+       }
 yy2:
-               yych = *++YYCURSOR;
-               goto yy24;
+       yych = *++YYCURSOR;
+       goto yy24;
 yy3:
 #line 63 "ext/pdo/pdo_sql_parser.re"
-               { SKIP_ONE(PDO_PARSER_TEXT); }
-#line 110 "ext/pdo/pdo_sql_parser.c"
+       { SKIP_ONE(PDO_PARSER_TEXT); }
+#line 75 "ext/pdo/pdo_sql_parser.c"
 yy4:
-               yych = *++YYCURSOR;
-               goto yy20;
+       yych = *++YYCURSOR;
+       goto yy20;
 yy5:
-               yych = *++YYCURSOR;
-               if(yybm[0+yych] & 32) {
-                       goto yy16;
-               }
-               if(yych == ':') goto yy13;
-               if(yych == '?') goto yy13;
-               goto yy3;
+       yych = *++YYCURSOR;
+       switch(yych) {
+       case '-':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':       goto yy16;
+       case ':':
+       case '?':       goto yy13;
+       default:        goto yy3;
+       }
 yy6:
-               ++YYCURSOR;
-               if(yybm[0+(yych = *YYCURSOR)] & 16) {
-                       goto yy13;
-               }
+       ++YYCURSOR;
+       switch((yych = *YYCURSOR)) {
+       case ':':
+       case '?':       goto yy13;
+       default:        goto yy7;
+       }
+yy7:
 #line 62 "ext/pdo/pdo_sql_parser.re"
-               { RET(PDO_PARSER_BIND_POS); }
-#line 129 "ext/pdo/pdo_sql_parser.c"
+       { RET(PDO_PARSER_BIND_POS); }
+#line 160 "ext/pdo/pdo_sql_parser.c"
 yy8:
-               ++YYCURSOR;
-               if(YYLIMIT == YYCURSOR) YYFILL(1);
-               yych = *YYCURSOR;
-               if(yybm[0+yych] & 8) {
-                       goto yy8;
-               }
+       ++YYCURSOR;
+       if(YYLIMIT == YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch(yych) {
+       case 0x00:
+       case '"':
+       case '\'':
+       case ':':
+       case '?':       goto yy10;
+       default:        goto yy8;
+       }
+yy10:
 #line 64 "ext/pdo/pdo_sql_parser.re"
-               { RET(PDO_PARSER_TEXT); }
-#line 139 "ext/pdo/pdo_sql_parser.c"
+       { RET(PDO_PARSER_TEXT); }
+#line 176 "ext/pdo/pdo_sql_parser.c"
 yy11:
-               ++YYCURSOR;
+       ++YYCURSOR;
 #line 65 "ext/pdo/pdo_sql_parser.re"
-               { RET(PDO_PARSER_EOI); }
-#line 144 "ext/pdo/pdo_sql_parser.c"
+       { RET(PDO_PARSER_EOI); }
+#line 181 "ext/pdo/pdo_sql_parser.c"
 yy13:
-               ++YYCURSOR;
-               if(YYLIMIT == YYCURSOR) YYFILL(1);
-               yych = *YYCURSOR;
-               if(yybm[0+yych] & 16) {
-                       goto yy13;
-               }
+       ++YYCURSOR;
+       if(YYLIMIT == YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch(yych) {
+       case ':':
+       case '?':       goto yy13;
+       default:        goto yy15;
+       }
+yy15:
 #line 60 "ext/pdo/pdo_sql_parser.re"
-               { RET(PDO_PARSER_TEXT); }
-#line 154 "ext/pdo/pdo_sql_parser.c"
+       { RET(PDO_PARSER_TEXT); }
+#line 194 "ext/pdo/pdo_sql_parser.c"
 yy16:
-               ++YYCURSOR;
-               if(YYLIMIT == YYCURSOR) YYFILL(1);
-               yych = *YYCURSOR;
-               if(yybm[0+yych] & 32) {
-                       goto yy16;
-               }
+       ++YYCURSOR;
+       if(YYLIMIT == YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch(yych) {
+       case '-':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':       goto yy16;
+       default:        goto yy18;
+       }
+yy18:
 #line 61 "ext/pdo/pdo_sql_parser.re"
-               { RET(PDO_PARSER_BIND); }
-#line 164 "ext/pdo/pdo_sql_parser.c"
+       { RET(PDO_PARSER_BIND); }
+#line 269 "ext/pdo/pdo_sql_parser.c"
 yy19:
-               ++YYCURSOR;
-               if(YYLIMIT == YYCURSOR) YYFILL(1);
-               yych = *YYCURSOR;
+       ++YYCURSOR;
+       if(YYLIMIT == YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
 yy20:
-               if(yybm[0+yych] & 64) {
-                       goto yy19;
-               }
-               ++YYCURSOR;
+       switch(yych) {
+       case '\'':      goto yy21;
+       default:        goto yy19;
+       }
+yy21:
+       ++YYCURSOR;
 #line 59 "ext/pdo/pdo_sql_parser.re"
-               { RET(PDO_PARSER_TEXT); }
-#line 176 "ext/pdo/pdo_sql_parser.c"
+       { RET(PDO_PARSER_TEXT); }
+#line 283 "ext/pdo/pdo_sql_parser.c"
 yy23:
-               ++YYCURSOR;
-               if(YYLIMIT == YYCURSOR) YYFILL(1);
-               yych = *YYCURSOR;
+       ++YYCURSOR;
+       if(YYLIMIT == YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
 yy24:
-               if(yybm[0+yych] & 128) {
-                       goto yy23;
-               }
-               ++YYCURSOR;
-#line 58 "ext/pdo/pdo_sql_parser.re"
-               { RET(PDO_PARSER_TEXT); }
-#line 188 "ext/pdo/pdo_sql_parser.c"
+       switch(yych) {
+       case '"':       goto yy25;
+       default:        goto yy23;
        }
+yy25:
+       ++YYCURSOR;
+#line 58 "ext/pdo/pdo_sql_parser.re"
+       { RET(PDO_PARSER_TEXT); }
+#line 297 "ext/pdo/pdo_sql_parser.c"
 }
 #line 66 "ext/pdo/pdo_sql_parser.re"
        
http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.990&r2=1.2027.2.547.2.991&diff_format=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2027.2.547.2.990 php-src/NEWS:1.2027.2.547.2.991
--- php-src/NEWS:1.2027.2.547.2.990     Sun Oct 28 13:47:14 2007
+++ php-src/NEWS        Mon Oct 29 22:37:25 2007
@@ -40,6 +40,7 @@
 - Fixed htmlentities/htmlspecialchars not to accept partial multibyte
   sequences. (Stas)
 
+- Fixed bug #43130 (Bound parameters cannot have - in their name). (Ilia)
 - Fixed bug #43099 (XMLWriter::endElement() does not check # of params).
   (Ilia)
 - Fixed bug #43020 (Warning message is missing with shuffle() and more

http://cvs.php.net/viewvc.cgi/php-src/ext/pdo/tests/bug_43130.phpt?view=markup&rev=1.1
Index: php-src/ext/pdo/tests/bug_43130.phpt
+++ php-src/ext/pdo/tests/bug_43130.phpt

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

Reply via email to