diff --git a/ext/odbc/config.m4 b/ext/odbc/config.m4 index ed72b777f5ded..003e90e2275fb 100644 --- a/ext/odbc/config.m4 +++ b/ext/odbc/config.m4 @@ -7,101 +7,6 @@ AC_DEFUN([PHP_ODBC_CHECK_HEADER], [AS_IF([test ! -f "$ODBC_INCDIR/$1"], [AC_MSG_ERROR([ODBC header file '$ODBC_INCDIR/$1' not found!])])]) -dnl -dnl PHP_ODBC_FIND_SOLID_LIBS(libdir) -dnl -dnl Figure out which library file to link with for the Solid support. -dnl -AC_DEFUN([PHP_ODBC_FIND_SOLID_LIBS],[ - AC_MSG_CHECKING([Solid library file]) - ac_solid_uname_r=$(uname -r 2>/dev/null) - ac_solid_uname_s=$(uname -s 2>/dev/null) - case $ac_solid_uname_s in - AIX) ac_solid_os=a3x;; # a4x for AIX4/ Solid 2.3/3.0 only - HP-UX) ac_solid_os=h9x;; # h1x for hpux11, h0x for hpux10 - Linux) - if ldd -v /bin/sh | grep GLIBC > /dev/null; then - ac_solid_os=l2x - else - ac_solid_os=lux - fi - AC_DEFINE([SS_LINUX], [1], - [Define to 1 to be able to use the obsolete header file on - some Linux systems.]) - ;; - SunOS) - ac_solid_os=ssx;; # should we deal with SunOS 4? - FreeBSD) - if test $(expr $ac_solid_uname_r : '\(.\)') -gt "2"; then - ac_solid_os=fex - else - ac_solid_os=fbx - fi - AC_DEFINE([SS_FBX], [1], - [Define to 1 to be able to use the wchar defs in the obsolete - header file on some FreeBSD systems.]) - ;; - esac - - if test -f $1/soc${ac_solid_os}35.a; then - ac_solid_version=35 - ac_solid_prefix=soc - elif test -f $1/scl${ac_solid_os}30.a; then - ac_solid_version=30 - ac_solid_prefix=scl - elif test -f $1/scl${ac_solid_os}23.a; then - ac_solid_version=23 - ac_solid_prefix=scl - fi - -dnl Check for the library files, and setup the ODBC_LIBS path. -if test ! -f $1/lib${ac_solid_prefix}${ac_solid_os}${ac_solid_version}.so && \ - test ! -f $1/lib${ac_solid_prefix}${ac_solid_os}${ac_solid_version}.a; then - dnl we have an error and should bail out, as we can't find the libs! - echo "" - echo "*********************************************************************" - echo "* Unable to locate $1/lib${ac_solid_prefix}${ac_solid_os}${ac_solid_version}.so or $1/lib${ac_solid_prefix}${ac_solid_os}${ac_solid_version}.a" - echo "* Please correct this by creating the following links and reconfiguring:" - echo "* $1/lib${ac_solid_prefix}${ac_solid_os}${ac_solid_version}.a -> $1/lib${ac_solid_prefix}${ac_solid_os}${ac_solid_version}.a" - echo "* $1/${ac_solid_prefix}${ac_solid_os}${ac_solid_version}.so -> $1/lib${ac_solid_prefix}${ac_solid_os}${ac_solid_version}.so" - echo "*********************************************************************" -else - ODBC_LFLAGS=-L$1 - ODBC_LIBS=-l${ac_solid_prefix}${ac_solid_os}${ac_solid_version} -fi - - AC_MSG_RESULT([$(echo $ODBC_LIBS | $SED -e 's!.*/!!')]) -]) - -dnl -dnl PHP_ODBC_FIND_EMPRESS_LIBS(libdir) -dnl -dnl Figure out which library file to link with for the Empress support. -dnl -AC_DEFUN([PHP_ODBC_FIND_EMPRESS_LIBS],[ - AC_MSG_CHECKING([Empress library file]) - ODBC_LIBS=$(echo $1/libempodbccl.so | cut -d' ' -f1) - if test ! -f $ODBC_LIBS; then - ODBC_LIBS=$(echo $1/libempodbccl.so | cut -d' ' -f1) - fi - AC_MSG_RESULT([$(echo $ODBC_LIBS | $SED -e 's!.*/!!')]) -]) - -dnl -dnl PHP_ODBC_FIND_EMPRESS_BCS_LIBS(libdir) -dnl -dnl Figure out which library file to link with for the Empress local access -dnl support. -dnl -AC_DEFUN([PHP_ODBC_FIND_EMPRESS_BCS_LIBS],[ - AC_MSG_CHECKING([Empress local access library file]) - ODBCBCS_LIBS=$(echo $1/libempodbcbcs.a | cut -d' ' -f1) - if test ! -f $ODBCBCS_LIBS; then - ODBCBCS_LIBS=$(echo $1/libempodbcbcs.a | cut -d' ' -f1) - fi - AC_MSG_RESULT([$(echo $ODBCBCS_LIBS | $SED -e 's!.*/!!')]) -]) - dnl dnl configure options dnl @@ -113,73 +18,6 @@ PHP_ARG_WITH([odbcver],, be defined.])], [0x0350]) -AS_VAR_IF([ODBC_TYPE],, [ -PHP_ARG_WITH([adabas], - [for Adabas support], - [AS_HELP_STRING([[--with-adabas[=DIR]]], - [Include Adabas D support [/usr/local]])]) - - AS_VAR_IF([PHP_ADABAS], [no], [], [ - AS_VAR_IF([PHP_ADABAS], [yes], [PHP_ADABAS=/usr/local]) - PHP_ADD_INCLUDE([$PHP_ADABAS/incl]) - PHP_ADD_LIBPATH([$PHP_ADABAS/$PHP_LIBDIR]) - ODBC_OBJS="$PHP_ADABAS/$PHP_LIBDIR/odbclib.a" - ODBC_LIB="$abs_builddir/ext/odbc/libodbc_adabas.a" - $srcdir/build/shtool mkdir -f -p ext/odbc - rm -f "$ODBC_LIB" - cp "$ODBC_OBJS" "$ODBC_LIB" - PHP_ADD_LIBRARY([sqlptc]) - PHP_ADD_LIBRARY([sqlrte]) - PHP_ADD_LIBRARY_WITH_PATH([odbc_adabas], [$abs_builddir/ext/odbc]) - ODBC_TYPE=adabas - ODBC_INCDIR=$PHP_ADABAS/incl - PHP_ODBC_CHECK_HEADER([sqlext.h]) - AC_DEFINE([HAVE_ADABAS], [1], - [Define to 1 if the odbc extension uses the Adabas D.]) - ]) -]) - -AS_VAR_IF([ODBC_TYPE],, [ -PHP_ARG_WITH([sapdb], - [for SAP DB support], - [AS_HELP_STRING([[--with-sapdb[=DIR]]], - [Include SAP DB support [/usr/local]])]) - - AS_VAR_IF([PHP_SAPDB], [no], [], [ - AS_VAR_IF([PHP_SAPDB], [yes], [PHP_SAPDB=/usr/local]) - PHP_ADD_INCLUDE([$PHP_SAPDB/incl]) - PHP_ADD_LIBPATH([$PHP_SAPDB/$PHP_LIBDIR]) - PHP_ADD_LIBRARY([sqlod]) - ODBC_TYPE=sapdb - AC_DEFINE([HAVE_SAPDB], [1], - [Define to 1 if the odbc extension uses the SAP DB.]) - ]) -]) - -AS_VAR_IF([ODBC_TYPE],, [ -PHP_ARG_WITH([solid], - [for Solid support], - [AS_HELP_STRING([[--with-solid[=DIR]]], - [Include Solid support [/usr/local/solid]])]) - - AS_VAR_IF([PHP_SOLID], [no], [], [ - AS_VAR_IF([PHP_SOLID], [yes], [PHP_SOLID=/usr/local/solid]) - ODBC_INCDIR=$PHP_SOLID/include - ODBC_LIBDIR=$PHP_SOLID/$PHP_LIBDIR - ODBC_CFLAGS=-I$ODBC_INCDIR - ODBC_TYPE=solid - if test -f $ODBC_LIBDIR/soc*35.a; then - AC_DEFINE([HAVE_SOLID_35], [1], [Define to 1 if Solid DB 3.5 is used.]) - elif test -f $ODBC_LIBDIR/scl*30.a; then - AC_DEFINE([HAVE_SOLID_30], [1], [Define to 1 if Solid DB 3.0 is used.]) - elif test -f $ODBC_LIBDIR/scl*23.a; then - AC_DEFINE([HAVE_SOLID], [1], - [Define to 1 if the odbc extension uses the Solid DB.]) - fi - PHP_ODBC_FIND_SOLID_LIBS([$ODBC_LIBDIR]) - ]) -]) - AS_VAR_IF([ODBC_TYPE],, [ PHP_ARG_WITH([ibm-db2], [for IBM DB2 support], @@ -214,70 +52,6 @@ PHP configure: ]) ]) -AS_VAR_IF([ODBC_TYPE],, [ -PHP_ARG_WITH([empress], - [for Empress support], - [AS_HELP_STRING([[--with-empress[=DIR]]], - [Include Empress support $EMPRESSPATH (Empress Version >= 8.60 - required)])]) - - AS_VAR_IF([PHP_EMPRESS], [no], [], [ - AS_VAR_IF([PHP_EMPRESS], [yes], [ - ODBC_INCDIR=$EMPRESSPATH/include/odbc - ODBC_LIBDIR=$EMPRESSPATH/shlib - ], [ - ODBC_INCDIR=$PHP_EMPRESS/include/odbc - ODBC_LIBDIR=$PHP_EMPRESS/shlib - ]) - ODBC_CFLAGS=-I$ODBC_INCDIR - ODBC_LFLAGS=-L$ODBC_LIBDIR - ODBC_TYPE=empress - AC_DEFINE([HAVE_EMPRESS], [1], - [Define to 1 if the odbc extension uses the Empress.]) - PHP_ODBC_FIND_EMPRESS_LIBS([$ODBC_LIBDIR]) - ]) -]) - -AS_VAR_IF([ODBC_TYPE],, [ -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)])]) - - AS_VAR_IF([PHP_EMPRESS_BCS], [no], [], [ - AS_VAR_IF([PHP_EMPRESS_BCS], [yes], [ - ODBC_INCDIR=$EMPRESSPATH/include/odbc - ODBC_LIBDIR=$EMPRESSPATH/shlib - ], [ - ODBC_INCDIR=$PHP_EMPRESS_BCS/include/odbc - ODBC_LIBDIR=$PHP_EMPRESS_BCS/shlib - ]) - CC="empocc -bcs";export CC; - LD="empocc -bcs";export LD; - ODBC_CFLAGS=-I$ODBC_INCDIR - ODBC_LFLAGS=-L$ODBC_LIBDIR - LIST=$(empocc -listlines -bcs -o a a.c) - - NEWLIST= - for I in $LIST - do - case $I in - $EMPRESSPATH/odbccl/lib/* | \ - $EMPRESSPATH/rdbms/lib/* | \ - $EMPRESSPATH/common/lib/*) - NEWLIST="$NEWLIST $I" - ;; - esac - done - ODBC_LIBS="-lempphpbcs -lms -lmscfg -lbasic -lbasic_os -lnlscstab -lnlsmsgtab -lm -ldl -lcrypt" - ODBC_TYPE=empress-bcs - AC_DEFINE([HAVE_EMPRESS], [1], - [Define to 1 if the odbc extension uses the Empress.]) - PHP_ODBC_FIND_EMPRESS_BCS_LIBS([$ODBC_LIBDIR]) - ]) -]) - AS_VAR_IF([ODBC_TYPE],, [ PHP_ARG_WITH([custom-odbc], [for a custom ODBC support], @@ -317,25 +91,6 @@ PHP_ARG_WITH([iodbc], ]) ]) -AS_VAR_IF([ODBC_TYPE],, [ -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]])]) - - AS_VAR_IF([PHP_ESOOB], [no], [], [ - AS_VAR_IF([PHP_ESOOB], [yes], [PHP_ESOOB=/usr/local/easysoft/oob/client]) - ODBC_INCDIR=$PHP_ESOOB/include - ODBC_LIBDIR=$PHP_ESOOB/$PHP_LIBDIR - ODBC_LFLAGS=-L$ODBC_LIBDIR - ODBC_CFLAGS=-I$ODBC_INCDIR - ODBC_LIBS=-lesoobclient - ODBC_TYPE=esoob - AC_DEFINE([HAVE_ESOOB], [1], - [Define to 1 if the odbc extension uses the Easysoft OOB.]) - ]) -]) - AS_VAR_IF([ODBC_TYPE],, [ PHP_ARG_WITH([unixODBC], [whether to build with unixODBC support], @@ -364,49 +119,6 @@ PHP_ARG_WITH([unixODBC], ]) ]) -AS_VAR_IF([ODBC_TYPE],, [ -PHP_ARG_WITH([dbmaker], - [for DBMaker support], - [AS_HELP_STRING([[--with-dbmaker[=DIR]]], - [Include DBMaker support])]) - - AS_VAR_IF([PHP_DBMAKER], [no], [], [ - AS_VAR_IF([PHP_DBMAKER], [yes], [ - dnl Find dbmaker home directory - DBMAKER_HOME=$(grep "^dbmaker:" /etc/passwd | $AWK -F: '{print $6}') - - dnl check DBMaker version (from 5.0 to 2.0) - DBMAKER_VERSION=5.0 - - while test ! -d $DBMAKER_HOME/$DBMAKER_VERSION && test "$DBMAKER_VERSION" != "2.9"; do - DM_VER=$(echo $DBMAKER_VERSION | $SED -e 's/\.//' | $AWK '{ print $1-1;}') - MAJOR_V=$(echo $DM_VER | $AWK '{ print $1/10; }' | $AWK -F. '{ print $1; }') - MINOR_V=$(echo $DM_VER | $AWK '{ print $1%10; }') - DBMAKER_VERSION=$MAJOR_V.$MINOR_V - done - - AS_VAR_IF([DBMAKER_VERSION], [2.9], - [PHP_DBMAKER=$DBMAKER_HOME], - [PHP_DBMAKER=$DBMAKER_HOME/$DBMAKER_VERSION]) - ]) - - ODBC_INCDIR=$PHP_DBMAKER/include - ODBC_LIBDIR=$PHP_DBMAKER/$PHP_LIBDIR - ODBC_CFLAGS=-I$ODBC_INCDIR - ODBC_LFLAGS=-L$ODBC_LIBDIR - ODBC_LIBS="-ldmapic -lc" - ODBC_TYPE=dbmaker - - AC_DEFINE([HAVE_DBMAKER], [1], - [Define to 1 if the odbc extension uses the DBMaker.]) - - AS_VAR_IF([ext_shared], [yes], [ODBC_LIBS="-ldmapic -lc -lm"], [ - PHP_ADD_LIBRARY_WITH_PATH([dmapic], [$ODBC_LIBDIR]) - PHP_ADD_INCLUDE([$ODBC_INCDIR]) - ]) - ]) -]) - AH_TEMPLATE([ODBCVER], [The highest supported ODBC version.]) AS_VAR_IF([PHP_ODBCVER], [no], [AC_DEFINE([ODBCVER], [0x0350])], @@ -415,13 +127,7 @@ AS_VAR_IF([PHP_ODBCVER], [no], dnl Extension setup if test -n "$ODBC_TYPE"; then - AS_VAR_IF([ODBC_TYPE], [dbmaker],, [ - PHP_EVAL_LIBLINE([$ODBC_LFLAGS $ODBC_LIBS], [ODBC_SHARED_LIBADD]) - AS_VAR_IF([ODBC_TYPE], [solid],, - [AC_DEFINE([HAVE_SQLDATASOURCES], [1], - [Define to 1 if ODBC library has 'SQLDataSources', as a function or - macro.])]) - ]) + PHP_EVAL_LIBLINE([$ODBC_LFLAGS $ODBC_LIBS], [ODBC_SHARED_LIBADD]) AC_DEFINE([HAVE_UODBC], [1], [Define to 1 if the PHP extension 'odbc' is available.]) diff --git a/ext/odbc/config.w32 b/ext/odbc/config.w32 index 1030db44465be..a170ed05208ac 100644 --- a/ext/odbc/config.w32 +++ b/ext/odbc/config.w32 @@ -9,7 +9,6 @@ if (PHP_ODBC == "yes") { && CHECK_HEADER_ADD_INCLUDE("sqlext.h", "CFLAGS_ODBC")) { EXTENSION("odbc", "php_odbc.c odbc_utils.c", PHP_ODBC_SHARED, "/DZEND_ENABLE_STATIC_TSRMLS_CACHE=1"); AC_DEFINE("HAVE_UODBC", 1, "Define to 1 if the PHP extension 'odbc' is available."); - AC_DEFINE("HAVE_SQLDATASOURCES", 1, "Define to 1 if ODBC library has 'SQLDataSources', as a function or macro."); if ("no" == PHP_ODBCVER) { AC_DEFINE("ODBCVER", "0x0350", "The highest supported ODBC version.", false); } else if ("0" != PHP_ODBCVER) { diff --git a/ext/odbc/odbc.stub.php b/ext/odbc/odbc.stub.php index f1eb2a890b3c3..3e9be666906e3 100644 --- a/ext/odbc/odbc.stub.php +++ b/ext/odbc/odbc.stub.php @@ -341,9 +341,7 @@ function odbc_execute(Odbc\Result $statement, array $params = []): bool {} function odbc_cursor(Odbc\Result $statement): string|false {} -#ifdef HAVE_SQLDATASOURCES function odbc_data_source(Odbc\Connection $odbc, int $fetch_type): array|null|false {} -#endif function odbc_exec(Odbc\Connection $odbc, string $query): Odbc\Result|false {} @@ -381,9 +379,7 @@ function odbc_close(Odbc\Connection $odbc): void {} function odbc_num_rows(Odbc\Result $statement): int {} -#if !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) function odbc_next_result(Odbc\Result $statement): bool {} -#endif function odbc_num_fields(Odbc\Result $statement): int {} @@ -420,23 +416,19 @@ function odbc_gettypeinfo(Odbc\Connection $odbc, int $data_type = 0): Odbc\Resul function odbc_primarykeys(Odbc\Connection $odbc, ?string $catalog, string $schema, string $table): Odbc\Result|false {} -#if !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) && !defined(HAVE_SOLID_35) function odbc_procedurecolumns(Odbc\Connection $odbc, ?string $catalog = null, ?string $schema = null, ?string $procedure = null, ?string $column = null): Odbc\Result|false {} function odbc_procedures(Odbc\Connection $odbc, ?string $catalog = null, ?string $schema = null, ?string $procedure = null): Odbc\Result|false {} function odbc_foreignkeys(Odbc\Connection $odbc, ?string $pk_catalog, string $pk_schema, string $pk_table, string $fk_catalog, string $fk_schema, string $fk_table): Odbc\Result|false {} -#endif function odbc_specialcolumns(Odbc\Connection $odbc, int $type, ?string $catalog, string $schema, string $table, int $scope, int $nullable): Odbc\Result|false {} function odbc_statistics(Odbc\Connection $odbc, ?string $catalog, string $schema, string $table, int $unique, int $accuracy): Odbc\Result|false {} -#if !defined(HAVE_DBMAKER) && !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) &&!defined(HAVE_SOLID_35) function odbc_tableprivileges(Odbc\Connection $odbc, ?string $catalog, string $schema, string $table): Odbc\Result|false {} function odbc_columnprivileges(Odbc\Connection $odbc, ?string $catalog, string $schema, string $table, string $column): Odbc\Result|false {} -#endif /* odbc_utils.c */ diff --git a/ext/odbc/odbc_arginfo.h b/ext/odbc/odbc_arginfo.h index 4bed0ccb7e6c8..1e1587b2cd964 100644 --- a/ext/odbc/odbc_arginfo.h +++ b/ext/odbc/odbc_arginfo.h @@ -1,5 +1,5 @@ /* This is a generated file, edit the .stub.php file instead. - * Stub hash: 30ed66d5e97f6615a461d39f40f85a18ba618711 */ + * Stub hash: 1bd1ad24f7dee22b484bd948d8e23d85d4a927c9 */ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_odbc_close_all, 0, 0, IS_VOID, 0) ZEND_END_ARG_INFO() @@ -28,12 +28,10 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_odbc_cursor, 0, 1, MAY_BE_STRING ZEND_ARG_OBJ_INFO(0, statement, Odbc\\Result, 0) ZEND_END_ARG_INFO() -#if defined(HAVE_SQLDATASOURCES) ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_odbc_data_source, 0, 2, MAY_BE_ARRAY|MAY_BE_NULL|MAY_BE_FALSE) ZEND_ARG_OBJ_INFO(0, odbc, Odbc\\Connection, 0) ZEND_ARG_TYPE_INFO(0, fetch_type, IS_LONG, 0) ZEND_END_ARG_INFO() -#endif #define arginfo_odbc_exec arginfo_odbc_prepare @@ -95,11 +93,9 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_odbc_num_rows, 0, 1, IS_LONG, 0) ZEND_ARG_OBJ_INFO(0, statement, Odbc\\Result, 0) ZEND_END_ARG_INFO() -#if !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_odbc_next_result, 0, 1, _IS_BOOL, 0) ZEND_ARG_OBJ_INFO(0, statement, Odbc\\Result, 0) ZEND_END_ARG_INFO() -#endif #define arginfo_odbc_num_fields arginfo_odbc_num_rows @@ -176,7 +172,6 @@ ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_odbc_primarykeys, 0, 4, Odbc ZEND_ARG_TYPE_INFO(0, table, IS_STRING, 0) ZEND_END_ARG_INFO() -#if !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) && !defined(HAVE_SOLID_35) ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_odbc_procedurecolumns, 0, 1, Odbc\\Result, MAY_BE_FALSE) ZEND_ARG_OBJ_INFO(0, odbc, Odbc\\Connection, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, catalog, IS_STRING, 1, "null") @@ -184,18 +179,14 @@ ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_odbc_procedurecolumns, 0, 1, ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, procedure, IS_STRING, 1, "null") ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, column, IS_STRING, 1, "null") ZEND_END_ARG_INFO() -#endif -#if !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) && !defined(HAVE_SOLID_35) ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_odbc_procedures, 0, 1, Odbc\\Result, MAY_BE_FALSE) ZEND_ARG_OBJ_INFO(0, odbc, Odbc\\Connection, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, catalog, IS_STRING, 1, "null") ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, schema, IS_STRING, 1, "null") ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, procedure, IS_STRING, 1, "null") ZEND_END_ARG_INFO() -#endif -#if !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) && !defined(HAVE_SOLID_35) ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_odbc_foreignkeys, 0, 7, Odbc\\Result, MAY_BE_FALSE) ZEND_ARG_OBJ_INFO(0, odbc, Odbc\\Connection, 0) ZEND_ARG_TYPE_INFO(0, pk_catalog, IS_STRING, 1) @@ -205,7 +196,6 @@ ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_odbc_foreignkeys, 0, 7, Odbc ZEND_ARG_TYPE_INFO(0, fk_schema, IS_STRING, 0) ZEND_ARG_TYPE_INFO(0, fk_table, IS_STRING, 0) ZEND_END_ARG_INFO() -#endif ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_odbc_specialcolumns, 0, 7, Odbc\\Result, MAY_BE_FALSE) ZEND_ARG_OBJ_INFO(0, odbc, Odbc\\Connection, 0) @@ -226,16 +216,8 @@ ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_odbc_statistics, 0, 6, Odbc\ ZEND_ARG_TYPE_INFO(0, accuracy, IS_LONG, 0) ZEND_END_ARG_INFO() -#if !defined(HAVE_DBMAKER) && !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) &&!defined(HAVE_SOLID_35) -ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_odbc_tableprivileges, 0, 4, Odbc\\Result, MAY_BE_FALSE) - ZEND_ARG_OBJ_INFO(0, odbc, Odbc\\Connection, 0) - ZEND_ARG_TYPE_INFO(0, catalog, IS_STRING, 1) - ZEND_ARG_TYPE_INFO(0, schema, IS_STRING, 0) - ZEND_ARG_TYPE_INFO(0, table, IS_STRING, 0) -ZEND_END_ARG_INFO() -#endif +#define arginfo_odbc_tableprivileges arginfo_odbc_primarykeys -#if !defined(HAVE_DBMAKER) && !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) &&!defined(HAVE_SOLID_35) ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_odbc_columnprivileges, 0, 5, Odbc\\Result, MAY_BE_FALSE) ZEND_ARG_OBJ_INFO(0, odbc, Odbc\\Connection, 0) ZEND_ARG_TYPE_INFO(0, catalog, IS_STRING, 1) @@ -243,7 +225,6 @@ ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_odbc_columnprivileges, 0, 5, ZEND_ARG_TYPE_INFO(0, table, IS_STRING, 0) ZEND_ARG_TYPE_INFO(0, column, IS_STRING, 0) ZEND_END_ARG_INFO() -#endif ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_odbc_connection_string_is_quoted, 0, 1, _IS_BOOL, 0) ZEND_ARG_TYPE_INFO(0, str, IS_STRING, 0) @@ -261,9 +242,7 @@ ZEND_FUNCTION(odbc_longreadlen); ZEND_FUNCTION(odbc_prepare); ZEND_FUNCTION(odbc_execute); ZEND_FUNCTION(odbc_cursor); -#if defined(HAVE_SQLDATASOURCES) ZEND_FUNCTION(odbc_data_source); -#endif ZEND_FUNCTION(odbc_exec); #if defined(PHP_ODBC_HAVE_FETCH_HASH) ZEND_FUNCTION(odbc_fetch_object); @@ -280,9 +259,7 @@ ZEND_FUNCTION(odbc_connect); ZEND_FUNCTION(odbc_pconnect); ZEND_FUNCTION(odbc_close); ZEND_FUNCTION(odbc_num_rows); -#if !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) ZEND_FUNCTION(odbc_next_result); -#endif ZEND_FUNCTION(odbc_num_fields); ZEND_FUNCTION(odbc_field_name); ZEND_FUNCTION(odbc_field_type); @@ -299,23 +276,13 @@ ZEND_FUNCTION(odbc_tables); ZEND_FUNCTION(odbc_columns); ZEND_FUNCTION(odbc_gettypeinfo); ZEND_FUNCTION(odbc_primarykeys); -#if !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) && !defined(HAVE_SOLID_35) ZEND_FUNCTION(odbc_procedurecolumns); -#endif -#if !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) && !defined(HAVE_SOLID_35) ZEND_FUNCTION(odbc_procedures); -#endif -#if !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) && !defined(HAVE_SOLID_35) ZEND_FUNCTION(odbc_foreignkeys); -#endif ZEND_FUNCTION(odbc_specialcolumns); ZEND_FUNCTION(odbc_statistics); -#if !defined(HAVE_DBMAKER) && !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) &&!defined(HAVE_SOLID_35) ZEND_FUNCTION(odbc_tableprivileges); -#endif -#if !defined(HAVE_DBMAKER) && !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) &&!defined(HAVE_SOLID_35) ZEND_FUNCTION(odbc_columnprivileges); -#endif ZEND_FUNCTION(odbc_connection_string_is_quoted); ZEND_FUNCTION(odbc_connection_string_should_quote); ZEND_FUNCTION(odbc_connection_string_quote); @@ -327,9 +294,7 @@ static const zend_function_entry ext_functions[] = { ZEND_FE(odbc_prepare, arginfo_odbc_prepare) ZEND_FE(odbc_execute, arginfo_odbc_execute) ZEND_FE(odbc_cursor, arginfo_odbc_cursor) -#if defined(HAVE_SQLDATASOURCES) ZEND_FE(odbc_data_source, arginfo_odbc_data_source) -#endif ZEND_FE(odbc_exec, arginfo_odbc_exec) ZEND_RAW_FENTRY("odbc_do", zif_odbc_exec, arginfo_odbc_do, 0, NULL, NULL) #if defined(PHP_ODBC_HAVE_FETCH_HASH) @@ -347,9 +312,7 @@ static const zend_function_entry ext_functions[] = { ZEND_FE(odbc_pconnect, arginfo_odbc_pconnect) ZEND_FE(odbc_close, arginfo_odbc_close) ZEND_FE(odbc_num_rows, arginfo_odbc_num_rows) -#if !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) ZEND_FE(odbc_next_result, arginfo_odbc_next_result) -#endif ZEND_FE(odbc_num_fields, arginfo_odbc_num_fields) ZEND_FE(odbc_field_name, arginfo_odbc_field_name) ZEND_FE(odbc_field_type, arginfo_odbc_field_type) @@ -367,23 +330,13 @@ static const zend_function_entry ext_functions[] = { ZEND_FE(odbc_columns, arginfo_odbc_columns) ZEND_FE(odbc_gettypeinfo, arginfo_odbc_gettypeinfo) ZEND_FE(odbc_primarykeys, arginfo_odbc_primarykeys) -#if !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) && !defined(HAVE_SOLID_35) ZEND_FE(odbc_procedurecolumns, arginfo_odbc_procedurecolumns) -#endif -#if !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) && !defined(HAVE_SOLID_35) ZEND_FE(odbc_procedures, arginfo_odbc_procedures) -#endif -#if !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) && !defined(HAVE_SOLID_35) ZEND_FE(odbc_foreignkeys, arginfo_odbc_foreignkeys) -#endif ZEND_FE(odbc_specialcolumns, arginfo_odbc_specialcolumns) ZEND_FE(odbc_statistics, arginfo_odbc_statistics) -#if !defined(HAVE_DBMAKER) && !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) &&!defined(HAVE_SOLID_35) ZEND_FE(odbc_tableprivileges, arginfo_odbc_tableprivileges) -#endif -#if !defined(HAVE_DBMAKER) && !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) &&!defined(HAVE_SOLID_35) ZEND_FE(odbc_columnprivileges, arginfo_odbc_columnprivileges) -#endif ZEND_FE(odbc_connection_string_is_quoted, arginfo_odbc_connection_string_is_quoted) ZEND_FE(odbc_connection_string_should_quote, arginfo_odbc_connection_string_should_quote) ZEND_FE(odbc_connection_string_quote, arginfo_odbc_connection_string_quote) diff --git a/ext/odbc/php_odbc.c b/ext/odbc/php_odbc.c index 108c2f663ad1a..e3d533ab036f4 100644 --- a/ext/odbc/php_odbc.c +++ b/ext/odbc/php_odbc.c @@ -253,10 +253,6 @@ static void odbc_result_free(odbc_result *res) /* If aborted via timer expiration, don't try to call any unixODBC function */ if (res->stmt && !(PG(connection_status) & PHP_CONNECTION_TIMEOUT)) { -#if defined(HAVE_SOLID) || defined(HAVE_SOLID_30) || defined(HAVE_SOLID_35) - SQLTransact(res->conn_ptr->henv, res->conn_ptr->hdbc, - (SQLUSMALLINT) SQL_COMMIT); -#endif SQLFreeStmt(res->stmt,SQL_DROP); /* We don't want the connection to be closed after the last statement has been closed * Connections will be closed on shutdown @@ -810,17 +806,7 @@ void odbc_transact(INTERNAL_FUNCTION_PARAMETERS, int type) void odbc_column_lengths(INTERNAL_FUNCTION_PARAMETERS, int type) { odbc_result *result; -#if defined(HAVE_SOLID) || defined(HAVE_SOLID_30) - /* this seems to be necessary for Solid2.3 ( tested by - * tammy@synchronis.com) and Solid 3.0 (tested by eric@terra.telemediair.nl) - * Solid does not seem to declare a SQLINTEGER, but it does declare a - * SQL_INTEGER which does not work (despite being the same type as a SDWORD. - * Solid 3.5 does not have this issue. - */ - SDWORD len; -#else SQLLEN len; -#endif zval *pv_res; zend_long pv_num; @@ -900,9 +886,7 @@ PHP_FUNCTION(odbc_prepare) odbc_result *result = NULL; RETCODE rc; int i; -#ifdef HAVE_SQL_EXTENDED_FETCH SQLUINTEGER scrollopts; -#endif if (zend_parse_parameters(ZEND_NUM_ARGS(), "Os", &pv_conn, odbc_connection_ce, &query, &query_len) == FAILURE) { RETURN_THROWS(); @@ -930,9 +914,6 @@ PHP_FUNCTION(odbc_prepare) RETURN_FALSE; } -#ifdef HAVE_SQL_EXTENDED_FETCH - /* Solid doesn't have ExtendedFetch, if DriverManager is used, get Info, - whether Driver supports ExtendedFetch */ rc = SQLGetInfo(conn->hdbc, SQL_FETCH_DIRECTION, (void *) &scrollopts, sizeof(scrollopts), NULL); if (rc == SQL_SUCCESS) { if ((result->fetch_abs = (scrollopts & SQL_FD_FETCH_ABSOLUTE))) { @@ -944,7 +925,6 @@ PHP_FUNCTION(odbc_prepare) } else { result->fetch_abs = 0; } -#endif rc = SQLPrepare(result->stmt, (SQLCHAR *) query, SQL_NTS); switch (rc) { @@ -1094,9 +1074,6 @@ PHP_FUNCTION(odbc_execute) (void *)(intptr_t)params[i-1].fp, 0, ¶ms[i-1].vallen); } else { -#ifdef HAVE_DBMAKER - precision = params[i-1].vallen; -#endif if (otype == IS_NULL) { params[i-1].vallen = SQL_NULL_DATA; } @@ -1224,7 +1201,6 @@ PHP_FUNCTION(odbc_cursor) } /* }}} */ -#ifdef HAVE_SQLDATASOURCES /* {{{ Return information about the currently connected data source */ PHP_FUNCTION(odbc_data_source) { @@ -1280,7 +1256,6 @@ PHP_FUNCTION(odbc_data_source) } /* }}} */ -#endif /* HAVE_SQLDATASOURCES */ /* {{{ Prepare and execute an SQL statement */ /* XXX Use flags */ @@ -1291,9 +1266,7 @@ PHP_FUNCTION(odbc_exec) size_t query_len; odbc_result *result = NULL; RETCODE rc; -#ifdef HAVE_SQL_EXTENDED_FETCH SQLUINTEGER scrollopts; -#endif if (zend_parse_parameters(ZEND_NUM_ARGS(), "Os", &pv_conn, odbc_connection_ce, &query, &query_len) == FAILURE) { RETURN_THROWS(); @@ -1318,9 +1291,6 @@ PHP_FUNCTION(odbc_exec) RETURN_FALSE; } -#ifdef HAVE_SQL_EXTENDED_FETCH - /* Solid doesn't have ExtendedFetch, if DriverManager is used, get Info, - whether Driver supports ExtendedFetch */ rc = SQLGetInfo(conn->hdbc, SQL_FETCH_DIRECTION, (void *) &scrollopts, sizeof(scrollopts), NULL); if (rc == SQL_SUCCESS) { if ((result->fetch_abs = (scrollopts & SQL_FD_FETCH_ABSOLUTE))) { @@ -1332,7 +1302,6 @@ PHP_FUNCTION(odbc_exec) } else { result->fetch_abs = 0; } -#endif rc = SQLExecDirect(result->stmt, (SQLCHAR *) query, SQL_NTS); if (rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO && rc != SQL_NO_DATA_FOUND) { @@ -1375,10 +1344,8 @@ static void php_odbc_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int result_type) zend_long pv_row = 0; bool pv_row_is_null = true; zval *pv_res, tmp; -#ifdef HAVE_SQL_EXTENDED_FETCH SQLULEN crow; SQLUSMALLINT RowStatus[1]; -#endif if (zend_parse_parameters(ZEND_NUM_ARGS(), "O|l!", &pv_res, odbc_result_ce, &pv_row, &pv_row_is_null) == FAILURE) { RETURN_THROWS(); @@ -1389,46 +1356,33 @@ static void php_odbc_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int result_type) /* TODO deprecate $row argument values less than 1 after PHP 8.4 */ -#ifndef HAVE_SQL_EXTENDED_FETCH - if (!pv_row_is_null && pv_row > 0) { - php_error_docref(NULL, E_WARNING, "Extended fetch functionality is not available, argument #3 ($row) is ignored"); - } -#endif - if (result->numcols == 0) { php_error_docref(NULL, E_WARNING, "No tuples available at this result index"); RETURN_FALSE; } -#ifdef HAVE_SQL_EXTENDED_FETCH if (result->fetch_abs) { if (!pv_row_is_null && pv_row > 0) { rc = SQLExtendedFetch(result->stmt,SQL_FETCH_ABSOLUTE,(SQLLEN)pv_row,&crow,RowStatus); } else { rc = SQLExtendedFetch(result->stmt,SQL_FETCH_NEXT,1,&crow,RowStatus); } - } else -#endif - rc = SQLFetch(result->stmt); + } else { + rc = SQLFetch(result->stmt); + } if (rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO) { if (rc == SQL_ERROR) { -#ifdef HAVE_SQL_EXTENDED_FETCH odbc_sql_error(result->conn_ptr, result->stmt, "SQLExtendedFetch"); -#else - odbc_sql_error(result->conn_ptr, result->stmt, "SQLFetch"); -#endif } RETURN_FALSE; } array_init(return_value); -#ifdef HAVE_SQL_EXTENDED_FETCH if (!pv_row_is_null && pv_row > 0 && result->fetch_abs) result->fetched = (SQLLEN)pv_row; else -#endif result->fetched++; for(i = 0; i < result->numcols; i++) { @@ -1541,10 +1495,8 @@ PHP_FUNCTION(odbc_fetch_into) zval *pv_res, *pv_res_arr, tmp; zend_long pv_row = 0; bool pv_row_is_null = true; -#ifdef HAVE_SQL_EXTENDED_FETCH SQLULEN crow; SQLUSMALLINT RowStatus[1]; -#endif /* HAVE_SQL_EXTENDED_FETCH */ if (zend_parse_parameters(ZEND_NUM_ARGS(), "Oz|l!", &pv_res, odbc_result_ce, &pv_res_arr, &pv_row, &pv_row_is_null) == FAILURE) { RETURN_THROWS(); @@ -1555,12 +1507,6 @@ PHP_FUNCTION(odbc_fetch_into) /* TODO deprecate $row argument values less than 1 after PHP 8.4 */ -#ifndef HAVE_SQL_EXTENDED_FETCH - if (!pv_row_is_null && pv_row > 0) { - php_error_docref(NULL, E_WARNING, "Extended fetch functionality is not available, argument #3 ($row) is ignored"); - } -#endif - if (result->numcols == 0) { php_error_docref(NULL, E_WARNING, "No tuples available at this result index"); RETURN_FALSE; @@ -1571,33 +1517,26 @@ PHP_FUNCTION(odbc_fetch_into) RETURN_THROWS(); } -#ifdef HAVE_SQL_EXTENDED_FETCH if (result->fetch_abs) { if (!pv_row_is_null && pv_row > 0) { rc = SQLExtendedFetch(result->stmt,SQL_FETCH_ABSOLUTE,(SQLLEN)pv_row,&crow,RowStatus); } else { rc = SQLExtendedFetch(result->stmt,SQL_FETCH_NEXT,1,&crow,RowStatus); } - } else -#endif + } else { rc = SQLFetch(result->stmt); + } if (rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO) { if (rc == SQL_ERROR) { -#ifdef HAVE_SQL_EXTENDED_FETCH odbc_sql_error(result->conn_ptr, result->stmt, "SQLExtendedFetch"); -#else - odbc_sql_error(result->conn_ptr, result->stmt, "SQLFetch"); -#endif } RETURN_FALSE; } -#ifdef HAVE_SQL_EXTENDED_FETCH if (!pv_row_is_null && pv_row > 0 && result->fetch_abs) result->fetched = (SQLLEN)pv_row; else -#endif result->fetched++; for(i = 0; i < result->numcols; i++) { @@ -1677,10 +1616,8 @@ PHP_FUNCTION(odbc_fetch_row) zval *pv_res; zend_long pv_row = 0; bool pv_row_is_null = true; -#ifdef HAVE_SQL_EXTENDED_FETCH SQLULEN crow; SQLUSMALLINT RowStatus[1]; -#endif if (zend_parse_parameters(ZEND_NUM_ARGS(), "O|l!", &pv_res, odbc_result_ce, &pv_row, &pv_row_is_null) == FAILURE) { RETURN_THROWS(); @@ -1689,50 +1626,38 @@ PHP_FUNCTION(odbc_fetch_row) result = Z_ODBC_RESULT_P(pv_res); CHECK_ODBC_RESULT(result); -#ifndef HAVE_SQL_EXTENDED_FETCH - if (!pv_row_is_null) { - php_error_docref(NULL, E_WARNING, "Extended fetch functionality is not available, argument #3 ($row) is ignored"); - } -#else if (!pv_row_is_null && pv_row < 1) { php_error_docref(NULL, E_WARNING, "Argument #3 ($row) must be greater than or equal to 1"); RETURN_FALSE; } -#endif if (result->numcols == 0) { php_error_docref(NULL, E_WARNING, "No tuples available at this result index"); RETURN_FALSE; } -#ifdef HAVE_SQL_EXTENDED_FETCH if (result->fetch_abs) { if (!pv_row_is_null) { rc = SQLExtendedFetch(result->stmt,SQL_FETCH_ABSOLUTE,(SQLLEN)pv_row,&crow,RowStatus); } else { rc = SQLExtendedFetch(result->stmt,SQL_FETCH_NEXT,1,&crow,RowStatus); } - } else -#endif + } else { rc = SQLFetch(result->stmt); + } if (rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO) { if (rc == SQL_ERROR) { -#ifdef HAVE_SQL_EXTENDED_FETCH odbc_sql_error(result->conn_ptr, result->stmt, "SQLExtendedFetch"); -#else - odbc_sql_error(result->conn_ptr, result->stmt, "SQLFetch"); -#endif } RETURN_FALSE; } -#ifdef HAVE_SQL_EXTENDED_FETCH if (!pv_row_is_null) { result->fetched = (SQLLEN)pv_row; - } else -#endif + } else { result->fetched++; + } RETURN_TRUE; } @@ -1751,10 +1676,8 @@ PHP_FUNCTION(odbc_result) RETCODE rc; SQLLEN fieldsize; zval *pv_res; -#ifdef HAVE_SQL_EXTENDED_FETCH SQLULEN crow; SQLUSMALLINT RowStatus[1]; -#endif ZEND_PARSE_PARAMETERS_START(2, 2) Z_PARAM_OBJECT_OF_CLASS(pv_res, odbc_result_ce) @@ -1805,20 +1728,14 @@ PHP_FUNCTION(odbc_result) if (result->fetched == 0) { /* User forgot to call odbc_fetch_row(), or wants to reload the results, do it now */ -#ifdef HAVE_SQL_EXTENDED_FETCH if (result->fetch_abs) rc = SQLExtendedFetch(result->stmt, SQL_FETCH_NEXT, 1, &crow,RowStatus); else -#endif rc = SQLFetch(result->stmt); if (rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO) { if (rc == SQL_ERROR) { -#ifdef HAVE_SQL_EXTENDED_FETCH - odbc_sql_error(result->conn_ptr, result->stmt, "SQLExtendedFetch"); -#else - odbc_sql_error(result->conn_ptr, result->stmt, "SQLFetch"); -#endif + odbc_sql_error(result->conn_ptr, result->stmt, "SQLExtendedFetch"); } RETURN_FALSE; } @@ -1966,10 +1883,8 @@ PHP_FUNCTION(odbc_result_all) char *pv_format = NULL; size_t i, pv_format_len = 0; SQLSMALLINT sql_c_type; -#ifdef HAVE_SQL_EXTENDED_FETCH SQLULEN crow; SQLUSMALLINT RowStatus[1]; -#endif if (zend_parse_parameters(ZEND_NUM_ARGS(), "O|s", &pv_res, odbc_result_ce, &pv_format, &pv_format_len) == FAILURE) { RETURN_THROWS(); @@ -1982,11 +1897,9 @@ PHP_FUNCTION(odbc_result_all) php_error_docref(NULL, E_WARNING, "No tuples available at this result index"); RETURN_FALSE; } -#ifdef HAVE_SQL_EXTENDED_FETCH if (result->fetch_abs) rc = SQLExtendedFetch(result->stmt,SQL_FETCH_NEXT,1,&crow,RowStatus); else -#endif rc = SQLFetch(result->stmt); if (rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO) { @@ -2084,11 +1997,9 @@ PHP_FUNCTION(odbc_result_all) } php_printf("\n"); -#ifdef HAVE_SQL_EXTENDED_FETCH if (result->fetch_abs) rc = SQLExtendedFetch(result->stmt,SQL_FETCH_NEXT,1,&crow,RowStatus); else -#endif rc = SQLFetch(result->stmt); } php_printf("\n"); @@ -2158,18 +2069,6 @@ bool odbc_sqlconnect(zval *zv, char *db, char *uid, char *pwd, int cur_opt, bool return false; } -#if defined(HAVE_SOLID) || defined(HAVE_SOLID_30) - SQLSetConnectOption((link->connection->hdbc, SQL_TRANSLATE_OPTION, - SQL_SOLID_XLATOPT_NOCNV); -#endif -#ifdef HAVE_OPENLINK - { - char dsnbuf[1024]; - short dsnbuflen; - - rc = SQLDriverConnect(link->connection->hdbc, NULL, db, SQL_NTS, dsnbuf, sizeof(dsnbuf) - 1, &dsnbuflen, SQL_DRIVER_NOPROMPT); - } -#else if (cur_opt != SQL_CUR_DEFAULT) { rc = SQLSetConnectOption(link->connection->hdbc, SQL_ODBC_CURSORS, cur_opt); if (rc != SQL_SUCCESS) { /* && rc != SQL_SUCCESS_WITH_INFO ? */ @@ -2179,9 +2078,7 @@ bool odbc_sqlconnect(zval *zv, char *db, char *uid, char *pwd, int cur_opt, bool } /* Possible fix for bug #10250 * Needs testing on UnixODBC < 2.0.5 though. */ -#if defined(HAVE_EMPRESS) || defined(HAVE_UNIXODBC) || defined(PHP_WIN32) || defined (HAVE_IODBC) -/* * Uncomment the line above, and comment line below to fully test - * #ifdef HAVE_EMPRESS */ +#if defined(HAVE_UNIXODBC) || defined(PHP_WIN32) || defined (HAVE_IODBC) { int direct = 0; SQLCHAR dsnbuf[1024]; @@ -2267,7 +2164,6 @@ bool odbc_sqlconnect(zval *zv, char *db, char *uid, char *pwd, int cur_opt, bool } #else rc = SQLConnect(link->connection->hdbc, (SQLCHAR *) db, SQL_NTS, uid, SQL_NTS, pwd, SQL_NTS); -#endif #endif if (rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO) { odbc_sql_error(link->connection, SQL_NULL_HSTMT, "SQLConnect"); @@ -2476,7 +2372,6 @@ PHP_FUNCTION(odbc_num_rows) } /* }}} */ -#if !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) /* {{{ Checks if multiple results are available */ PHP_FUNCTION(odbc_next_result) { @@ -2523,7 +2418,6 @@ PHP_FUNCTION(odbc_next_result) } } /* }}} */ -#endif /* {{{ Get number of columns in a result */ PHP_FUNCTION(odbc_num_fields) @@ -2953,7 +2847,6 @@ PHP_FUNCTION(odbc_columns) } /* }}} */ -#if !defined(HAVE_DBMAKER) && !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) && !defined(HAVE_SOLID_35) /* {{{ Returns a result identifier that can be used to fetch a list of columns and associated privileges for the specified table */ PHP_FUNCTION(odbc_columnprivileges) { @@ -3013,9 +2906,7 @@ PHP_FUNCTION(odbc_columnprivileges) odbc_insert_new_result(conn, return_value); } /* }}} */ -#endif /* HAVE_DBMAKER || HAVE_SOLID*/ -#if !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) && !defined(HAVE_SOLID_35) /* {{{ Returns a result identifier to either a list of foreign keys in the specified table or a list of foreign keys in other tables that refer to the primary key in the specified table */ PHP_FUNCTION(odbc_foreignkeys) { @@ -3030,7 +2921,7 @@ PHP_FUNCTION(odbc_foreignkeys) RETURN_THROWS(); } -#if defined(HAVE_DBMAKER) || defined(HAVE_IBMDB2) +#if defined(HAVE_IBMDB2) #define EMPTY_TO_NULL(xstr) \ if ((int)strlen((xstr)) == 0) (xstr) = NULL @@ -3089,7 +2980,6 @@ PHP_FUNCTION(odbc_foreignkeys) odbc_insert_new_result(conn, return_value); } /* }}} */ -#endif /* HAVE_SOLID */ /* {{{ Returns a result identifier containing information about data types supported by the data source */ PHP_FUNCTION(odbc_gettypeinfo) @@ -3206,7 +3096,6 @@ PHP_FUNCTION(odbc_primarykeys) } /* }}} */ -#if !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) && !defined(HAVE_SOLID_35) /* {{{ Returns a result identifier containing the list of input and output parameters, as well as the columns that make up the result set for the specified procedures */ PHP_FUNCTION(odbc_procedurecolumns) { @@ -3266,9 +3155,7 @@ PHP_FUNCTION(odbc_procedurecolumns) odbc_insert_new_result(conn, return_value); } /* }}} */ -#endif /* HAVE_SOLID */ -#if !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) && !defined(HAVE_SOLID_35) /* {{{ Returns a result identifier containing the list of procedure names in a datasource */ PHP_FUNCTION(odbc_procedures) { @@ -3326,7 +3213,6 @@ PHP_FUNCTION(odbc_procedures) odbc_insert_new_result(conn, return_value); } /* }}} */ -#endif /* HAVE_SOLID */ /* {{{ Returns a result identifier containing either the optimal set of columns that uniquely identifies a row in the table or columns that are automatically updated when any value in the row is updated by a transaction */ PHP_FUNCTION(odbc_specialcolumns) @@ -3461,7 +3347,6 @@ PHP_FUNCTION(odbc_statistics) } /* }}} */ -#if !defined(HAVE_DBMAKER) && !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) && !defined(HAVE_SOLID_35) /* {{{ Returns a result identifier containing a list of tables and the privileges associated with each table */ PHP_FUNCTION(odbc_tableprivileges) { @@ -3519,6 +3404,5 @@ PHP_FUNCTION(odbc_tableprivileges) odbc_insert_new_result(conn, return_value); } /* }}} */ -#endif /* HAVE_DBMAKER */ #endif /* HAVE_UODBC */ diff --git a/ext/odbc/php_odbc.h b/ext/odbc/php_odbc.h index bc29623d7c2f0..5503a007db8b9 100644 --- a/ext/odbc/php_odbc.h +++ b/ext/odbc/php_odbc.h @@ -31,7 +31,7 @@ extern zend_module_entry odbc_module_entry; #include "php_version.h" #define PHP_ODBC_VERSION PHP_VERSION -#if defined(HAVE_DBMAKER) || defined(PHP_WIN32) || defined(HAVE_IBMDB2) || defined(HAVE_UNIXODBC) || defined(HAVE_IODBC) +#if defined(PHP_WIN32) || defined(HAVE_IBMDB2) || defined(HAVE_UNIXODBC) || defined(HAVE_IODBC) # define PHP_ODBC_HAVE_FETCH_HASH 1 #endif diff --git a/ext/odbc/php_odbc_includes.h b/ext/odbc/php_odbc_includes.h index 59404ecd266ba..38695bd5e7d14 100644 --- a/ext/odbc/php_odbc_includes.h +++ b/ext/odbc/php_odbc_includes.h @@ -23,140 +23,32 @@ /* checking in the same order as in configure.ac */ -#if defined(HAVE_SOLID) || defined(HAVE_SOLID_30) || defined(HAVE_SOLID_35) /* Solid Server */ - -#define ODBC_TYPE "Solid" -#if defined(HAVE_SOLID) -# include -# include -# include -#elif defined(HAVE_SOLID_30) -# include -# include -# include -#elif defined(HAVE_SOLID_35) -# include -# include -# include -# include -# include -#endif /* end: #if defined(HAVE_SOLID) */ -#undef HAVE_SQL_EXTENDED_FETCH -#define SQLSMALLINT SWORD -#define SQLUSMALLINT UWORD -#ifndef SQL_SUCCEEDED -#define SQL_SUCCEEDED(rc) (((rc)&(~1))==0) -#endif - -#elif defined(HAVE_EMPRESS) /* Empress */ - -#define ODBC_TYPE "Empress" -#include -#include -#undef HAVE_SQL_EXTENDED_FETCH - -#elif defined(HAVE_ADABAS) /* Adabas D */ - -#define ODBC_TYPE "Adabas D" -#include -#include -#include -#define HAVE_SQL_EXTENDED_FETCH 1 -#define SQL_SUCCEEDED(rc) (((rc)&(~1))==0) -#define SQLINTEGER ULONG -#define SQLUSMALLINT USHORT - -#elif defined(HAVE_SAPDB) /* SAP DB */ - -#define ODBC_TYPE "SAP DB" -#include -#include -#include -#define HAVE_SQL_EXTENDED_FETCH 1 -#define SQL_SUCCEEDED(rc) (((rc)&(~1))==0) - -#elif defined(HAVE_IODBC) /* iODBC library */ - -#ifdef CHAR -#undef CHAR -#endif - -#ifdef SQLCHAR -#undef SQLCHAR -#endif +#if defined(HAVE_IODBC) /* iODBC library */ #define ODBC_TYPE "iODBC" #include #include #include -#define HAVE_SQL_EXTENDED_FETCH 1 #elif defined(HAVE_UNIXODBC) /* unixODBC library */ -#ifdef CHAR -#undef CHAR -#endif - -#ifdef SQLCHAR -#undef SQLCHAR -#endif - #define ODBC_TYPE "unixODBC" #undef ODBCVER #include #include -#define HAVE_SQL_EXTENDED_FETCH 1 - -#elif defined(HAVE_ESOOB) /* Easysoft ODBC-ODBC Bridge library */ - -#define ODBC_TYPE "ESOOB" -#include -#include -#define HAVE_SQL_EXTENDED_FETCH 1 - -#elif defined(HAVE_OPENLINK) /* OpenLink ODBC drivers */ - -#define ODBC_TYPE "Openlink" -#include -#include -#include -#include -#define HAVE_SQL_EXTENDED_FETCH 1 -#ifndef SQLSMALLINT -#define SQLSMALLINT SWORD -#endif -#ifndef SQLUSMALLINT -#define SQLUSMALLINT UWORD -#endif - -#elif defined(HAVE_DBMAKER) /* DBMaker */ - -#define ODBC_TYPE "DBMaker" -#undef ODBCVER -#define ODBCVER 0x0300 -#define HAVE_SQL_EXTENDED_FETCH 1 -#include - #elif defined(HAVE_CODBC) /* Custom ODBC */ #define ODBC_TYPE "Custom ODBC" -#define HAVE_SQL_EXTENDED_FETCH 1 #include #elif defined(HAVE_IBMDB2) /* DB2 CLI */ #define ODBC_TYPE "IBM DB2 CLI" -#define HAVE_SQL_EXTENDED_FETCH 1 #include -#ifdef DB268K -/* Need to include ASLM for 68K applications */ -#include -#endif #else /* MS ODBC */ -#define HAVE_SQL_EXTENDED_FETCH 1 #include #include #include @@ -176,10 +68,6 @@ #define ODBC_SQL_ENV_T SQLHANDLE #define ODBC_SQL_CONN_T SQLHANDLE #define ODBC_SQL_STMT_T SQLHANDLE -#elif defined( HAVE_SOLID_35 ) || defined( HAVE_SAPDB ) || defined ( HAVE_EMPRESS ) -#define ODBC_SQL_ENV_T SQLHENV -#define ODBC_SQL_CONN_T SQLHDBC -#define ODBC_SQL_STMT_T SQLHSTMT #else #define ODBC_SQL_ENV_T HENV #define ODBC_SQL_CONN_T HDBC @@ -187,10 +75,10 @@ #endif typedef struct odbc_connection { - ODBC_SQL_ENV_T henv; - ODBC_SQL_CONN_T hdbc; - char laststate[6]; - char lasterrormsg[SQL_MAX_MESSAGE_LENGTH]; + ODBC_SQL_ENV_T henv; + ODBC_SQL_CONN_T hdbc; + char laststate[6]; + char lasterrormsg[SQL_MAX_MESSAGE_LENGTH]; HashTable results; } odbc_connection; @@ -220,9 +108,7 @@ typedef struct odbc_result { odbc_result_value *values; SQLSMALLINT numcols; SQLSMALLINT numparams; -# ifdef HAVE_SQL_EXTENDED_FETCH int fetch_abs; -# endif zend_long longreadlen; int binmode; int fetched; @@ -240,11 +126,11 @@ ZEND_BEGIN_MODULE_GLOBALS(odbc) zend_long num_persistent; zend_long num_links; int defConn; - zend_long defaultlrl; - zend_long defaultbinmode; - zend_long default_cursortype; - char laststate[6]; - char lasterrormsg[SQL_MAX_MESSAGE_LENGTH]; + zend_long defaultlrl; + zend_long defaultbinmode; + zend_long default_cursortype; + char laststate[6]; + char lasterrormsg[SQL_MAX_MESSAGE_LENGTH]; /* Stores ODBC links throughout the duration of a request. The connection member may be either persistent or * non-persistent. In the former case, it is a pointer to an item in EG(persistent_list). This solution makes it * possible to properly free links during RSHUTDOWN (or when they are explicitly closed), while persistent