diff options
Diffstat (limited to 'databases')
46 files changed, 2306 insertions, 28 deletions
diff --git a/databases/Makefile b/databases/Makefile index a119d2b4f190..ce29492a0960 100644 --- a/databases/Makefile +++ b/databases/Makefile @@ -633,6 +633,18 @@ SUBDIR += php84-pdo_sqlite SUBDIR += php84-pgsql SUBDIR += php84-sqlite3 + SUBDIR += php85-dba + SUBDIR += php85-mysqli + SUBDIR += php85-odbc + SUBDIR += php85-pdo + SUBDIR += php85-pdo_dblib + SUBDIR += php85-pdo_firebird + SUBDIR += php85-pdo_mysql + SUBDIR += php85-pdo_odbc + SUBDIR += php85-pdo_pgsql + SUBDIR += php85-pdo_sqlite + SUBDIR += php85-pgsql + SUBDIR += php85-sqlite3 SUBDIR += phpliteadmin SUBDIR += phpminiadmin SUBDIR += phpmyadmin diff --git a/databases/akonadi/Makefile b/databases/akonadi/Makefile index 8d003ecddac1..60f5b9fb2739 100644 --- a/databases/akonadi/Makefile +++ b/databases/akonadi/Makefile @@ -1,6 +1,5 @@ PORTNAME= akonadi DISTVERSION= ${KDE_APPLICATIONS_VERSION} -PORTREVISION= 1 CATEGORIES= databases kde kde-applications MAINTAINER= kde@FreeBSD.org diff --git a/databases/akonadi/distinfo b/databases/akonadi/distinfo index 2e162fceb73d..9956fa9a1f92 100644 --- a/databases/akonadi/distinfo +++ b/databases/akonadi/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1749036257 -SHA256 (KDE/release-service/25.04.2/akonadi-25.04.2.tar.xz) = c4689a6e80d4f8b744e31459e768d977044cbd3b8fb42d14ed1cf7e7bacae52d -SIZE (KDE/release-service/25.04.2/akonadi-25.04.2.tar.xz) = 1735160 +TIMESTAMP = 1751381215 +SHA256 (KDE/release-service/25.04.3/akonadi-25.04.3.tar.xz) = 042cd3319eadfb82547773e52ce7d41d361d58c4e92fe75a5179c1574ed4f5df +SIZE (KDE/release-service/25.04.3/akonadi-25.04.3.tar.xz) = 1742704 diff --git a/databases/akonadi/pkg-plist b/databases/akonadi/pkg-plist index 9818e81efe7e..8c01869be858 100644 --- a/databases/akonadi/pkg-plist +++ b/databases/akonadi/pkg-plist @@ -428,6 +428,7 @@ share/locale/gl/LC_MESSAGES/akonadi_knut_resource.mo share/locale/gl/LC_MESSAGES/libakonadi6.mo share/locale/he/LC_MESSAGES/akonadi-db-migrator.mo share/locale/he/LC_MESSAGES/akonadi_knut_resource.mo +share/locale/he/LC_MESSAGES/libakonadi6.mo share/locale/hi/LC_MESSAGES/akonadi-db-migrator.mo share/locale/hi/LC_MESSAGES/akonadi_knut_resource.mo share/locale/hi/LC_MESSAGES/libakonadi6.mo diff --git a/databases/diesel/Makefile b/databases/diesel/Makefile index d7903b93bee0..1d3f9023abf4 100644 --- a/databases/diesel/Makefile +++ b/databases/diesel/Makefile @@ -1,6 +1,7 @@ PORTNAME= diesel DISTVERSIONPREFIX= v DISTVERSION= 2.2.11 +PORTREVISION= 1 CATEGORIES= databases PKGNAMESUFFIX= -cli diff --git a/databases/frece/Makefile b/databases/frece/Makefile index fe0c68108bc1..e153c3e018a6 100644 --- a/databases/frece/Makefile +++ b/databases/frece/Makefile @@ -1,7 +1,7 @@ PORTNAME= frece DISTVERSIONPREFIX= v DISTVERSION= 1.0.6 -PORTREVISION= 22 +PORTREVISION= 23 CATEGORIES= databases MAINTAINER= yuri@FreeBSD.org diff --git a/databases/freetds-devel/Makefile b/databases/freetds-devel/Makefile index 3aa025c69410..71f3c3a9a605 100644 --- a/databases/freetds-devel/Makefile +++ b/databases/freetds-devel/Makefile @@ -1,5 +1,5 @@ PORTNAME= freetds -DISTVERSION= 1.5.93 +DISTVERSION= 1.5.97 PORTEPOCH= 1 CATEGORIES= databases MASTER_SITES= https://www.freetds.org/files/current/ diff --git a/databases/freetds-devel/distinfo b/databases/freetds-devel/distinfo index e129994ec8a4..687e26c403ec 100644 --- a/databases/freetds-devel/distinfo +++ b/databases/freetds-devel/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1751266227 -SHA256 (freetds-dev.1.5.93.tar.bz2) = 79b4cddedac0161ed2f7165891fd12f497c2fc8f4c53acd0f140e3235d85282a -SIZE (freetds-dev.1.5.93.tar.bz2) = 2461576 +TIMESTAMP = 1751498164 +SHA256 (freetds-dev.1.5.97.tar.bz2) = 9798b1b2b324f6dbe64b5bc78c7ed891c239f1e542565d1cf7cd1fa1bdefd915 +SIZE (freetds-dev.1.5.97.tar.bz2) = 2452586 diff --git a/databases/freetds/Makefile b/databases/freetds/Makefile index 219b1997805e..3d2da413694a 100644 --- a/databases/freetds/Makefile +++ b/databases/freetds/Makefile @@ -1,5 +1,5 @@ PORTNAME= freetds -DISTVERSION= 1.5.3 +DISTVERSION= 1.5.4 PORTEPOCH= 1 CATEGORIES= databases MASTER_SITES= https://www.freetds.org/files/stable/ \ diff --git a/databases/freetds/distinfo b/databases/freetds/distinfo index 5f3285c47b2d..9bcef94b2f05 100644 --- a/databases/freetds/distinfo +++ b/databases/freetds/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1751266117 -SHA256 (freetds-1.5.3.tar.bz2) = 5cb66c46a60a83b8a2855e466148b6fa27962c7fd1dcb3f6e5d0ab17ec5ff6dd -SIZE (freetds-1.5.3.tar.bz2) = 2439435 +TIMESTAMP = 1751442687 +SHA256 (freetds-1.5.4.tar.bz2) = 1d024ef418d74a3a8f2cca82f10f1561f1dde28dc3d6f65c815f07764d4f7ea8 +SIZE (freetds-1.5.4.tar.bz2) = 2440514 diff --git a/databases/gobang/Makefile b/databases/gobang/Makefile index 3a4df9986c69..b972c867cda7 100644 --- a/databases/gobang/Makefile +++ b/databases/gobang/Makefile @@ -1,7 +1,7 @@ PORTNAME= gobang DISTVERSIONPREFIX= v DISTVERSION= 0.1.0-alpha.5 -PORTREVISION= 23 +PORTREVISION= 24 CATEGORIES= databases MAINTAINER= yuri@FreeBSD.org diff --git a/databases/mongodb70/Makefile b/databases/mongodb70/Makefile index 0b54ffa2fa64..b7e4a990921f 100644 --- a/databases/mongodb70/Makefile +++ b/databases/mongodb70/Makefile @@ -1,7 +1,7 @@ PORTNAME= mongodb DISTVERSIONPREFIX= r DISTVERSION= 7.0.21 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= databases net PKGNAMESUFFIX= ${DISTVERSION:R:S/.//} diff --git a/databases/mongodb80/Makefile b/databases/mongodb80/Makefile index 260c6f5aa3be..54c4447d8508 100644 --- a/databases/mongodb80/Makefile +++ b/databases/mongodb80/Makefile @@ -1,7 +1,7 @@ PORTNAME= mongodb DISTVERSIONPREFIX= r DISTVERSION= 8.0.10 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= databases net PKGNAMESUFFIX= ${DISTVERSION:R:S/.//} diff --git a/databases/movine/Makefile b/databases/movine/Makefile index 7a625a8f3db5..b17ee8023ee5 100644 --- a/databases/movine/Makefile +++ b/databases/movine/Makefile @@ -1,7 +1,7 @@ PORTNAME= movine DISTVERSIONPREFIX= v DISTVERSION= 0.11.0 -PORTREVISION= 22 +PORTREVISION= 23 CATEGORIES= databases MAINTAINER= yuri@FreeBSD.org diff --git a/databases/ods2sql/Makefile b/databases/ods2sql/Makefile index 1bf49948ccf1..4ea15dad3773 100644 --- a/databases/ods2sql/Makefile +++ b/databases/ods2sql/Makefile @@ -1,6 +1,6 @@ PORTNAME= ods2sql DISTVERSION= 0.4.0 -PORTREVISION= 42 +PORTREVISION= 43 CATEGORIES= databases MAINTAINER= yuri@FreeBSD.org diff --git a/databases/pear-DoctrineCommon/Makefile b/databases/pear-DoctrineCommon/Makefile index acfa26eec6d4..3e8e72b8c70c 100644 --- a/databases/pear-DoctrineCommon/Makefile +++ b/databases/pear-DoctrineCommon/Makefile @@ -10,6 +10,9 @@ WWW= https://www.doctrine-project.org/ LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE +DEPRECATED= Upstream no longer serves through PEAR channel and has been moved to Composer +EXPIRATION_DATE= 2025-08-04 + USES= pear PEAR_CHANNEL= doctrine NO_ARCH= yes diff --git a/databases/pear-DoctrineDBAL/Makefile b/databases/pear-DoctrineDBAL/Makefile index 3001ec4f6a0e..0dab58d4cc7b 100644 --- a/databases/pear-DoctrineDBAL/Makefile +++ b/databases/pear-DoctrineDBAL/Makefile @@ -10,6 +10,9 @@ WWW= https://www.doctrine-project.org/ LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE +DEPRECATED= Upstream no longer serves through PEAR channel and has been moved to Composer +EXPIRATION_DATE= 2025-08-03 + RUN_DEPENDS= ${PEARDIR}/Doctrine/Common/Version.php:databases/pear-DoctrineCommon@${PHP_FLAVOR} \ ${PEARDIR}/Symfony/Component/Console/Application.php:devel/pear-Symfony_Component_Console@${PHP_FLAVOR} diff --git a/databases/php85-dba/Makefile b/databases/php85-dba/Makefile new file mode 100644 index 000000000000..764ffd7c7936 --- /dev/null +++ b/databases/php85-dba/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= databases + +MASTERDIR= ${.CURDIR}/../../lang/php85 + +PKGNAMESUFFIX= -dba + +.include "${MASTERDIR}/Makefile" diff --git a/databases/php85-dba/files/patch-config.m4 b/databases/php85-dba/files/patch-config.m4 new file mode 100644 index 000000000000..7449b1a88029 --- /dev/null +++ b/databases/php85-dba/files/patch-config.m4 @@ -0,0 +1,25 @@ +--- config.m4.orig 2024-09-10 16:10:06 UTC ++++ config.m4 +@@ -433,6 +433,14 @@ if test "$PHP_DB4" != "no"; then + THIS_PREFIX=$i + THIS_INCLUDE=$i/include/db5.3/db.h + break ++ elif test -f "$i/include/db5/db.h"; then ++ THIS_PREFIX=$i ++ THIS_INCLUDE=$i/include/db5/db.h ++ break ++ elif test -f "$i/include/db18/db.h"; then ++ THIS_PREFIX=$i ++ THIS_INCLUDE=$i/include/db18/db.h ++ break + elif test -f "$i/include/db5.1/db.h"; then + THIS_PREFIX=$i + THIS_INCLUDE=$i/include/db5.1/db.h +@@ -480,6 +488,7 @@ if test "$PHP_DB4" != "no"; then + db-5.3 + db-5.1 + db-5.0 ++ db-5 + db-4.8 + db-4.7 + db-4.6 diff --git a/databases/php85-mysqli/Makefile b/databases/php85-mysqli/Makefile new file mode 100644 index 000000000000..77bd1f7f8a5d --- /dev/null +++ b/databases/php85-mysqli/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= databases + +MASTERDIR= ${.CURDIR}/../../lang/php85 + +PKGNAMESUFFIX= -mysqli + +.include "${MASTERDIR}/Makefile" diff --git a/databases/php85-odbc/Makefile b/databases/php85-odbc/Makefile new file mode 100644 index 000000000000..415b461599c9 --- /dev/null +++ b/databases/php85-odbc/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= databases + +MASTERDIR= ${.CURDIR}/../../lang/php85 + +PKGNAMESUFFIX= -odbc + +.include "${MASTERDIR}/Makefile" diff --git a/databases/php85-odbc/files/patch-config.m4 b/databases/php85-odbc/files/patch-config.m4 new file mode 100644 index 000000000000..55e3fb3aea0c --- /dev/null +++ b/databases/php85-odbc/files/patch-config.m4 @@ -0,0 +1,92 @@ +--- config.m4.orig 2024-09-10 16:10:06 UTC ++++ config.m4 +@@ -117,7 +117,7 @@ PHP_ARG_WITH([adabas], + PHP_ARG_WITH([adabas], + [for Adabas support], + [AS_HELP_STRING([[--with-adabas[=DIR]]], +- [Include Adabas D support [/usr/local]])]) ++ [Include Adabas D support [/usr/local]])], [no], [no]) + + AS_VAR_IF([PHP_ADABAS], [no], [], [ + AS_VAR_IF([PHP_ADABAS], [yes], [PHP_ADABAS=/usr/local]) +@@ -143,7 +143,7 @@ PHP_ARG_WITH([sapdb], + PHP_ARG_WITH([sapdb], + [for SAP DB support], + [AS_HELP_STRING([[--with-sapdb[=DIR]]], +- [Include SAP DB support [/usr/local]])]) ++ [Include SAP DB support [/usr/local]])], [no], [no]) + + AS_VAR_IF([PHP_SAPDB], [no], [], [ + AS_VAR_IF([PHP_SAPDB], [yes], [PHP_SAPDB=/usr/local]) +@@ -160,7 +160,7 @@ PHP_ARG_WITH([solid], + PHP_ARG_WITH([solid], + [for Solid support], + [AS_HELP_STRING([[--with-solid[=DIR]]], +- [Include Solid support [/usr/local/solid]])]) ++ [Include Solid support [/usr/local/solid]])], [no], [no]) + + AS_VAR_IF([PHP_SOLID], [no], [], [ + AS_VAR_IF([PHP_SOLID], [yes], [PHP_SOLID=/usr/local/solid]) +@@ -184,7 +184,7 @@ PHP_ARG_WITH([ibm-db2], + PHP_ARG_WITH([ibm-db2], + [for IBM DB2 support], + [AS_HELP_STRING([[--with-ibm-db2[=DIR]]], +- [Include IBM DB2 support [/home/db2inst1/sqllib]])]) ++ [Include IBM DB2 support [/home/db2inst1/sqllib]])], [no], [no]) + + AS_VAR_IF([PHP_IBM_DB2], [no], [], [ + AS_VAR_IF([PHP_IBM_DB2], [yes], [ +@@ -222,7 +222,7 @@ PHP_ARG_WITH([empress], + [for Empress support], + [AS_HELP_STRING([[--with-empress[=DIR]]], + [Include Empress support $EMPRESSPATH (Empress Version >= 8.60 +- required)])]) ++ required)])], [no], [no]) + + AS_VAR_IF([PHP_EMPRESS], [no], [], [ + AS_VAR_IF([PHP_EMPRESS], [yes], [ +@@ -246,7 +246,7 @@ PHP_ARG_WITH([empress-bcs], + [for Empress local access support], + [AS_HELP_STRING([[--with-empress-bcs[=DIR]]], + [Include Empress Local Access support $EMPRESSPATH (Empress Version >= +- 8.60 required)])]) ++ 8.60 required)])], [no], [no]) + + AS_VAR_IF([PHP_EMPRESS_BCS], [no], [], [ + AS_VAR_IF([PHP_EMPRESS_BCS], [yes], [ +@@ -290,7 +290,7 @@ PHP_ARG_WITH([custom-odbc], + your include dirs. For example, you should define following for Sybase SQL + Anywhere 5.5.00 on QNX, prior to running this configure script: + CPPFLAGS="-DODBC_QNX -DSQLANY_BUG" LDFLAGS=-lunix +- CUSTOM_ODBC_LIBS="-ldblib -lodbc"])]) ++ CUSTOM_ODBC_LIBS="-ldblib -lodbc"])], [no], [no]) + + AS_VAR_IF([PHP_CUSTOM_ODBC], [no], [], [ + AS_VAR_IF([PHP_CUSTOM_ODBC], [yes], [PHP_CUSTOM_ODBC=/usr/local]) +@@ -309,7 +309,7 @@ PHP_ARG_WITH([iodbc], + PHP_ARG_WITH([iodbc], + [whether to build with iODBC support], + [AS_HELP_STRING([--with-iodbc], +- [Include iODBC support])]) ++ [Include iODBC support])], [no], [no]) + + AS_VAR_IF([PHP_IODBC], [no], [], [ + PKG_CHECK_MODULES([ODBC], [libiodbc]) +@@ -324,7 +324,7 @@ PHP_ARG_WITH([esoob], + PHP_ARG_WITH([esoob], + [for Easysoft ODBC-ODBC Bridge support], + [AS_HELP_STRING([[--with-esoob[=DIR]]], +- [Include Easysoft OOB support [/usr/local/easysoft/oob/client]])]) ++ [Include Easysoft OOB support [/usr/local/easysoft/oob/client]])], [no], [no]) + + AS_VAR_IF([PHP_ESOOB], [no], [], [ + AS_VAR_IF([PHP_ESOOB], [yes], [PHP_ESOOB=/usr/local/easysoft/oob/client]) +@@ -371,7 +371,7 @@ PHP_ARG_WITH([dbmaker], + PHP_ARG_WITH([dbmaker], + [for DBMaker support], + [AS_HELP_STRING([[--with-dbmaker[=DIR]]], +- [Include DBMaker support])]) ++ [Include DBMaker support])], [no], [no]) + + AS_VAR_IF([PHP_DBMAKER], [no], [], [ + AS_VAR_IF([PHP_DBMAKER], [yes], [ diff --git a/databases/php85-pdo/Makefile b/databases/php85-pdo/Makefile new file mode 100644 index 000000000000..82a9d79b6e9d --- /dev/null +++ b/databases/php85-pdo/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= databases + +MASTERDIR= ${.CURDIR}/../../lang/php85 + +PKGNAMESUFFIX= -pdo + +.include "${MASTERDIR}/Makefile" diff --git a/databases/php85-pdo/files/patch-pdo__sql__parser.c b/databases/php85-pdo/files/patch-pdo__sql__parser.c new file mode 100644 index 000000000000..191eea16a3bd --- /dev/null +++ b/databases/php85-pdo/files/patch-pdo__sql__parser.c @@ -0,0 +1,729 @@ +--- pdo_sql_parser.c.orig 2025-07-02 12:59:51 UTC ++++ pdo_sql_parser.c +@@ -0,0 +1,726 @@ ++/* 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: George Schlossnagle <george@omniti.com> | ++ +----------------------------------------------------------------------+ ++*/ ++ ++#include "php.h" ++#include "php_pdo_driver.h" ++#include "pdo_sql_parser.h" ++ ++static int default_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; ++ default: goto yy2; ++ } ++yy1: ++ YYCURSOR = YYMARKER; ++ switch (yyaccept) { ++ case 0: goto yy5; ++ case 1: goto yy15; ++ default: goto yy19; ++ } ++yy2: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case 0x00: ++ 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 yy13; ++yy5: ++ { SKIP_ONE(PDO_PARSER_TEXT); } ++yy6: ++ yyaccept = 0; ++ yych = *(YYMARKER = ++YYCURSOR); ++ if (yych <= 0x00) goto yy5; ++ goto yy17; ++yy7: ++ yych = *++YYCURSOR; ++ switch (yych) { ++ case '-': goto yy20; ++ default: goto yy5; ++ } ++yy8: ++ yych = *++YYCURSOR; ++ switch (yych) { ++ case '*': goto yy22; ++ 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 yy23; ++ case ':': goto yy25; ++ default: goto yy5; ++ } ++yy10: ++ yych = *++YYCURSOR; ++ switch (yych) { ++ case '?': goto yy27; ++ default: goto yy11; ++ } ++yy11: ++ { RET(PDO_PARSER_BIND_POS); } ++yy12: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++yy13: ++ switch (yych) { ++ case 0x00: goto yy1; ++ case '"': goto yy14; ++ default: goto yy12; ++ } ++yy14: ++ yyaccept = 1; ++ YYMARKER = ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '"': goto yy12; ++ default: goto yy15; ++ } ++yy15: ++ { RET(PDO_PARSER_TEXT); } ++yy16: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++yy17: ++ switch (yych) { ++ case 0x00: goto yy1; ++ case '\'': goto yy18; ++ default: goto yy16; ++ } ++yy18: ++ yyaccept = 2; ++ YYMARKER = ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '\'': goto yy16; ++ default: goto yy19; ++ } ++yy19: ++ { RET(PDO_PARSER_TEXT); } ++yy20: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '\n': goto yy21; ++ default: goto yy20; ++ } ++yy21: ++ { RET(PDO_PARSER_TEXT); } ++yy22: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '*': goto yy28; ++ default: goto yy22; ++ } ++yy23: ++ ++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 yy23; ++ default: goto yy24; ++ } ++yy24: ++ { RET(PDO_PARSER_BIND); } ++yy25: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case ':': goto yy25; ++ default: goto yy26; ++ } ++yy26: ++ { RET(PDO_PARSER_TEXT); } ++yy27: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '?': goto yy27; ++ default: goto yy26; ++ } ++yy28: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '*': goto yy28; ++ case '/': goto yy29; ++ default: goto yy22; ++ } ++yy29: ++ ++YYCURSOR; ++ goto yy21; ++} ++ ++} ++ ++struct placeholder { ++ const char *pos; ++ size_t len; ++ zend_string *quoted; /* quoted value */ ++ int bindno; ++ struct placeholder *next; ++}; ++ ++struct custom_quote { ++ const char *pos; ++ size_t len; ++}; ++ ++static void free_param_name(zval *el) { ++ zend_string_release(Z_PTR_P(el)); ++} ++ ++PDO_API int pdo_parse_params(pdo_stmt_t *stmt, zend_string *inquery, zend_string **outquery) ++{ ++ pdo_scanner_t s; ++ char *newbuffer; ++ ptrdiff_t t; ++ uint32_t bindno = 0; ++ int ret = 0, escapes = 0; ++ size_t newbuffer_len; ++ HashTable *params; ++ struct pdo_bound_param_data *param; ++ int query_type = PDO_PLACEHOLDER_NONE; ++ struct placeholder *placeholders = NULL, *placetail = NULL, *plc = NULL; ++ int (*scan)(pdo_scanner_t *s); ++ struct custom_quote custom_quote = {NULL, 0}; ++ ++ scan = stmt->dbh->methods->scanner ? stmt->dbh->methods->scanner : default_scanner; ++ ++ s.cur = ZSTR_VAL(inquery); ++ s.end = s.cur + ZSTR_LEN(inquery) + 1; ++ ++ /* phase 1: look for args */ ++ while((t = scan(&s)) != PDO_PARSER_EOI) { ++ if (custom_quote.pos) { ++ /* Inside a custom quote */ ++ if (t == PDO_PARSER_CUSTOM_QUOTE && custom_quote.len == s.cur - s.tok && !strncmp(s.tok, custom_quote.pos, custom_quote.len)) { ++ /* Matching closing quote found, end custom quoting */ ++ custom_quote.pos = NULL; ++ custom_quote.len = 0; ++ } else if (t == PDO_PARSER_ESCAPED_QUESTION) { ++ /* An escaped question mark has been used inside a dollar quoted string, most likely as a workaround ++ * as a single "?" would have been parsed as placeholder, due to the lack of support for dollar quoted ++ * strings. For now, we emit a deprecation notice, but still process it */ ++ php_error_docref(NULL, E_DEPRECATED, "Escaping question marks inside dollar quoted strings is not required anymore and is deprecated"); ++ ++ goto placeholder; ++ } ++ ++ continue; ++ } ++ ++ if (t == PDO_PARSER_CUSTOM_QUOTE) { ++ /* Start of a custom quote, keep a reference to search for the matching closing quote */ ++ custom_quote.pos = s.tok; ++ custom_quote.len = s.cur - s.tok; ++ ++ continue; ++ } ++ ++ if (t == PDO_PARSER_BIND || t == PDO_PARSER_BIND_POS || t == PDO_PARSER_ESCAPED_QUESTION) { ++ if (t == PDO_PARSER_ESCAPED_QUESTION && stmt->supports_placeholders == PDO_PLACEHOLDER_POSITIONAL) { ++ /* escaped question marks unsupported, treat as text */ ++ continue; ++ } ++ ++ if (t == PDO_PARSER_BIND) { ++ ptrdiff_t len = s.cur - s.tok; ++ if ((ZSTR_VAL(inquery) < (s.cur - len)) && isalnum(*(s.cur - len - 1))) { ++ continue; ++ } ++ query_type |= PDO_PLACEHOLDER_NAMED; ++ } else if (t == PDO_PARSER_BIND_POS) { ++ query_type |= PDO_PLACEHOLDER_POSITIONAL; ++ } ++ ++placeholder: ++ plc = emalloc(sizeof(*plc)); ++ memset(plc, 0, sizeof(*plc)); ++ plc->next = NULL; ++ plc->pos = s.tok; ++ plc->len = s.cur - s.tok; ++ ++ if (t == PDO_PARSER_ESCAPED_QUESTION) { ++ plc->bindno = PDO_PARSER_BINDNO_ESCAPED_CHAR; ++ plc->quoted = ZSTR_CHAR('?'); ++ escapes++; ++ } else { ++ plc->bindno = bindno++; ++ } ++ ++ if (placetail) { ++ placetail->next = plc; ++ } else { ++ placeholders = plc; ++ } ++ placetail = plc; ++ } ++ } ++ ++ /* did the query make sense to me? */ ++ if (query_type == (PDO_PLACEHOLDER_NAMED|PDO_PLACEHOLDER_POSITIONAL)) { ++ /* they mixed both types; punt */ ++ pdo_raise_impl_error(stmt->dbh, stmt, "HY093", "mixed named and positional parameters"); ++ ret = -1; ++ goto clean_up; ++ } ++ ++ params = stmt->bound_params; ++ if (stmt->supports_placeholders == PDO_PLACEHOLDER_NONE && params && bindno != zend_hash_num_elements(params)) { ++ /* extra bit of validation for instances when same params are bound more than once */ ++ if (query_type != PDO_PLACEHOLDER_POSITIONAL && bindno > zend_hash_num_elements(params)) { ++ int ok = 1; ++ for (plc = placeholders; plc; plc = plc->next) { ++ if ((param = zend_hash_str_find_ptr(params, plc->pos, plc->len)) == NULL) { ++ 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"); ++ ret = -1; ++ goto clean_up; ++ } ++ ++ if (!placeholders) { ++ /* nothing to do; good! */ ++ return 0; ++ } ++ ++ if (stmt->supports_placeholders == query_type && !stmt->named_rewrite_template) { ++ /* query matches native syntax */ ++ if (escapes) { ++ newbuffer_len = ZSTR_LEN(inquery); ++ goto rewrite; ++ } ++ ++ ret = 0; ++ goto clean_up; ++ } ++ ++ if (query_type == PDO_PLACEHOLDER_NAMED && stmt->named_rewrite_template) { ++ /* magic/hack. ++ * We we pretend that the query was positional even if ++ * it was named so that we fall into the ++ * named rewrite case below. Not too pretty, ++ * but it works. */ ++ query_type = PDO_PLACEHOLDER_POSITIONAL; ++ } ++ ++safe: ++ /* what are we going to do ? */ ++ if (stmt->supports_placeholders == PDO_PLACEHOLDER_NONE) { ++ /* query generation */ ++ ++ newbuffer_len = ZSTR_LEN(inquery); ++ ++ /* let's quote all the values */ ++ for (plc = placeholders; plc && params; plc = plc->next) { ++ if (plc->bindno == PDO_PARSER_BINDNO_ESCAPED_CHAR) { ++ /* escaped character */ ++ continue; ++ } ++ ++ if (query_type == PDO_PLACEHOLDER_NONE) { ++ continue; ++ } ++ ++ if (query_type == PDO_PLACEHOLDER_POSITIONAL) { ++ param = zend_hash_index_find_ptr(params, plc->bindno); ++ } else { ++ param = zend_hash_str_find_ptr(params, plc->pos, plc->len); ++ } ++ if (param == NULL) { ++ /* parameter was not defined */ ++ ret = -1; ++ pdo_raise_impl_error(stmt->dbh, stmt, "HY093", "parameter was not defined"); ++ goto clean_up; ++ } ++ if (stmt->dbh->methods->quoter) { ++ zval *parameter; ++ if (Z_ISREF(param->parameter)) { ++ parameter = Z_REFVAL(param->parameter); ++ } else { ++ parameter = ¶m->parameter; ++ } ++ if (param->param_type == PDO_PARAM_LOB && Z_TYPE_P(parameter) == IS_RESOURCE) { ++ php_stream *stm; ++ ++ php_stream_from_zval_no_verify(stm, parameter); ++ if (stm) { ++ zend_string *buf; ++ ++ buf = php_stream_copy_to_mem(stm, PHP_STREAM_COPY_ALL, 0); ++ if (!buf) { ++ buf = ZSTR_EMPTY_ALLOC(); ++ } ++ ++ plc->quoted = stmt->dbh->methods->quoter(stmt->dbh, buf, param->param_type); ++ ++ if (buf) { ++ zend_string_release_ex(buf, 0); ++ } ++ if (plc->quoted == NULL) { ++ /* bork */ ++ ret = -1; ++ strncpy(stmt->error_code, stmt->dbh->error_code, 6); ++ goto clean_up; ++ } ++ ++ } else { ++ pdo_raise_impl_error(stmt->dbh, stmt, "HY105", "Expected a stream resource"); ++ ret = -1; ++ goto clean_up; ++ } ++ } else { ++ enum pdo_param_type param_type = param->param_type; ++ zend_string *buf = NULL; ++ ++ /* assume all types are nullable */ ++ if (Z_TYPE_P(parameter) == IS_NULL) { ++ param_type = PDO_PARAM_NULL; ++ } ++ ++ switch (param_type) { ++ case PDO_PARAM_BOOL: ++ plc->quoted = zend_is_true(parameter) ? ZSTR_CHAR('1') : ZSTR_CHAR('0'); ++ break; ++ ++ case PDO_PARAM_INT: ++ plc->quoted = zend_long_to_str(zval_get_long(parameter)); ++ break; ++ ++ case PDO_PARAM_NULL: ++ plc->quoted = ZSTR_KNOWN(ZEND_STR_NULL); ++ break; ++ ++ default: { ++ buf = zval_try_get_string(parameter); ++ /* parameter does not have a string representation, buf == NULL */ ++ if (EG(exception)) { ++ /* bork */ ++ ret = -1; ++ strncpy(stmt->error_code, stmt->dbh->error_code, 6); ++ goto clean_up; ++ } ++ ++ plc->quoted = stmt->dbh->methods->quoter(stmt->dbh, buf, param_type); ++ } ++ } ++ ++ if (buf) { ++ zend_string_release_ex(buf, 0); ++ } ++ } ++ } else { ++ zval *parameter; ++ if (Z_ISREF(param->parameter)) { ++ parameter = Z_REFVAL(param->parameter); ++ } else { ++ parameter = ¶m->parameter; ++ } ++ plc->quoted = zend_string_copy(Z_STR_P(parameter)); ++ } ++ newbuffer_len += ZSTR_LEN(plc->quoted); ++ } ++ ++rewrite: ++ /* allocate output buffer */ ++ *outquery = zend_string_alloc(newbuffer_len, 0); ++ newbuffer = ZSTR_VAL(*outquery); ++ ++ /* and build the query */ ++ const char *ptr = ZSTR_VAL(inquery); ++ plc = placeholders; ++ ++ do { ++ t = plc->pos - ptr; ++ if (t) { ++ memcpy(newbuffer, ptr, t); ++ newbuffer += t; ++ } ++ if (plc->quoted) { ++ memcpy(newbuffer, ZSTR_VAL(plc->quoted), ZSTR_LEN(plc->quoted)); ++ newbuffer += ZSTR_LEN(plc->quoted); ++ } else { ++ memcpy(newbuffer, plc->pos, plc->len); ++ newbuffer += plc->len; ++ } ++ ptr = plc->pos + plc->len; ++ ++ plc = plc->next; ++ } while (plc); ++ ++ t = ZSTR_VAL(inquery) + ZSTR_LEN(inquery) - ptr; ++ if (t) { ++ memcpy(newbuffer, ptr, t); ++ newbuffer += t; ++ } ++ *newbuffer = '\0'; ++ ZSTR_LEN(*outquery) = newbuffer - ZSTR_VAL(*outquery); ++ ++ ret = 1; ++ goto clean_up; ++ ++ } else if (query_type == PDO_PLACEHOLDER_POSITIONAL) { ++ /* rewrite ? to :pdoX */ ++ const char *tmpl = stmt->named_rewrite_template ? stmt->named_rewrite_template : ":pdo%d"; ++ int bind_no = 1; ++ ++ newbuffer_len = ZSTR_LEN(inquery); ++ ++ if (stmt->bound_param_map == NULL) { ++ ALLOC_HASHTABLE(stmt->bound_param_map); ++ zend_hash_init(stmt->bound_param_map, 13, NULL, free_param_name, 0); ++ } ++ ++ for (plc = placeholders; plc; plc = plc->next) { ++ int skip_map = 0; ++ zend_string *p; ++ zend_string *idxbuf; ++ ++ if (plc->bindno == PDO_PARSER_BINDNO_ESCAPED_CHAR) { ++ continue; ++ } ++ ++ zend_string *name = zend_string_init(plc->pos, plc->len, 0); ++ ++ /* check if bound parameter is already available */ ++ if (zend_string_equals_literal(name, "?") || (p = zend_hash_find_ptr(stmt->bound_param_map, name)) == NULL) { ++ idxbuf = zend_strpprintf(0, tmpl, bind_no++); ++ } else { ++ idxbuf = zend_string_copy(p); ++ skip_map = 1; ++ } ++ ++ plc->quoted = idxbuf; ++ newbuffer_len += ZSTR_LEN(plc->quoted); ++ ++ if (!skip_map && stmt->named_rewrite_template) { ++ /* create a mapping */ ++ zend_hash_update_ptr(stmt->bound_param_map, name, zend_string_copy(plc->quoted)); ++ } ++ ++ /* map number to name */ ++ zend_hash_index_update_ptr(stmt->bound_param_map, plc->bindno, zend_string_copy(plc->quoted)); ++ ++ zend_string_release(name); ++ } ++ ++ goto rewrite; ++ ++ } else { ++ /* rewrite :name to ? */ ++ ++ newbuffer_len = ZSTR_LEN(inquery); ++ ++ if (stmt->bound_param_map == NULL) { ++ ALLOC_HASHTABLE(stmt->bound_param_map); ++ zend_hash_init(stmt->bound_param_map, 13, NULL, free_param_name, 0); ++ } ++ ++ for (plc = placeholders; plc; plc = plc->next) { ++ zend_string *name = zend_string_init(plc->pos, plc->len, 0); ++ zend_hash_index_update_ptr(stmt->bound_param_map, plc->bindno, name); ++ plc->quoted = ZSTR_CHAR('?'); ++ newbuffer_len -= plc->len - 1; ++ } ++ ++ goto rewrite; ++ } ++ ++clean_up: ++ ++ while (placeholders) { ++ plc = placeholders; ++ placeholders = plc->next; ++ if (plc->quoted) { ++ zend_string_release_ex(plc->quoted, 0); ++ } ++ efree(plc); ++ } ++ ++ return ret; ++} diff --git a/databases/php85-pdo_dblib/Makefile b/databases/php85-pdo_dblib/Makefile new file mode 100644 index 000000000000..1861a409bc3c --- /dev/null +++ b/databases/php85-pdo_dblib/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= databases + +MASTERDIR= ${.CURDIR}/../../lang/php85 + +PKGNAMESUFFIX= -pdo_dblib + +.include "${MASTERDIR}/Makefile" diff --git a/databases/php85-pdo_firebird/Makefile b/databases/php85-pdo_firebird/Makefile new file mode 100644 index 000000000000..2f22894505f4 --- /dev/null +++ b/databases/php85-pdo_firebird/Makefile @@ -0,0 +1,9 @@ +CATEGORIES= databases + +PORTREVISION= 0 + +MASTERDIR= ${.CURDIR}/../../lang/php85 + +PKGNAMESUFFIX= -pdo_firebird + +.include "${MASTERDIR}/Makefile" diff --git a/databases/php85-pdo_mysql/Makefile b/databases/php85-pdo_mysql/Makefile new file mode 100644 index 000000000000..c61de9bbc13d --- /dev/null +++ b/databases/php85-pdo_mysql/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= databases + +MASTERDIR= ${.CURDIR}/../../lang/php85 + +PKGNAMESUFFIX= -pdo_mysql + +.include "${MASTERDIR}/Makefile" diff --git a/databases/php85-pdo_mysql/files/patch-mysql__sql__parser.c b/databases/php85-pdo_mysql/files/patch-mysql__sql__parser.c new file mode 100644 index 000000000000..9a6c3b11bb6e --- /dev/null +++ b/databases/php85-pdo_mysql/files/patch-mysql__sql__parser.c @@ -0,0 +1,398 @@ +--- mysql_sql_parser.c.orig 2025-07-02 13:18:02 UTC ++++ mysql_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_mysql_scanner(pdo_scanner_t *s) ++{ ++ const char *cursor = s->cur; ++ ++ s->tok = cursor; ++ ++ ++ ++{ ++ YYCTYPE yych; ++ unsigned int yyaccept = 0; ++ if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3); ++ 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 yy11; ++ case '`': goto yy13; ++ default: goto yy2; ++ } ++yy1: ++ YYCURSOR = YYMARKER; ++ switch (yyaccept) { ++ case 0: goto yy5; ++ case 1: goto yy17; ++ case 2: goto yy24; ++ default: goto yy36; ++ } ++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: ++ yych = *++YYCURSOR; ++ switch (yych) { ++ case '\n': goto yy5; ++ default: goto yy19; ++ } ++yy7: ++ yyaccept = 0; ++ yych = *(YYMARKER = ++YYCURSOR); ++ if (yych <= 0x00) goto yy5; ++ goto yy22; ++yy8: ++ yyaccept = 0; ++ yych = *(YYMARKER = ++YYCURSOR); ++ switch (yych) { ++ case '-': goto yy26; ++ default: goto yy5; ++ } ++yy9: ++ yych = *++YYCURSOR; ++ switch (yych) { ++ case '*': goto yy27; ++ default: goto yy5; ++ } ++yy10: ++ 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 yy28; ++ case ':': goto yy30; ++ default: goto yy5; ++ } ++yy11: ++ yych = *++YYCURSOR; ++ switch (yych) { ++ case '?': goto yy32; ++ default: goto yy12; ++ } ++yy12: ++ { RET(PDO_PARSER_BIND_POS); } ++yy13: ++ yyaccept = 0; ++ yych = *(YYMARKER = ++YYCURSOR); ++ if (yych <= 0x00) goto yy5; ++ goto yy34; ++yy14: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++yy15: ++ switch (yych) { ++ case 0x00: goto yy1; ++ case '"': goto yy16; ++ case '\\': goto yy18; ++ default: goto yy14; ++ } ++yy16: ++ yyaccept = 1; ++ YYMARKER = ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '"': goto yy14; ++ default: goto yy17; ++ } ++yy17: ++ { RET(PDO_PARSER_TEXT); } ++yy18: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ if (yych <= 0x00) goto yy1; ++ goto yy14; ++yy19: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '\n': goto yy20; ++ default: goto yy19; ++ } ++yy20: ++ { RET(PDO_PARSER_TEXT); } ++yy21: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++yy22: ++ switch (yych) { ++ case 0x00: goto yy1; ++ case '\'': goto yy23; ++ case '\\': goto yy25; ++ default: goto yy21; ++ } ++yy23: ++ yyaccept = 2; ++ YYMARKER = ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '\'': goto yy21; ++ default: goto yy24; ++ } ++yy24: ++ { RET(PDO_PARSER_TEXT); } ++yy25: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ if (yych <= 0x00) goto yy1; ++ goto yy21; ++yy26: ++ yych = *++YYCURSOR; ++ switch (yych) { ++ case '\t': ++ case '\v': ++ case '\f': ++ case '\r': ++ case ' ': goto yy19; ++ default: goto yy1; ++ } ++yy27: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '*': goto yy37; ++ default: goto yy27; ++ } ++yy28: ++ ++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 yy28; ++ default: goto yy29; ++ } ++yy29: ++ { RET(PDO_PARSER_BIND); } ++yy30: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case ':': goto yy30; ++ default: goto yy31; ++ } ++yy31: ++ { RET(PDO_PARSER_TEXT); } ++yy32: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '?': goto yy32; ++ default: goto yy31; ++ } ++yy33: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++yy34: ++ switch (yych) { ++ case 0x00: goto yy1; ++ case '`': goto yy35; ++ default: goto yy33; ++ } ++yy35: ++ yyaccept = 3; ++ YYMARKER = ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '`': goto yy33; ++ default: goto yy36; ++ } ++yy36: ++ { RET(PDO_PARSER_TEXT); } ++yy37: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '*': goto yy37; ++ case '/': goto yy38; ++ default: goto yy27; ++ } ++yy38: ++ ++YYCURSOR; ++ goto yy20; ++} ++ ++} diff --git a/databases/php85-pdo_odbc/Makefile b/databases/php85-pdo_odbc/Makefile new file mode 100644 index 000000000000..41bf11b6e9b1 --- /dev/null +++ b/databases/php85-pdo_odbc/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= databases + +MASTERDIR= ${.CURDIR}/../../lang/php85 + +PKGNAMESUFFIX= -pdo_odbc + +.include "${MASTERDIR}/Makefile" diff --git a/databases/php85-pdo_pgsql/Makefile b/databases/php85-pdo_pgsql/Makefile new file mode 100644 index 000000000000..5956ab7c84cf --- /dev/null +++ b/databases/php85-pdo_pgsql/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= databases + +MASTERDIR= ${.CURDIR}/../../lang/php85 + +PKGNAMESUFFIX= -pdo_pgsql + +.include "${MASTERDIR}/Makefile" diff --git a/databases/php85-pdo_pgsql/files/patch-pgsql__sql__parser.c b/databases/php85-pdo_pgsql/files/patch-pgsql__sql__parser.c new file mode 100644 index 000000000000..e2f535ec545e --- /dev/null +++ b/databases/php85-pdo_pgsql/files/patch-pgsql__sql__parser.c @@ -0,0 +1,528 @@ +--- pgsql_sql_parser.c.orig 2025-07-02 13:28:41 UTC ++++ pgsql_sql_parser.c +@@ -0,0 +1,525 @@ ++/* 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_pgsql_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 yy11; ++ case 'E': ++ case 'e': goto yy13; ++ default: goto yy2; ++ } ++yy1: ++ YYCURSOR = YYMARKER; ++ switch (yyaccept) { ++ case 0: goto yy5; ++ case 1: goto yy17; ++ case 2: goto yy23; ++ default: goto yy35; ++ } ++yy2: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case 0x00: ++ case '"': ++ case '$': ++ case '\'': ++ case '-': ++ case '/': ++ case ':': ++ case '?': ++ case 'E': ++ case 'e': 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); ++ switch (yych) { ++ case 0x00: ++ case 0x01: ++ case 0x02: ++ case 0x03: ++ case 0x04: ++ case 0x05: ++ case 0x06: ++ case 0x07: ++ case 0x08: ++ case '\t': ++ case '\n': ++ case '\v': ++ case '\f': ++ case '\r': ++ case 0x0E: ++ case 0x0F: ++ case 0x10: ++ case 0x11: ++ case 0x12: ++ case 0x13: ++ case 0x14: ++ case 0x15: ++ case 0x16: ++ case 0x17: ++ case 0x18: ++ case 0x19: ++ case 0x1A: ++ case 0x1B: ++ case 0x1C: ++ case 0x1D: ++ case 0x1E: ++ case 0x1F: ++ case ' ': ++ case '!': ++ case '"': ++ case '#': ++ case '%': ++ case '&': ++ case '\'': ++ case '(': ++ case ')': ++ case '*': ++ case '+': ++ case ',': ++ case '-': ++ case '.': ++ case '/': ++ case '0': ++ case '1': ++ case '2': ++ case '3': ++ case '4': ++ case '5': ++ case '6': ++ case '7': ++ case '8': ++ case '9': ++ case ':': ++ case ';': ++ case '<': ++ case '=': ++ case '>': ++ case '?': ++ case '@': ++ case '[': ++ case '\\': ++ case ']': ++ case '^': ++ case '`': ++ case '{': ++ case '|': ++ case '}': ++ case '~': ++ case 0x7F: goto yy5; ++ case '$': goto yy18; ++ default: goto yy19; ++ } ++yy7: ++ yyaccept = 0; ++ yych = *(YYMARKER = ++YYCURSOR); ++ if (yych <= 0x00) goto yy5; ++ goto yy21; ++yy8: ++ yych = *++YYCURSOR; ++ switch (yych) { ++ case '-': goto yy24; ++ default: goto yy5; ++ } ++yy9: ++ yych = *++YYCURSOR; ++ switch (yych) { ++ case '*': goto yy26; ++ default: goto yy5; ++ } ++yy10: ++ 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 yy27; ++ case ':': goto yy29; ++ default: goto yy5; ++ } ++yy11: ++ yych = *++YYCURSOR; ++ switch (yych) { ++ case '?': goto yy31; ++ default: goto yy12; ++ } ++yy12: ++ { RET(PDO_PARSER_BIND_POS); } ++yy13: ++ yyaccept = 0; ++ yych = *(YYMARKER = ++YYCURSOR); ++ switch (yych) { ++ case '\'': goto yy32; ++ default: goto yy5; ++ } ++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 '"': goto yy14; ++ default: goto yy17; ++ } ++yy17: ++ { RET(PDO_PARSER_TEXT); } ++yy18: ++ ++YYCURSOR; ++ { RET(PDO_PARSER_CUSTOM_QUOTE); } ++yy19: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case 0x00: ++ case 0x01: ++ case 0x02: ++ case 0x03: ++ case 0x04: ++ case 0x05: ++ case 0x06: ++ case 0x07: ++ case 0x08: ++ case '\t': ++ case '\n': ++ case '\v': ++ case '\f': ++ case '\r': ++ case 0x0E: ++ case 0x0F: ++ case 0x10: ++ case 0x11: ++ case 0x12: ++ case 0x13: ++ case 0x14: ++ case 0x15: ++ case 0x16: ++ case 0x17: ++ case 0x18: ++ case 0x19: ++ case 0x1A: ++ case 0x1B: ++ case 0x1C: ++ case 0x1D: ++ case 0x1E: ++ case 0x1F: ++ case ' ': ++ case '!': ++ case '"': ++ case '#': ++ case '%': ++ case '&': ++ case '\'': ++ case '(': ++ case ')': ++ case '*': ++ case '+': ++ case ',': ++ case '-': ++ case '.': ++ case '/': ++ case ':': ++ case ';': ++ case '<': ++ case '=': ++ case '>': ++ case '?': ++ case '@': ++ case '[': ++ case '\\': ++ case ']': ++ case '^': ++ case '`': ++ case '{': ++ case '|': ++ case '}': ++ case '~': ++ case 0x7F: goto yy1; ++ case '$': goto yy18; ++ default: goto yy19; ++ } ++yy20: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++yy21: ++ switch (yych) { ++ case 0x00: goto yy1; ++ case '\'': goto yy22; ++ default: goto yy20; ++ } ++yy22: ++ yyaccept = 2; ++ YYMARKER = ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '\'': goto yy20; ++ default: goto yy23; ++ } ++yy23: ++ { RET(PDO_PARSER_TEXT); } ++yy24: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '\n': goto yy25; ++ default: goto yy24; ++ } ++yy25: ++ { RET(PDO_PARSER_TEXT); } ++yy26: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '*': goto yy33; ++ default: goto yy26; ++ } ++yy27: ++ ++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 yy27; ++ default: goto yy28; ++ } ++yy28: ++ { RET(PDO_PARSER_BIND); } ++yy29: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case ':': goto yy29; ++ default: goto yy30; ++ } ++yy30: ++ { RET(PDO_PARSER_TEXT); } ++yy31: ++ ++YYCURSOR; ++ { RET(PDO_PARSER_ESCAPED_QUESTION); } ++yy32: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case 0x00: goto yy1; ++ case '\'': goto yy34; ++ case '\\': goto yy36; ++ default: goto yy32; ++ } ++yy33: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '*': goto yy33; ++ case '/': goto yy37; ++ default: goto yy26; ++ } ++yy34: ++ yyaccept = 3; ++ YYMARKER = ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ switch (yych) { ++ case '\'': goto yy32; ++ default: goto yy35; ++ } ++yy35: ++ { RET(PDO_PARSER_TEXT); } ++yy36: ++ ++YYCURSOR; ++ if (YYLIMIT <= YYCURSOR) YYFILL(1); ++ yych = *YYCURSOR; ++ if (yych <= 0x00) goto yy1; ++ goto yy32; ++yy37: ++ ++YYCURSOR; ++ goto yy25; ++} ++ ++} diff --git a/databases/php85-pdo_sqlite/Makefile b/databases/php85-pdo_sqlite/Makefile new file mode 100644 index 000000000000..c18fe80e2621 --- /dev/null +++ b/databases/php85-pdo_sqlite/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= databases + +MASTERDIR= ${.CURDIR}/../../lang/php85 + +PKGNAMESUFFIX= -pdo_sqlite + +.include "${MASTERDIR}/Makefile" 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; ++} ++ ++} diff --git a/databases/php85-pgsql/Makefile b/databases/php85-pgsql/Makefile new file mode 100644 index 000000000000..429049846f13 --- /dev/null +++ b/databases/php85-pgsql/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= databases + +MASTERDIR= ${.CURDIR}/../../lang/php85 + +PKGNAMESUFFIX= -pgsql + +.include "${MASTERDIR}/Makefile" diff --git a/databases/php85-sqlite3/Makefile b/databases/php85-sqlite3/Makefile new file mode 100644 index 000000000000..a82d71c80d62 --- /dev/null +++ b/databases/php85-sqlite3/Makefile @@ -0,0 +1,7 @@ +CATEGORIES= databases + +MASTERDIR= ${.CURDIR}/../../lang/php85 + +PKGNAMESUFFIX= -sqlite3 + +.include "${MASTERDIR}/Makefile" diff --git a/databases/postgresql-promscale/Makefile b/databases/postgresql-promscale/Makefile index a4af459964af..940d81c3d9d0 100644 --- a/databases/postgresql-promscale/Makefile +++ b/databases/postgresql-promscale/Makefile @@ -1,6 +1,6 @@ PORTNAME= promscale PORTVERSION= 0.8.0 -PORTREVISION= 21 +PORTREVISION= 22 CATEGORIES= databases PKGNAMEPREFIX= postgresql${PGSQL_VER:S/.//}- diff --git a/databases/py-sqlglotrs/Makefile b/databases/py-sqlglotrs/Makefile index 93e64667b26c..db0f1bd63426 100644 --- a/databases/py-sqlglotrs/Makefile +++ b/databases/py-sqlglotrs/Makefile @@ -1,5 +1,6 @@ PORTNAME= sqlglotrs PORTVERSION= 0.6.1 +PORTREVISION= 1 CATEGORIES= databases python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} diff --git a/databases/py-sqloxide/Makefile b/databases/py-sqloxide/Makefile index 1021564ac519..d6d0fec64100 100644 --- a/databases/py-sqloxide/Makefile +++ b/databases/py-sqloxide/Makefile @@ -1,6 +1,6 @@ PORTNAME= sqloxide PORTVERSION= 0.1.48 -PORTREVISION= 6 +PORTREVISION= 7 CATEGORIES= databases python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} diff --git a/databases/py-unqlite/Makefile b/databases/py-unqlite/Makefile index 55be1c6d00e8..a5a9dc5c24ef 100644 --- a/databases/py-unqlite/Makefile +++ b/databases/py-unqlite/Makefile @@ -1,5 +1,5 @@ PORTNAME= unqlite -DISTVERSION= 0.9.8 +DISTVERSION= 0.9.9 CATEGORIES= databases python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} diff --git a/databases/py-unqlite/distinfo b/databases/py-unqlite/distinfo index ca214a83d054..f50cff353b67 100644 --- a/databases/py-unqlite/distinfo +++ b/databases/py-unqlite/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1738990510 -SHA256 (unqlite-0.9.8.tar.gz) = 182c1764616f0f3a5caa52ca3bdeac3d44cce7a56b2801c4fcaf79eb2b6f30be -SIZE (unqlite-0.9.8.tar.gz) = 634010 +TIMESTAMP = 1751442862 +SHA256 (unqlite-0.9.9.tar.gz) = 63a79975d67e3896af269c1885c2cc363fb646ff26e58541365fb5fb9e645691 +SIZE (unqlite-0.9.9.tar.gz) = 633945 diff --git a/databases/qdrant/Makefile b/databases/qdrant/Makefile index 01fcb1f352a1..5dcce0c3f3a0 100644 --- a/databases/qdrant/Makefile +++ b/databases/qdrant/Makefile @@ -1,6 +1,7 @@ PORTNAME= qdrant DISTVERSIONPREFIX= v DISTVERSION= 1.14.1 +PORTREVISION= 1 PORTEPOCH= 1 CATEGORIES= databases diff --git a/databases/quake/Makefile b/databases/quake/Makefile index 12f6f31acecd..664e3a26309f 100644 --- a/databases/quake/Makefile +++ b/databases/quake/Makefile @@ -2,7 +2,7 @@ PORTNAME= quake DISTVERSIONPREFIX= v DISTVERSION= 0.5.1-57 DISTVERSIONSUFFIX= -gbb8ae55 -PORTREVISION= 12 +PORTREVISION= 13 CATEGORIES= databases PKGNAMESUFFIX= -framework diff --git a/databases/redisjson/Makefile b/databases/redisjson/Makefile index e1b61699411f..d44e7eaeb560 100644 --- a/databases/redisjson/Makefile +++ b/databases/redisjson/Makefile @@ -1,7 +1,7 @@ PORTNAME= redisjson DISTVERSIONPREFIX= v DISTVERSION= 2.0.8 -PORTREVISION= 28 +PORTREVISION= 29 CATEGORIES= databases MAINTAINER= ports@FreeBSD.org diff --git a/databases/sqlx-cli/Makefile b/databases/sqlx-cli/Makefile index 98ba7a7ec210..c6fcda0461cc 100644 --- a/databases/sqlx-cli/Makefile +++ b/databases/sqlx-cli/Makefile @@ -1,7 +1,7 @@ PORTNAME= sqlx DISTVERSIONPREFIX= v DISTVERSION= 0.8.5 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= databases PKGNAMESUFFIX= -cli diff --git a/databases/surrealdb/Makefile b/databases/surrealdb/Makefile index db45d274162b..58252a3401de 100644 --- a/databases/surrealdb/Makefile +++ b/databases/surrealdb/Makefile @@ -1,6 +1,7 @@ PORTNAME= surrealdb DISTVERSIONPREFIX= v DISTVERSION= 2.3.4 +PORTREVISION= 1 CATEGORIES= databases MAINTAINER= yuri@FreeBSD.org diff --git a/databases/xls2txt/Makefile b/databases/xls2txt/Makefile index 925fb7e0ec69..a2f5a5ebb37a 100644 --- a/databases/xls2txt/Makefile +++ b/databases/xls2txt/Makefile @@ -1,6 +1,6 @@ PORTNAME= xls2txt DISTVERSION= 1.0.1 -PORTREVISION= 41 +PORTREVISION= 42 CATEGORIES= databases textproc MAINTAINER= yuri@FreeBSD.org |