diff options
author | Kalle Sommer Nielsen <kalle@php.net> | 2017-07-19 10:19:32 +0200 |
---|---|---|
committer | Kalle Sommer Nielsen <kalle@php.net> | 2017-07-19 10:19:32 +0200 |
commit | a398df3e364e97196b4c7115fdd687f3f81b7db0 (patch) | |
tree | 6549e0cb4fb6aac0c511c59786272caf4836e238 | |
parent | bfdd22a3de252e81a70859a6ca28e2ba1533ef70 (diff) | |
download | php-git-a398df3e364e97196b4c7115fdd687f3f81b7db0.tar.gz |
Removed Bird(broken)step support from ODBC
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | UPGRADING | 286 | ||||
-rw-r--r-- | ext/odbc/birdstep.c | 709 | ||||
-rw-r--r-- | ext/odbc/config.m4 | 51 | ||||
-rw-r--r-- | ext/odbc/php_birdstep.h | 95 | ||||
-rw-r--r-- | ext/odbc/php_odbc.c | 16 | ||||
-rw-r--r-- | ext/odbc/php_odbc.h | 4 | ||||
-rw-r--r-- | ext/odbc/php_odbc_includes.h | 19 | ||||
-rw-r--r-- | main/build-defs.h.in | 2 | ||||
-rw-r--r-- | php.ini-development | 2 | ||||
-rw-r--r-- | php.ini-production | 2 |
11 files changed, 16 insertions, 1172 deletions
@@ -2,5 +2,7 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ?? ??? ????, PHP 7.3.0alpha1 + ODBC: + . Removed support for Birdstep. (Kalle) <<< NOTE: Insert NEWS from last stable release here prior to actual release! >>> @@ -1,4 +1,4 @@ -PHP 7.2 UPGRADE NOTES +PHP 7.3 UPGRADE NOTES 1. Backward Incompatible Changes 2. New Features @@ -19,136 +19,10 @@ PHP 7.2 UPGRADE NOTES 1. Backward Incompatible Changes ======================================== -- Core: - . gettype() will now return "resource (closed)" instead of "unknown type" for - closed resources. - . is_object() will now return true for objects of class - __PHP_Incomplete_Class. - . Support for Netware operating systems have been removed. - . Casting arrays to objects (with (object) or settype()) will now covert - integer keys to string property names. This fixes the behaviour of previous - versions, where integer keys would become inaccessible properties with - integer names. - . Casting objects to arrays (with (array) or settype()), and retrieving - object properties in an array with get_object_vars(), will now convert - numeric string property names (that is, property names of the format - /^(0|(-?[1-9][0-9]*))$/ where PHP_INT_MIN <= n <= PHP_INT_MAX) to integer - keys. This fixes the behaviour of previous versions, where numeric string - property names would become inaccessible string keys. - . Unqualified references to undefined constants now generate a Warning instead - of a notice. They will generate an Error in a future version of PHP. - (https://wiki.php.net/rfc/deprecate-bareword-strings) - . Minimum supported Windows versions are Windows 7/Server 2008 R2. - . Initial trait property value compatibility check will no longer perform - any casts. (Bug #74269) - . "object" (in any case) can no longer be used as a class name. - -- BCMath: - . The bcmod() function no longer truncates fractional numbers to integers. As - such, its behavior now follows fmod() rather than the `%` operator. For - example `bcmod('4', '3.5')` now returns '0.5' instead of '1'. - -- Hash: - . The hash_hmac(), hash_hmac_file(), hash_pbkdf2() and hash_init() (with - HASH_HMAC) functions no longer accept non-cryptographic hashes. - -- JSON - . The json_decode() option JSON_OBJECT_AS_ARRAY is used if the second - parameter (assoc) is null. Previously JSON_OBJECT_AS_ARRAY was always - ignored. - -- Session: - . Removed register_globals related code and "!" can be used as $_SESSION key name. - . Session is made to manage session status correctly and prevents invalid operations. - Only inappropriate codes are affected by this change. If you have problems with this, - it means you have problem in your code. - . Functions are made to set or return correct session status. - session_start(), session_status(), session_regenerate_id() - . Functions are made to return bool from null. These functions have void parameter - and void parameter is checked. - session_unset(), session_write_close()/session_commit(), session_abort(), - session_reset() - . Functions prohibit invalid operations with regard to session status and - HTTP header status, returns correct bool return value. - session_start(), session_set_cookie_params(), session_name(), session_module_name(), - session_set_save_handler(), session_regenerate_id(), session_cache_limiter(), - session_cache_expire(), session_unset(), session_destroy(), - session_write_close()/session_commit(), session_reset() - . INI value change by ini_set() returns update status correctly. Invalid INI modifications - are checked and made to fail. - session.name, session.save_path, session.cookie_lifetime, session.cookie_path, - session.cookie_domain, session.cookie_httponly, session.cookie_secure, - session.use_cookies, session.use_only_cookies, session.use_strict_mode, - session.referer_check, session.cache_limiter, session.cache_expire, - session.lazy_write, session.save_handler, session.serialize_handler, - session.gc_probability, session.gc_divior, session.gc_maxlifetime, - . Some E_ERRORs are changed to E_WARNING since session status is managed correctly. - session_start() - . Session no longer initialize $_SESSION for invalid and useless session. - session_start() - . When headers are already sent and try to set new INI values, session_name(), - session_module_name(), session_save_path(), session_cache_limiter() and - session_cache_expire() are no longer works. Older PHPs accepts new values even - if new values will not be effective. - This new corrected behavior may affect command line mode CLI scripts that manage - sessions. Use output buffer just like web applications to resolve problems on - CLI scripts. - - ======================================== 2. New Features ======================================== -- Core: - . It is now possible to remove argument type annotations when overriding an - inherited method. This complies with contravariance of method argument types - under the Liskov Substitution Principle. - (https://wiki.php.net/rfc/parameter-no-type-variance) - . It is now allowed to override an abstract method with another abstract - method in a child class. - (https://wiki.php.net/rfc/allow-abstract-function-override) - . A trailing comma in group use statements is now allowed. - (https://wiki.php.net/rfc/list-syntax-trailing-commas) - . The "object" type annotation is now supported. - (https://wiki.php.net/rfc/object-typehint) - -- DBA: - . Implemented support for the LMDB backend. - -- OCI8: - . Added Oracle Database Transparent Application Failover (TAF) callback support. - -- PCRE: - . Added `J` modifier for setting PCRE_DUPNAMES. - . Added `PREG_UNMATCHED_AS_NULL` flag to allow distinguish between unmatched - subpatterns and empty matches by reporting NULL and "" (empty string), - respectively. - -- Sodium - . New cryptographic extension - -- SQLite3: - . Implemented writing to BLOBs. - -- Standard: - . Simplified password hashing API updated to support Argon2i hashes when PHP is compiled with libargon2 - (https://wiki.php.net/rfc/argon2_password_hash). - . proc_nice() is now supported on Windows platforms. - -- Zip: - . read/write encrypted archive, relying on libzip 1.2.0, - using new methods: - ZipArchive::setEncryptionName($name, $method [, $password]); - ZipArchive::setEncryptionIndex($index, $method [, $password]); - and new constants: - ZipArchive::EM_NONE - ZipArchive::EM_AES_128 - ZipArchive::EM_AES_192 - ZipArchive::EM_AES_256 - . accept 'password' from zip stream context - . ZipArchive implements countable, added ZipArchive::count() method. - - ======================================== 3. Changes in SAPI modules ======================================== @@ -157,100 +31,14 @@ PHP 7.2 UPGRADE NOTES 4. Deprecated Functionality ======================================== -All the deprecated functionality listed in the following will be removed in -PHP 8.0. - -- Core: - . The trace_errors ini directive has been deprecated. - . The __autoload() mechanism has been deprecated, use spl_autoload_register() - instead. - . The (unset) cast has been deprecated. This does not affect the unset($var) - language construct. - . The create_function() function has been deprecated, use anonymous functions - instead. - . The each() function has been deprecated, use a foreach loop instead. - -- EXIF: - . The read_exif_data() alias have been deprecated, use exif_read_data() instead. - -- GD: - . png2wbmp() and jpeg2wbmp() have been deprecated. - -- GMP: - . The gmp_random() function has been deprecated, use gmp_random_bits() or - gmp_random_range() instead. - -- Intl: - . INTL_IDNA_VARIANT_2003 has been deprecated; use INTL_IDNA_VARIANT_UTS46 - instead. - -- Mbstring: - . The mbstring.func_overload ini directive has been deprecated. - -- Standard: - . Calling parse_str() without the result argument has been deprecated. - . Calling assert() with a string argument has been deprecated, use an ordinary - expression instead. - -See also: https://wiki.php.net/rfc/deprecations_php_7_2 - ======================================== 5. Changed Functions ======================================== -- Standard: - . password_hash() can generate Argon2i hashes when the algorithm is set to PASSWORD_ARGON2I. - When using PASSWORD_ARGON2I, the following cost factors may be set: 'memory_cost', 'time_cost', - and 'threads'. These cost factors will default to 'PASSWORD_ARGON2_DEFAULT_MEMORY_COST', - 'PASSWORD_ARGON2_DEFAULT_TIME_COST', and 'PASSWORD_ARGON2_DEFAULT_THREADS' respectively if not set. - . password_verify() can verify Argon2i hashes. - . password_get_info() and password_needs_rehash() can accept Argon2i hashes. - . mail()/mb_send_mail() accept array $extra_header. Array parameter is checked against RFC 2822. - Array format is - $extra_headers = [ - 'Header-Name' => 'Header value', - 'Multiple' => ['One header', 'Another header'], - 'Multiline' = "FirstLine\r\n SecondLine", - ]; - . count() now raises a warning when an invalid parameter is passed. - Only arrays and objects implementing the Countable interface should be passed. - . pack() and unpack() now support float and double in both little and big endian. - . number_format() ensures zero values never contain a negative sign. - -- XML: - . utf8_encode() and utf8_decode() have been moved to the Standard extension - as string functions. - ======================================== 6. New Functions ======================================== -- Core: - . Added stream_isatty(). - . Added sapi_windows_vt100_support(). - -- DOM: - . DomNodeList implements Countable, added DomNodeList::count(). - . DOMNamedNodeMap implements Countable, added DOMNamedNodeMap::count(). - -- GD: - . Added imagesetclip() and imagegetclip(). - . Added imageopenpolygon(). - . Added imageresolution(). - . Added imagecreatefrombmp() and imagebmp(). - -- Mbstring: - . Added mb_chr() and mb_ord(). - . Added mb_scurb() that scrub broken multibyte strings. - -- OCI8: - . Added oci_register_taf_callback() and oci_disable_taf_callback() for - Oracle Database TAF callback support. - -- Sockets: - . Added socket_addrinfo_lookup(), socket_addrinfo_connect(), - socket_addrinfo_bind() and socket_addrinfo_explain(). - ======================================== 7. New Classes and Interfaces ======================================== @@ -259,94 +47,28 @@ See also: https://wiki.php.net/rfc/deprecations_php_7_2 8. Removed Extensions and SAPIs ======================================== -- Mcrypt: - . The deprecated mcrypt extension has been moved to PECL. - . libmcrypt has not been maintained since 2007 and the continued use of this - extension is strongly discouraged. - . Users are advised to use alternatives such as OpenSSL or libsodium. - ======================================== 9. Other Changes to Extensions ======================================== -- EXIF: - . Added extended exif tag support for the following formats: - Samsung, DJI, Panasonic, Sony, Pentax, Minolta, Sigma/Foveon, - AGFA, Kyocera, Ricoh & Epson. - . exif_read_data() and exif_thumbnail() now supports a passed streams as their - first parameter. - -- GD: - . Removed --enable-gd-native-ttf configuration option which was unused as - of PHP 5.5.0 anyway. - . imagegd() stores truecolor images as real truecolor images. Formerly, they - have been converted to palette. - . imageantialias() is now also available if compiled with a system libgd. - -- Mbstring - . mb_check_encoding() accepts array parameter. Both key and value - encodings are checked recursively. - . mb_convert_encoding() accepts array parameter. Only value encodings - are converted recursively. - -- PDO_OCI: - . The '--with-pdo-oci' configure syntax no longer needs the vesion number of the - Oracle Instant Client. - -- pdo_sqlite - . Use sqlite3_prepare_v2() and sqlite3_close_v2() functions instead of their - legacy counterparts. + ODBC: + . Support for Birdstep has been removed. ======================================== 10. New Global Constants ======================================== -- Core: - . PHP_FLOAT_DIG number of decimal digits, that can be rounded into a - float and back without precision loss - . PHP_FLOAT_EPSILON smallest representable positive number x, so then - x + 1.0 != 1.0 - . PHP_FLOAT_MIN min representable float number - . PHP_FLOAT_MAX max representable float number - . PHP_OS_FAMILY current operating system family - -- Fileinfo: - . FILEINFO_EXTENSION include list of possible file extensions - -- GD: - . IMG_EFFECT_MULTIPLY - . IMG_BMP - -- PCRE - . PREG_UNMATCHED_AS_NULL - -- Standard: - . PASSWORD_ARGON2_DEFAULT_MEMORY_COST - . PASSWORD_ARGON2_DEFAULT_TIME_COST - . PASSWORD_ARGON2_DEFAULT_THREADS - . PASSWORD_ARGON2I - ======================================== 11. Changes to INI File Handling ======================================== -- sql.safe_mode +- birdstep.max_links . This INI directive have been removed. -- realpath_cache_size - . Set to 4096k by default - ======================================== 12. Windows Support ======================================== -- Support for VT100 console mode - - On systems starting with 10.0.10586, cmd.exe supports ANSI escape sequences. - The corresponding console mode is enabled by default on CLI on suitable - systems. As well, the function sapi_windows_vt100_support() is provided, - to control and query the corresponding information in the scripts. - ======================================== 13. Other Changes ======================================== diff --git a/ext/odbc/birdstep.c b/ext/odbc/birdstep.c deleted file mode 100644 index 18aa62b22f..0000000000 --- a/ext/odbc/birdstep.c +++ /dev/null @@ -1,709 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) 1997-2017 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: | - | http://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. | - +----------------------------------------------------------------------+ - | Authors: Nikolay P. Romanyuk <mag@redcom.ru> | - +----------------------------------------------------------------------+ - */ - -/* $Id$ */ - -/* - * TODO: - * birdstep_fetch_into(), - * Check all on real life apps. - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include "php.h" - -#if WIN32 -# include "config.w32.h" -# ifdef PHP_EXPORTS -# define PHPAPI __declspec(dllexport) -# else -# define PHPAPI __declspec(dllimport) -# endif -#else -# include <php_config.h> -# define PHPAPI -# define THREAD_LS -#endif - -#ifdef HAVE_BIRDSTEP -#include "php_birdstep.h" -#include "ext/standard/info.h" -#include "php_ini.h" - -/* {{{ arginfo */ -ZEND_BEGIN_ARG_INFO_EX(arginfo_birdstep_connect, 0, 0, 3) - ZEND_ARG_INFO(0, server) - ZEND_ARG_INFO(0, user) - ZEND_ARG_INFO(0, pass) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_birdstep_close, 0, 0, 1) - ZEND_ARG_INFO(0, id) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_birdstep_exec, 0, 0, 2) - ZEND_ARG_INFO(0, index) - ZEND_ARG_INFO(0, exec_str) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_birdstep_fetch, 0, 0, 1) - ZEND_ARG_INFO(0, index) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_birdstep_result, 0, 0, 2) - ZEND_ARG_INFO(0, index) - ZEND_ARG_INFO(0, col) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_birdstep_freeresult, 0, 0, 1) - ZEND_ARG_INFO(0, index) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_birdstep_autocommit, 0, 0, 1) - ZEND_ARG_INFO(0, index) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_birdstep_off_autocommit, 0, 0, 1) - ZEND_ARG_INFO(0, index) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_birdstep_commit, 0, 0, 1) - ZEND_ARG_INFO(0, index) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_birdstep_rollback, 0, 0, 1) - ZEND_ARG_INFO(0, index) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_birdstep_fieldname, 0, 0, 2) - ZEND_ARG_INFO(0, index) - ZEND_ARG_INFO(0, col) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_birdstep_fieldnum, 0, 0, 1) - ZEND_ARG_INFO(0, index) -ZEND_END_ARG_INFO() -/* }}} */ - -const zend_function_entry birdstep_functions[] = { - PHP_FE(birdstep_connect, arginfo_birdstep_connect) - PHP_FE(birdstep_close, arginfo_birdstep_close) - PHP_FE(birdstep_exec, arginfo_birdstep_exec) - PHP_FE(birdstep_fetch, arginfo_birdstep_fetch) - PHP_FE(birdstep_result, arginfo_birdstep_result) - PHP_FE(birdstep_freeresult, arginfo_birdstep_freeresult) - PHP_FE(birdstep_autocommit, arginfo_birdstep_autocommit) - PHP_FE(birdstep_off_autocommit, arginfo_birdstep_off_autocommit) - PHP_FE(birdstep_commit, arginfo_birdstep_commit) - PHP_FE(birdstep_rollback, arginfo_birdstep_rollback) - PHP_FE(birdstep_fieldnum, arginfo_birdstep_fieldnum) - PHP_FE(birdstep_fieldname, arginfo_birdstep_fieldname) -/* - * Temporary Function aliases until the next major upgrade to PHP. - * These should allow users to continue to use their current scripts, - * but should in reality warn the user that this functionality is - * deprecated. - */ - PHP_FALIAS(velocis_connect, birdstep_connect, arginfo_birdstep_connect) - PHP_FALIAS(velocis_close, birdstep_close, arginfo_birdstep_close) - PHP_FALIAS(velocis_exec, birdstep_exec, arginfo_birdstep_exec) - PHP_FALIAS(velocis_fetch, birdstep_fetch, arginfo_birdstep_fetch) - PHP_FALIAS(velocis_result, birdstep_result, arginfo_birdstep_result) - PHP_FALIAS(velocis_freeresult, birdstep_freeresult, arginfo_birdstep_freeresult) - PHP_FALIAS(velocis_autocommit, birdstep_autocommit, arginfo_birdstep_autocommit) - PHP_FALIAS(velocis_off_autocommit, birdstep_off_autocommit, arginfo_birdstep_off_autocommit) - PHP_FALIAS(velocis_commit, birdstep_commit, arginfo_birdstep_commit) - PHP_FALIAS(velocis_rollback, birdstep_rollback, arginfo_birdstep_rollback) - PHP_FALIAS(velocis_fieldnum, birdstep_fieldnum, arginfo_birdstep_fieldnum) - PHP_FALIAS(velocis_fieldname, birdstep_fieldname, arginfo_birdstep_fieldname) -/* End temporary aliases */ - PHP_FE_END -}; - -zend_module_entry birdstep_module_entry = { - STANDARD_MODULE_HEADER, - "birdstep", - birdstep_functions, - PHP_MINIT(birdstep), - PHP_MSHUTDOWN(birdstep), - PHP_RINIT(birdstep), - NULL, - PHP_MINFO(birdstep), - PHP_BIRDSTEP_VERSION, - STANDARD_MODULE_PROPERTIES -}; - -#ifdef COMPILE_DL_ODBC -ZEND_GET_MODULE(birdstep) -#endif - -THREAD_LS birdstep_module php_birdstep_module; -THREAD_LS static HENV henv; - -#define PHP_GET_BIRDSTEP_RES_IDX(id) if (!(res = birdstep_find_result(list, id))) { php_error_docref(NULL, E_WARNING, "Birdstep: Not result index (%ld)", id); RETURN_FALSE; } -#define PHP_BIRDSTEP_CHK_LNK(id) if (!(conn = birdstep_find_conn(list, id))) { php_error_docref(NULL, E_WARNING, "Birdstep: Not connection index (%ld)", id); RETURN_FALSE; } - - -static void _close_birdstep_link(zend_rsrc_list_entry *rsrc) -{ - VConn *conn = (VConn *)rsrc->ptr; - - if ( conn ) { - efree(conn); - } -} - -static void _free_birdstep_result(zend_rsrc_list_entry *rsrc) -{ - Vresult *res = (Vresult *)rsrc->ptr; - - if ( res && res->values ) { - register int i; - for ( i=0; i < res->numcols; i++ ) { - if ( res->values[i].value ) - efree(res->values[i].value); - } - efree(res->values); - } - if ( res ) { - efree(res); - } -} - -PHP_MINIT_FUNCTION(birdstep) -{ - SQLAllocEnv(&henv); - - if ( cfg_get_long("birdstep.max_links",&php_birdstep_module.max_links) == FAILURE ) { - php_birdstep_module.max_links = -1; - } - php_birdstep_module.num_links = 0; - php_birdstep_module.le_link = zend_register_list_destructors_ex(_close_birdstep_link, NULL, "birdstep link", module_number); - php_birdstep_module.le_result = zend_register_list_destructors_ex(_free_birdstep_result, NULL, "birdstep result", module_number); - - return SUCCESS; -} - -PHP_RINIT_FUNCTION(birdstep) -{ - return SUCCESS; -} - - -PHP_MINFO_FUNCTION(birdstep) -{ - php_info_print_table_start(); - php_info_print_table_row(2, "RAIMA Birdstep Support", "enabled" ); - php_info_print_table_end(); -} - -PHP_MSHUTDOWN_FUNCTION(birdstep) -{ - SQLFreeEnv(henv); - return SUCCESS; -} - -/* Some internal functions. Connections and result manupulate */ - -static int birdstep_add_conn(HashTable *list,VConn *conn,HDBC hdbc) -{ - int ind; - - ind = zend_list_insert(conn,php_birdstep_module.le_link); - conn->hdbc = hdbc; - conn->index = ind; - - return(ind); -} - -static VConn * birdstep_find_conn(HashTable *list,int ind) -{ - VConn *conn; - int type; - - conn = zend_list_find(ind,&type); - if ( !conn || type != php_birdstep_module.le_link ) { - return(NULL); - } - return(conn); -} - -static void birdstep_del_conn(HashTable *list,int ind) -{ - zend_list_delete(ind); -} - -static int birdstep_add_result(HashTable *list,Vresult *res,VConn *conn) -{ - int ind; - - ind = zend_list_insert(res,php_birdstep_module.le_result); - res->conn = conn; - res->index = ind; - - return(ind); -} - -static Vresult * birdstep_find_result(HashTable *list,int ind) -{ - Vresult *res; - int type; - - res = zend_list_find(ind,&type); - if ( !res || type != php_birdstep_module.le_result ) { - return(NULL); - } - return(res); -} - -static void birdstep_del_result(HashTable *list,int ind) -{ - zend_list_delete(ind); -} - -/* Users functions */ - -/* {{{ proto int birdstep_connect(string server, string user, string pass) - */ -PHP_FUNCTION(birdstep_connect) -{ - char *serv, *user, *pass; - size_t serv_len, user_len, pass_len; - RETCODE stat; - HDBC hdbc; - VConn *new; - zend_long ind; - - if (zend_parse_parameters(ZEND_NUM_ARGS(), "sss", &serv, &serv_len, &user, &user_len, &pass, &pass_len) == FAILURE) { - return; - } - - if ( php_birdstep_module.max_links != -1 && php_birdstep_module.num_links == php_birdstep_module.max_links ) { - php_error_docref(NULL, E_WARNING, "Birdstep: Too many open connections (%d)",php_birdstep_module.num_links); - RETURN_FALSE; - } - - stat = SQLAllocConnect(henv,&hdbc); - if ( stat != SQL_SUCCESS ) { - php_error_docref(NULL, E_WARNING, "Birdstep: Could not allocate connection handle"); - RETURN_FALSE; - } - stat = SQLConnect(hdbc, serv, SQL_NTS, user, SQL_NTS, pass, SQL_NTS); - if ( stat != SQL_SUCCESS && stat != SQL_SUCCESS_WITH_INFO ) { - php_error_docref(NULL, E_WARNING, "Birdstep: Could not connect to server \"%s\" for %s", serv, user); - SQLFreeConnect(hdbc); - RETURN_FALSE; - } - new = (VConn *)emalloc(sizeof(VConn)); - ind = birdstep_add_conn(list,new,hdbc); - php_birdstep_module.num_links++; - RETURN_LONG(ind); -} -/* }}} */ - -/* {{{ proto bool birdstep_close(int id) - */ -PHP_FUNCTION(birdstep_close) -{ - zend_long id; - VConn *conn; - - if (zend_parse_parameters(ZEND_NUM_ARGS(), "l", &id) == FAILURE) { - return; - } - - PHP_BIRDSTEP_CHK_LNK(id); - - SQLDisconnect(conn->hdbc); - SQLFreeConnect(conn->hdbc); - birdstep_del_conn(list, id); - php_birdstep_module.num_links--; - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto int birdstep_exec(int index, string exec_str) - */ -PHP_FUNCTION(birdstep_exec) -{ - char *query; - zend_long ind; - size_t query_len, indx; - VConn *conn; - Vresult *res; - RETCODE stat; - SWORD cols,i,colnamelen; - SDWORD rows,coldesc; - - if (zend_parse_parameters(ZEND_NUM_ARGS(), "ls", &ind, &query, &query_len) == FAILURE) { - return; - } - - PHP_BIRDSTEP_CHK_LNK(ind); - - res = (Vresult *)emalloc(sizeof(Vresult)); - stat = SQLAllocStmt(conn->hdbc,&res->hstmt); - if ( stat != SQL_SUCCESS && stat != SQL_SUCCESS_WITH_INFO ) { - php_error_docref(NULL, E_WARNING, "Birdstep: SQLAllocStmt return %d",stat); - efree(res); - RETURN_FALSE; - } - stat = SQLExecDirect(res->hstmt,query,SQL_NTS); - if ( stat != SQL_SUCCESS && stat != SQL_SUCCESS_WITH_INFO ) { - php_error_docref(NULL, E_WARNING, "Birdstep: Cannot execute \"%s\" query",query); - SQLFreeStmt(res->hstmt,SQL_DROP); - efree(res); - RETURN_FALSE; - } - /* Success query */ - stat = SQLNumResultCols(res->hstmt,&cols); - if ( stat != SQL_SUCCESS ) { - php_error_docref(NULL, E_WARNING, "Birdstep: SQLNumResultCols return %d",stat); - SQLFreeStmt(res->hstmt,SQL_DROP); - efree(res); - RETURN_FALSE; - } - if ( !cols ) { /* Was INSERT, UPDATE, DELETE, etc. query */ - stat = SQLRowCount(res->hstmt,&rows); - if ( stat != SQL_SUCCESS ) { - php_error_docref(NULL, E_WARNING, "Birdstep: SQLNumResultCols return %d",stat); - SQLFreeStmt(res->hstmt,SQL_DROP); - efree(res); - RETURN_FALSE; - } - SQLFreeStmt(res->hstmt,SQL_DROP); - efree(res); - RETURN_LONG(rows); - } else { /* Was SELECT query */ - res->values = (VResVal *)safe_emalloc(sizeof(VResVal), cols, 0); - res->numcols = cols; - for ( i = 0; i < cols; i++ ) { - SQLColAttributes(res->hstmt,i+1,SQL_COLUMN_NAME, - res->values[i].name,sizeof(res->values[i].name), - &colnamelen,NULL); - SQLColAttributes(res->hstmt,i+1,SQL_COLUMN_TYPE, - NULL,0,NULL,&res->values[i].valtype); - switch ( res->values[i].valtype ) { - case SQL_LONGVARBINARY: - case SQL_LONGVARCHAR: - res->values[i].value = NULL; - continue; - default: - break; - } - SQLColAttributes(res->hstmt,i+1,SQL_COLUMN_DISPLAY_SIZE, - NULL,0,NULL,&coldesc); - res->values[i].value = (char *)emalloc(coldesc+1); - SQLBindCol(res->hstmt,i+1,SQL_C_CHAR, res->values[i].value,coldesc+1, &res->values[i].vallen); - } - } - res->fetched = 0; - indx = birdstep_add_result(list,res,conn); - RETURN_LONG(indx); -} -/* }}} */ - -/* {{{ proto bool birdstep_fetch(int index) - */ -PHP_FUNCTION(birdstep_fetch) -{ - zend_long ind; - Vresult *res; - RETCODE stat; - UDWORD row; - UWORD RowStat[1]; - - if (zend_parse_parameters(ZEND_NUM_ARGS(), "l", &ind) == FAILURE) { - return; - } - - PHP_GET_BIRDSTEP_RES_IDX(ind); - - stat = SQLExtendedFetch(res->hstmt,SQL_FETCH_NEXT,1,&row,RowStat); - if ( stat == SQL_NO_DATA_FOUND ) { - SQLFreeStmt(res->hstmt,SQL_DROP); - birdstep_del_result(list,Z_LVAL_PP(ind)); - RETURN_FALSE; - } - if ( stat != SQL_SUCCESS && stat != SQL_SUCCESS_WITH_INFO ) { - php_error_docref(NULL, E_WARNING, "Birdstep: SQLFetch return error"); - SQLFreeStmt(res->hstmt,SQL_DROP); - birdstep_del_result(list,Z_LVAL_PP(ind)); - RETURN_FALSE; - } - res->fetched = 1; - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto mixed birdstep_result(int index, mixed col) - */ -PHP_FUNCTION(birdstep_result) -{ - zval **col; - zend_long ind; - Vresult *res; - RETCODE stat; - int i,sql_c_type; - UDWORD row; - UWORD RowStat[1]; - SWORD indx = -1; - char *field = NULL; - - if (zend_parse_parameters(ZEND_NUM_ARGS(), "lZ", &ind, &col) == FAILURE) { - return; - } - - PHP_GET_BIRDSTEP_RES_IDX(ind); - - if ( Z_TYPE_PP(col) == IS_STRING ) { - field = Z_STRVAL_PP(col); - } else { - convert_to_long_ex(col); - indx = Z_LVAL_PP(col); - } - if ( field ) { - for ( i = 0; i < res->numcols; i++ ) { - if ( !strcasecmp(res->values[i].name,field)) { - indx = i; - break; - } - } - if ( indx < 0 ) { - php_error_docref(NULL, E_WARNING, "Field %s not found",field); - RETURN_FALSE; - } - } else { - if ( indx < 0 || indx >= res->numcols ) { - php_error_docref(NULL, E_WARNING, "Birdstep: Field index not in range"); - RETURN_FALSE; - } - } - if ( !res->fetched ) { - stat = SQLExtendedFetch(res->hstmt,SQL_FETCH_NEXT,1,&row,RowStat); - if ( stat == SQL_NO_DATA_FOUND ) { - SQLFreeStmt(res->hstmt,SQL_DROP); - birdstep_del_result(list,Z_LVAL_PP(ind)); - RETURN_FALSE; - } - if ( stat != SQL_SUCCESS && stat != SQL_SUCCESS_WITH_INFO ) { - php_error_docref(NULL, E_WARNING, "Birdstep: SQLFetch return error"); - SQLFreeStmt(res->hstmt,SQL_DROP); - birdstep_del_result(list,Z_LVAL_PP(ind)); - RETURN_FALSE; - } - res->fetched = 1; - } - switch ( res->values[indx].valtype ) { - case SQL_LONGVARBINARY: - sql_c_type = SQL_C_BINARY; - goto l1; - case SQL_LONGVARCHAR: - sql_c_type = SQL_C_CHAR; -l1: - if ( !res->values[indx].value ) { - res->values[indx].value = emalloc(4096); - } - stat = SQLGetData(res->hstmt,indx+1,sql_c_type, - res->values[indx].value,4095,&res->values[indx].vallen); - if ( stat == SQL_NO_DATA_FOUND ) { - SQLFreeStmt(res->hstmt,SQL_DROP); - birdstep_del_result(list,Z_LVAL_PP(ind)); - RETURN_FALSE; - } - if ( stat != SQL_SUCCESS && stat != SQL_SUCCESS_WITH_INFO ) { - php_error_docref(NULL, E_WARNING, "Birdstep: SQLGetData return error"); - SQLFreeStmt(res->hstmt,SQL_DROP); - birdstep_del_result(list,Z_LVAL_PP(ind)); - RETURN_FALSE; - } - if ( res->values[indx].valtype == SQL_LONGVARCHAR ) { - RETURN_STRING(res->values[indx].value,TRUE); - } else { - RETURN_LONG((zend_long)res->values[indx].value); - } - default: - if ( res->values[indx].value != NULL ) { - RETURN_STRING(res->values[indx].value,TRUE); - } - } -} -/* }}} */ - -/* {{{ proto bool birdstep_freeresult(int index) - */ -PHP_FUNCTION(birdstep_freeresult) -{ - zend_long ind; - Vresult *res; - - if (zend_parse_parameters(ZEND_NUM_ARGS(), "l", &ind) == FAILURE) { - return; - } - - PHP_GET_BIRDSTEP_RES_IDX(ind); - - SQLFreeStmt(res->hstmt,SQL_DROP); - birdstep_del_result(list, ind); - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool birdstep_autocommit(int index) - */ -PHP_FUNCTION(birdstep_autocommit) -{ - zend_long id; - RETCODE stat; - VConn *conn; - - if (zend_parse_parameters(ZEND_NUM_ARGS(), "l", &id) == FAILURE) { - return; - } - - PHP_BIRDSTEP_CHK_LNK(id); - - stat = SQLSetConnectOption(conn->hdbc,SQL_AUTOCOMMIT,SQL_AUTOCOMMIT_ON); - if ( stat != SQL_SUCCESS && stat != SQL_SUCCESS_WITH_INFO ) { - php_error_docref(NULL, E_WARNING, "Birdstep: Set autocommit_on option failure"); - RETURN_FALSE; - } - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool birdstep_off_autocommit(int index) - */ -PHP_FUNCTION(birdstep_off_autocommit) -{ - zend_long id; - RETCODE stat; - VConn *conn; - - if (zend_parse_parameters(ZEND_NUM_ARGS(), "l", &id) == FAILURE) { - return; - } - - PHP_BIRDSTEP_CHK_LNK(id); - - stat = SQLSetConnectOption(conn->hdbc,SQL_AUTOCOMMIT,SQL_AUTOCOMMIT_OFF); - if ( stat != SQL_SUCCESS && stat != SQL_SUCCESS_WITH_INFO ) { - php_error_docref(NULL, E_WARNING, "Birdstep: Set autocommit_off option failure"); - RETURN_FALSE; - } - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool birdstep_commit(int index) - */ -PHP_FUNCTION(birdstep_commit) -{ - zend_long id; - RETCODE stat; - VConn *conn; - - if (zend_parse_parameters(ZEND_NUM_ARGS(), "l", &id) == FAILURE) { - return; - } - - PHP_BIRDSTEP_CHK_LNK(id) - - stat = SQLTransact(NULL,conn->hdbc,SQL_COMMIT); - if ( stat != SQL_SUCCESS ) { - php_error_docref(NULL, E_WARNING, "Birdstep: Commit failure"); - RETURN_FALSE; - } - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool birdstep_rollback(int index) - */ -PHP_FUNCTION(birdstep_rollback) -{ - zend_long id; - RETCODE stat; - VConn *conn; - - if (zend_parse_parameters(ZEND_NUM_ARGS(), "l", &id) == FAILURE) { - return; - } - - PHP_BIRDSTEP_CHK_LNK(id); - - stat = SQLTransact(NULL,conn->hdbc,SQL_ROLLBACK); - if ( stat != SQL_SUCCESS ) { - php_error_docref(NULL, E_WARNING, "Birdstep: Rollback failure"); - RETURN_FALSE; - } - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto string birdstep_fieldname(int index, int col) - */ -PHP_FUNCTION(birdstep_fieldname) -{ - zend_long ind, col; - Vresult *res; - SWORD indx; - - if (zend_parse_parameters(ZEND_NUM_ARGS(), "ll", &ind, &col) == FAILURE) { - return; - } - - PHP_GET_BIRDSTEP_RES_IDX(ind); - - indx = col; - if ( indx < 0 || indx >= res->numcols ) { - php_error_docref(NULL, E_WARNING, "Birdstep: Field index not in range"); - RETURN_FALSE; - } - RETURN_STRING(res->values[indx].name,TRUE); -} -/* }}} */ - -/* {{{ proto int birdstep_fieldnum(int index) - */ -PHP_FUNCTION(birdstep_fieldnum) -{ - zend_long ind; - Vresult *res; - - if (zend_parse_parameters(ZEND_NUM_ARGS(), "l", &ind) == FAILURE) { - return; - } - - PHP_GET_BIRDSTEP_RES_IDX(ind); - - RETURN_LONG(res->numcols); -} -/* }}} */ - -#endif /* HAVE_BIRDSTEP */ - -/* - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * End: - */ diff --git a/ext/odbc/config.m4 b/ext/odbc/config.m4 index ecee15fd1c..59771ce55b 100644 --- a/ext/odbc/config.m4 +++ b/ext/odbc/config.m4 @@ -309,55 +309,6 @@ PHP_ARG_WITH(empress-bcs,, fi if test -z "$ODBC_TYPE"; then -PHP_ARG_WITH(birdstep,, -[ --with-birdstep[=DIR] Include Birdstep support [/usr/local/birdstep]]) - - AC_MSG_CHECKING(for Birdstep support) - if test "$PHP_BIRDSTEP" != "no"; then - if test "$PHP_BIRDSTEP" = "yes"; then - ODBC_INCDIR=/usr/local/birdstep/include - ODBC_LIBDIR=/usr/local/birdstep/lib - else - ODBC_INCDIR=$PHP_BIRDSTEP/include - ODBC_LIBDIR=$PHP_BIRDSTEP/$PHP_LIBDIR - fi - - case $host_alias in - *aix*[)] - AC_DEFINE(AIX,1,[ ]);; - *hpux*[)] - AC_DEFINE(HPUX,1,[ ]);; - *linux*[)] - AC_DEFINE(LINUX,1,[ ]);; - *qnx*[)] - AC_DEFINE(NEUTRINO,1,[ ]);; - i?86-*-solaris*[)] - AC_DEFINE(ISOLARIS,1,[ ]);; - sparc-*-solaris*[)] - AC_DEFINE(SOLARIS,1,[ ]);; - *unixware*[)] - AC_DEFINE(UNIXWARE,1,[ ]);; - esac - - ODBC_INCLUDE=-I$ODBC_INCDIR - ODBC_TYPE=birdstep - ODBC_LFLAGS=-L$ODBC_LIBDIR - ODBC_LIBS="-lCadm -lCdict -lCenc -lCrdm -lCrpc -lCrdbc -lCrm -lCuapi -lutil" - - if test -f "$ODBC_LIBDIR/libCrdbc32.$SHLIB_SUFFIX_NAME"; then - ODBC_LIBS="-lCrdbc32 -lCadm32 -lCncp32 -lCrm32 -lCsql32 -lCdict32 -lCrdm32 -lCrpc32 -lutil" - elif test -f "$ODBC_LIBDIR/libCrdbc.$SHLIB_SUFFIX_NAME"; then - ODBC_LIBS="-lCrdbc -lCadm -lCncp -lCrm -lCsql -lCdict -lCrdm -lCrpc -lutil" - fi - - AC_DEFINE(HAVE_BIRDSTEP,1,[ ]) - AC_MSG_RESULT([$ext_output]) - else - AC_MSG_RESULT(no) - fi -fi - -if test -z "$ODBC_TYPE"; then PHP_ARG_WITH(custom-odbc,, [ --with-custom-odbc[=DIR] Include user defined ODBC support. DIR is ODBC install base directory [/usr/local]. Make sure to define CUSTOM_ODBC_LIBS and @@ -536,7 +487,7 @@ dnl if test -n "$ODBC_TYPE"; then if test "$ODBC_TYPE" != "dbmaker"; then PHP_EVAL_LIBLINE([$ODBC_LFLAGS $ODBC_LIBS], ODBC_SHARED_LIBADD) - if test "$ODBC_TYPE" != "birdstep" && test "$ODBC_TYPE" != "solid"; then + if test "$ODBC_TYPE" != "solid"; then AC_DEFINE(HAVE_SQLDATASOURCES,1,[ ]) fi fi diff --git a/ext/odbc/php_birdstep.h b/ext/odbc/php_birdstep.h deleted file mode 100644 index 43787ca478..0000000000 --- a/ext/odbc/php_birdstep.h +++ /dev/null @@ -1,95 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) 1997-2017 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: | - | http://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. | - +----------------------------------------------------------------------+ - | Authors: Nikolay P. Romanyuk <mag@redcom.ru> | - +----------------------------------------------------------------------+ -*/ - -/* $Id$ */ - -#ifndef PHP_BIRDSTEP_H -#define PHP_BIRDSTEP_H - -#if defined(HAVE_BIRDSTEP) && !HAVE_UODBC -#define UNIX -#include <sql.h> -#include <sqlext.h> - -#include "php_version.h" -#define PHP_BIRDSTEP_VERSION PHP_VERSION - -typedef struct VConn { - HDBC hdbc; - zend_long index; -} VConn; - -typedef struct { - char name[32]; - char *value; - zend_long vallen; - SDWORD valtype; -} VResVal; - -typedef struct Vresult { - HSTMT hstmt; - VConn *conn; - zend_long index; - VResVal *values; - zend_long numcols; - int fetched; -} Vresult; - -typedef struct { - zend_long num_links; - zend_long max_links; - int le_link,le_result; -} birdstep_module; - -extern zend_module_entry birdstep_module_entry; -#define birdstep_module_ptr &birdstep_module_entry - -/* birdstep.c functions */ -PHP_MINIT_FUNCTION(birdstep); -PHP_RINIT_FUNCTION(birdstep); -PHP_MINFO_FUNCTION(birdstep); -PHP_MSHUTDOWN_FUNCTION(birdstep); - -PHP_FUNCTION(birdstep_connect); -PHP_FUNCTION(birdstep_close); -PHP_FUNCTION(birdstep_exec); -PHP_FUNCTION(birdstep_fetch); -PHP_FUNCTION(birdstep_result); -PHP_FUNCTION(birdstep_freeresult); -PHP_FUNCTION(birdstep_autocommit); -PHP_FUNCTION(birdstep_off_autocommit); -PHP_FUNCTION(birdstep_commit); -PHP_FUNCTION(birdstep_rollback); -PHP_FUNCTION(birdstep_fieldnum); -PHP_FUNCTION(birdstep_fieldname); - -extern birdstep_module php_birdstep_module; - -#else - -#define birdstep_module_ptr NULL - -#endif /* HAVE_BIRDSTEP */ -#endif /* PHP_BIRDSTEP_H */ - -/* - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * End: - */ diff --git a/ext/odbc/php_odbc.c b/ext/odbc/php_odbc.c index bfaa0b89ac..c0caefd19d 100644 --- a/ext/odbc/php_odbc.c +++ b/ext/odbc/php_odbc.c @@ -15,7 +15,7 @@ | Authors: Stig Sæther Bakken <ssb@php.net> | | Andreas Karajannis <Andreas.Karajannis@gmd.de> | | Frank M. Kromann <frank@kromann.info> Support for DB/2 CLI | - | Kevin N. Shallow <kshallow@tampabay.rr.com> Birdstep Support| + | Kevin N. Shallow <kshallow@tampabay.rr.com> | | Daniel R. Kalowsky <kalowsky@php.net> | +----------------------------------------------------------------------+ */ @@ -258,7 +258,6 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_primarykeys, 0, 0, 4) ZEND_END_ARG_INFO() #if !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) && !defined(HAVE_SOLID_35) -#if !defined(HAVE_BIRDSTEP) ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_procedurecolumns, 0, 0, 1) ZEND_ARG_INFO(0, connection_id) ZEND_ARG_INFO(0, qualifier) @@ -266,7 +265,6 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_procedurecolumns, 0, 0, 1) ZEND_ARG_INFO(0, proc) ZEND_ARG_INFO(0, column) ZEND_END_ARG_INFO() -#endif ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_procedures, 0, 0, 1) ZEND_ARG_INFO(0, connection_id) @@ -305,7 +303,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_statistics, 0, 0, 6) ZEND_ARG_INFO(0, accuracy) ZEND_END_ARG_INFO() -#if !defined(HAVE_DBMAKER) && !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) &&!defined(HAVE_SOLID_35) && !defined(HAVE_BIRDSTEP) +#if !defined(HAVE_DBMAKER) && !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) &&!defined(HAVE_SOLID_35) ZEND_BEGIN_ARG_INFO_EX(arginfo_odbc_tableprivileges, 0, 0, 4) ZEND_ARG_INFO(0, connection_id) ZEND_ARG_INFO(0, qualifier) @@ -370,17 +368,15 @@ const zend_function_entry odbc_functions[] = { PHP_FE(odbc_statistics, arginfo_odbc_statistics) PHP_FE(odbc_tables, arginfo_odbc_tables) PHP_FE(odbc_primarykeys, arginfo_odbc_primarykeys) -#if !defined(HAVE_DBMAKER) && !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) &&!defined(HAVE_SOLID_35) && !defined(HAVE_BIRDSTEP) /* not supported now */ +#if !defined(HAVE_DBMAKER) && !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) &&!defined(HAVE_SOLID_35) /* not supported now */ PHP_FE(odbc_columnprivileges, arginfo_odbc_columnprivileges) PHP_FE(odbc_tableprivileges, arginfo_odbc_tableprivileges) #endif #if !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) && !defined(HAVE_SOLID_35) /* not supported */ PHP_FE(odbc_foreignkeys, arginfo_odbc_foreignkeys) PHP_FE(odbc_procedures, arginfo_odbc_procedures) -#if !defined(HAVE_BIRDSTEP) PHP_FE(odbc_procedurecolumns, arginfo_odbc_procedurecolumns) #endif -#endif PHP_FALIAS(odbc_do, odbc_exec, arginfo_odbc_exec) PHP_FALIAS(odbc_field_precision, odbc_field_len, arginfo_odbc_field_len) PHP_FE_END @@ -3289,7 +3285,7 @@ PHP_FUNCTION(odbc_columns) } /* }}} */ -#if !defined(HAVE_DBMAKER) && !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) && !defined(HAVE_SOLID_35) && !defined(HAVE_BIRDSTEP) +#if !defined(HAVE_DBMAKER) && !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) && !defined(HAVE_SOLID_35) /* {{{ proto resource odbc_columnprivileges(resource connection_id, string catalog, string schema, string table, string column) 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) @@ -3558,7 +3554,7 @@ PHP_FUNCTION(odbc_primarykeys) } /* }}} */ -#if !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) && !defined(HAVE_SOLID_35) && !defined(HAVE_BIRDSTEP) +#if !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) && !defined(HAVE_SOLID_35) /* {{{ proto resource odbc_procedurecolumns(resource connection_id [, string qualifier, string owner, string proc, string column]) 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) @@ -3838,7 +3834,7 @@ PHP_FUNCTION(odbc_statistics) } /* }}} */ -#if !defined(HAVE_DBMAKER) && !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) && !defined(HAVE_SOLID_35) && !defined(HAVE_BIRDSTEP) +#if !defined(HAVE_DBMAKER) && !defined(HAVE_SOLID) && !defined(HAVE_SOLID_30) && !defined(HAVE_SOLID_35) /* {{{ proto resource odbc_tableprivileges(resource connection_id, string qualifier, string owner, string name) Returns a result identifier containing a list of tables and the privileges associated with each table */ PHP_FUNCTION(odbc_tableprivileges) diff --git a/ext/odbc/php_odbc.h b/ext/odbc/php_odbc.h index b55f43b3ce..ee5f6da295 100644 --- a/ext/odbc/php_odbc.h +++ b/ext/odbc/php_odbc.h @@ -14,7 +14,7 @@ +----------------------------------------------------------------------+ | Authors: Stig Sæther Bakken <ssb@php.net> | | Andreas Karajannis <Andreas.Karajannis@gmd.de> | - | Kevin N. Shallow <kshallow@tampabay.rr.com> (Birdstep) | + | Kevin N. Shallow <kshallow@tampabay.rr.com> | +----------------------------------------------------------------------+ */ @@ -35,7 +35,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_BIRDSTEP) || defined(HAVE_IODBC) +#if defined(HAVE_DBMAKER) || 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 43d3360966..1495afbb71 100644 --- a/ext/odbc/php_odbc_includes.h +++ b/ext/odbc/php_odbc_includes.h @@ -14,7 +14,7 @@ +----------------------------------------------------------------------+ | Authors: Stig Sæther Bakken <ssb@php.net> | | Andreas Karajannis <Andreas.Karajannis@gmd.de> | - | Kevin N. Shallow <kshallow@tampabay.rr.com> (Birdstep) | + | Kevin N. Shallow <kshallow@tampabay.rr.com> | +----------------------------------------------------------------------+ */ @@ -150,23 +150,6 @@ PHP_FUNCTION(solid_fetch_prev); #define SQLUSMALLINT UWORD #endif -#elif defined(HAVE_BIRDSTEP) /* Raima Birdstep */ - -#define ODBC_TYPE "Birdstep" -#define UNIX -/* - * Extended Fetch in the Birdstep ODBC API is incapable of returning zend_long varchar (memo) fields. - * So the following line has been commented-out to accommodate. - KNS - * - * #define HAVE_SQL_EXTENDED_FETCH 1 - */ -#include <sql.h> -#include <sqlext.h> -#define SQLINTEGER SDWORD -#define SQLSMALLINT SWORD -#define SQLUSMALLINT UWORD - - #elif defined(HAVE_DBMAKER) /* DBMaker */ #define ODBC_TYPE "DBMaker" diff --git a/main/build-defs.h.in b/main/build-defs.h.in index fb9bc7f881..c577ea8423 100644 --- a/main/build-defs.h.in +++ b/main/build-defs.h.in @@ -73,8 +73,6 @@ #define PHP_LDAP_LFLAGS "" #define PHP_LDAP_INCLUDE "" #define PHP_LDAP_LIBS "" -#define PHP_BIRDSTEP_INCLUDE "" -#define PHP_BIRDSTEP_LIBS "" #define PEAR_INSTALLDIR "@EXPANDED_PEAR_INSTALLDIR@" #define PHP_INCLUDE_PATH "@INCLUDE_PATH@" #define PHP_EXTENSION_DIR "@EXPANDED_EXTENSION_DIR@" diff --git a/php.ini-development b/php.ini-development index 8ba304b8c0..4dddd9ff80 100644 --- a/php.ini-development +++ b/php.ini-development @@ -1091,8 +1091,6 @@ odbc.defaultlrl = 4096 ; http://php.net/odbc.defaultbinmode odbc.defaultbinmode = 1 -;birdstep.max_links = -1 - [Interbase] ; Allow or prevent persistent links. ibase.allow_persistent = 1 diff --git a/php.ini-production b/php.ini-production index fb08287fa6..2b546ddb08 100644 --- a/php.ini-production +++ b/php.ini-production @@ -1098,8 +1098,6 @@ odbc.defaultlrl = 4096 ; http://php.net/odbc.defaultbinmode odbc.defaultbinmode = 1 -;birdstep.max_links = -1 - [Interbase] ; Allow or prevent persistent links. ibase.allow_persistent = 1 |