diff options
author | Muhammad Moinur Rahman <bofh@FreeBSD.org> | 2025-07-02 09:54:37 +0000 |
---|---|---|
committer | Muhammad Moinur Rahman <bofh@FreeBSD.org> | 2025-07-02 16:29:38 +0000 |
commit | c0b9892033cb566ec6a0c6d0fe5ce4b97c4c88de (patch) | |
tree | d492c87afa7175e6c8eee0669fcb4df1aa223c27 /databases/php85-pdo_sqlite/files/patch-sqlite__sql__parser.c | |
parent | 44399f99c7f3f1f8d69e48d7adbdc53bfada8289 (diff) |
Diffstat (limited to 'databases/php85-pdo_sqlite/files/patch-sqlite__sql__parser.c')
-rw-r--r-- | databases/php85-pdo_sqlite/files/patch-sqlite__sql__parser.c | 398 |
1 files changed, 398 insertions, 0 deletions
diff --git a/databases/php85-pdo_sqlite/files/patch-sqlite__sql__parser.c b/databases/php85-pdo_sqlite/files/patch-sqlite__sql__parser.c new file mode 100644 index 000000000000..5770c5cf3f7f --- /dev/null +++ b/databases/php85-pdo_sqlite/files/patch-sqlite__sql__parser.c @@ -0,0 +1,398 @@ +--- sqlite_sql_parser.c.orig 2025-07-02 13:27:28 UTC ++++ sqlite_sql_parser.c +@@ -0,0 +1,395 @@ ++/* Generated by re2c 3.1 */ ++/* ++ +----------------------------------------------------------------------+ ++ | Copyright (c) The PHP Group | ++ +----------------------------------------------------------------------+ ++ | This source file is subject to version 3.01 of the PHP license, | ++ | that is bundled with this package in the file LICENSE, and is | ++ | available through the world-wide-web at the following url: | ++ | https://www.php.net/license/3_01.txt | ++ | If you did not receive a copy of the PHP license and are unable to | ++ | obtain it through the world-wide-web, please send a note to | ++ | license@php.net so we can mail you a copy immediately. | ++ +----------------------------------------------------------------------+ ++ | Author: Matteo Beccati <mbeccati@php.net> | ++ +----------------------------------------------------------------------+ ++*/ ++ ++ ++#include "php.h" ++#include "ext/pdo/php_pdo_driver.h" ++#include "ext/pdo/pdo_sql_parser.h" ++ ++int pdo_sqlite_scanner(pdo_scanner_t *s) ++{ ++ const char *cursor = s->cur; ++ ++ s->tok = cursor; ++ ++ ++ ++{ ++ YYCTYPE yych; ++ unsigned int yyaccept = 0; ++ if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case 0x00: goto yy1; ++ case '"': goto yy4; ++ case '\'': goto yy6; ++ case '-': goto yy7; ++ case '/': goto yy8; ++ case ':': goto yy9; ++ case '?': goto yy10; ++ case '[': goto yy12; ++ case '`': goto yy13; ++ default: goto yy2; ++ } ++yy1: ++ YYCURSOR = YYMARKER; ++ switch (yyaccept) { ++ case 0: goto yy5; ++ case 1: goto yy17; ++ case 2: goto yy21; ++ case 3: goto yy33; ++ default: goto yy37; ++ } ++yy2: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case 0x00: ++ case '"': ++ case '\'': ++ case '-': ++ case '/': ++ case ':': ++ case '?': ++ case '[': ++ case '`': goto yy3; ++ default: goto yy2; ++ } ++yy3: ++ { RET(PDO_PARSER_TEXT); } ++yy4: ++ yyaccept = 0; ++ yych = *(YYMARKER = ++YYCURSOR); ++ if (yych >= 0x01) goto yy15; ++yy5: ++ { SKIP_ONE(PDO_PARSER_TEXT); } ++yy6: ++ yyaccept = 0; ++ yych = *(YYMARKER = ++YYCURSOR); ++ if (yych <= 0x00) goto yy5; ++ goto yy19; ++yy7: ++ yych = *++YYCURSOR; ++ switch (yych) { ++ case '-': goto yy22; ++ default: goto yy5; ++ } ++yy8: ++ yych = *++YYCURSOR; ++ switch (yych) { ++ case '*': goto yy24; ++ default: goto yy5; ++ } ++yy9: ++ yych = *++YYCURSOR; ++ switch (yych) { ++ 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 yy25; ++ case ':': goto yy27; ++ default: goto yy5; ++ } ++yy10: ++ yych = *++YYCURSOR; ++ switch (yych) { ++ case '?': goto yy29; ++ default: goto yy11; ++ } ++yy11: ++ { RET(PDO_PARSER_BIND_POS); } ++yy12: ++ yyaccept = 0; ++ yych = *(YYMARKER = ++YYCURSOR); ++ if (yych <= 0x00) goto yy5; ++ goto yy31; ++yy13: ++ yyaccept = 0; ++ yych = *(YYMARKER = ++YYCURSOR); ++ if (yych <= 0x00) goto yy5; ++ goto yy35; ++yy14: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++yy15: ++ switch (yych) { ++ case 0x00: goto yy1; ++ case '"': goto yy16; ++ default: goto yy14; ++ } ++yy16: ++ yyaccept = 1; ++ YYMARKER = ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case 0x00: goto yy17; ++ case '"': goto yy16; ++ default: goto yy14; ++ } ++yy17: ++ { RET(PDO_PARSER_TEXT); } ++yy18: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++yy19: ++ switch (yych) { ++ case 0x00: goto yy1; ++ case '\'': goto yy20; ++ default: goto yy18; ++ } ++yy20: ++ yyaccept = 2; ++ YYMARKER = ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case 0x00: goto yy21; ++ case '\'': goto yy20; ++ default: goto yy18; ++ } ++yy21: ++ { RET(PDO_PARSER_TEXT); } ++yy22: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '\n': goto yy23; ++ default: goto yy22; ++ } ++yy23: ++ { RET(PDO_PARSER_TEXT); } ++yy24: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '*': goto yy38; ++ default: goto yy24; ++ } ++yy25: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ 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 yy25; ++ default: goto yy26; ++ } ++yy26: ++ { RET(PDO_PARSER_BIND); } ++yy27: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case ':': goto yy27; ++ default: goto yy28; ++ } ++yy28: ++ { RET(PDO_PARSER_TEXT); } ++yy29: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '?': goto yy29; ++ default: goto yy28; ++ } ++yy30: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++yy31: ++ switch (yych) { ++ case 0x00: goto yy1; ++ case ']': goto yy32; ++ default: goto yy30; ++ } ++yy32: ++ yyaccept = 3; ++ YYMARKER = ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case 0x00: goto yy33; ++ case ']': goto yy32; ++ default: goto yy30; ++ } ++yy33: ++ { RET(PDO_PARSER_TEXT); } ++yy34: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++yy35: ++ switch (yych) { ++ case 0x00: goto yy1; ++ case '`': goto yy36; ++ default: goto yy34; ++ } ++yy36: ++ yyaccept = 4; ++ YYMARKER = ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case 0x00: goto yy37; ++ case '`': goto yy36; ++ default: goto yy34; ++ } ++yy37: ++ { RET(PDO_PARSER_TEXT); } ++yy38: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '*': goto yy38; ++ case '/': goto yy39; ++ default: goto yy24; ++ } ++yy39: ++ ++YYCURSOR; ++ goto yy23; ++} ++ ++} |