]> granicus.if.org Git - php/commitdiff
Removed Bird(broken)step support from ODBC
authorKalle Sommer Nielsen <kalle@php.net>
Wed, 19 Jul 2017 08:19:32 +0000 (10:19 +0200)
committerKalle Sommer Nielsen <kalle@php.net>
Wed, 19 Jul 2017 08:19:32 +0000 (10:19 +0200)
NEWS
UPGRADING
ext/odbc/birdstep.c [deleted file]
ext/odbc/config.m4
ext/odbc/php_birdstep.h [deleted file]
ext/odbc/php_odbc.c
ext/odbc/php_odbc.h
ext/odbc/php_odbc_includes.h
main/build-defs.h.in
php.ini-development
php.ini-production

diff --git a/NEWS b/NEWS
index 0930189916813caceea45e93662139c052e5ca60..75cb9dbdf69f2afd11143b841a26f88203dccbcf 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -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! >>>
index 6e6dd5592a648144cb27799b0fd0cb2f857b3f86..8711371bcfff72f134b5d5b93defd695d29a28af 100644 (file)
--- a/UPGRADING
+++ b/UPGRADING
@@ -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 (file)
index 18aa62b..0000000
+++ /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:
- */
index ecee15fd1cdee9dadc323c1e20494e25a6bb8c19..59771ce55b6015061c6fa6f03562b4254a409f2b 100644 (file)
@@ -308,55 +308,6 @@ PHP_ARG_WITH(empress-bcs,,
   fi
 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
@@ -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 (file)
index 43787ca..0000000
+++ /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:
- */
index bfaa0b89ac49baf7813bd2e2cfa9c0b16aa11916..c0caefd19d4ce554d295a10039196bbd97cf3c1f 100644 (file)
@@ -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,16 +368,14 @@ 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)
@@ -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)
index b55f43b3ce795187093d55b8fb1b1bafaa9d17dd..ee5f6da29590f32b0a080ffa1f7f0d376eb9a8aa 100644 (file)
@@ -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
 
index 43d3360966d1768126cb0569e4ec76a5e7f2685d..1495afbb7161812eaa4a6add25bdc91fc516d672 100644 (file)
@@ -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"
index fb9bc7f8818d84b37a5e9179733a93427ca4e97f..c577ea84233c2f579281348499c90f619a0b568d 100644 (file)
@@ -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@"
index 8ba304b8c0228ffce364627a0047240f73b01608..4dddd9ff80de118baee686297c194d2405d0c661 100644 (file)
@@ -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
index fb08287fa6e11ed32b49f23a2a102538a1dfe6da..2b546ddb08f4384e5fb1bd0475c6c3a308459238 100644 (file)
@@ -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