Re: cvs: php4 /ext/pgsql pgsql.c php_pgsql.h
| From: | Markus Fischer | Date: | Thu, 25 Apr 2002 05:31:07 +0000 |
| Subject: | Re: cvs: php4 /ext/pgsql pgsql.c php_pgsql.h | ||
| References: | 1 | Groups: | php.cvs |
| Request: | Send a blank email to php-cvs+get-11412@lists.php.net to get a copy of this message | ||
Hi,
I think it reached a common consesus that functions, which
are not supported in a build, should NOT be in the function
table. We're having a similar mess with GD and other
extension. The proper way is to use function_exists() to
check whether it's support or not. What makes those client
encoding functions so special? Even the documentation clearly
states that this function is available since 4.0.3 and
requires PostgresSQL 7.0 or higher.
- Markus
On Thu, Apr 25, 2002 at 01:42:23AM -0000, Yasuo Ohgaki wrote :
> yohgaki Wed Apr 24 21:42:23 2002 EDT
>
> Modified files:
> /php4/ext/pgsql pgsql.c php_pgsql.h
> Log:
> pg_client_encoding/pg_set_client_encoding should be compiled always.
> Recent libpq has PQclientEncoding/PQsetClientEncoding regarless of
> multibyte support enabled or not.
>
> Reported by c@cornelia-boenigk.de
>
> # This should be merged, but need a little more testing.
>
>
> Index: php4/ext/pgsql/pgsql.c
> diff -u php4/ext/pgsql/pgsql.c:1.196 php4/ext/pgsql/pgsql.c:1.197
> --- php4/ext/pgsql/pgsql.c:1.196 Wed Apr 24 19:03:48 2002
> +++ php4/ext/pgsql/pgsql.c Wed Apr 24 21:42:21 2002
> @@ -19,7 +19,7 @@
> +----------------------------------------------------------------------+
> */
>
> -/* $Id: pgsql.c,v 1.196 2002/04/24 23:03:48 yohgaki Exp $ */
> +/* $Id: pgsql.c,v 1.197 2002/04/25 01:42:21 yohgaki Exp $ */
>
> #include <stdlib.h>
>
> @@ -137,10 +137,8 @@
> PHP_FE(pg_escape_string,NULL)
> PHP_FE(pg_escape_bytea, NULL)
> #endif
> -#if HAVE_PQCLIENTENCODING
> PHP_FE(pg_client_encoding, NULL)
> PHP_FE(pg_set_client_encoding, NULL)
> -#endif
> /* misc function */
> PHP_FE(pg_metadata, NULL)
> PHP_FE(pg_convert, NULL)
> @@ -172,10 +170,8 @@
> PHP_FALIAS(pg_lowrite, pg_lo_write, NULL)
> PHP_FALIAS(pg_loimport, pg_lo_import, NULL)
> PHP_FALIAS(pg_loexport, pg_lo_export, NULL)
> -#if HAVE_PQCLIENTENCODING
> PHP_FALIAS(pg_clientencoding, pg_client_encoding, NULL)
> PHP_FALIAS(pg_setclientencoding, pg_set_client_encoding, NULL)
> -#endif
> {NULL, NULL, NULL}
> };
> /* }}} */
> @@ -2133,7 +2129,6 @@
> }
> /* }}} */
>
> -#ifdef HAVE_PQCLIENTENCODING
> /* {{{ proto int pg_set_client_encoding([resource connection,] string encoding)
> Set client encoding */
> PHP_FUNCTION(pg_set_client_encoding)
> @@ -2159,13 +2154,18 @@
> WRONG_PARAM_COUNT;
> break;
> }
> -
> +
> +#ifdef HAVE_PQCLIENTENCODING
> ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link,
> le_plink);
>
> convert_to_string_ex(encoding);
> Z_LVAL_P(return_value) = PQsetClientEncoding(pgsql, Z_STRVAL_PP(encoding));
> Z_TYPE_P(return_value) = IS_LONG;
> -
> +#else
> + php_error(E_NOTICE, "%s() PHP is compiled with libpq without multibyte
> PQsetClientEncoding"
> + get_active_function_name(TSRMLS_C));
> + RETURN_LONG(-1);
> +#endif
> }
> /* }}} */
>
> @@ -2192,6 +2192,7 @@
> break;
> }
>
> +#ifdef HAVE_PQCLIENTENCODING
> ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link,
> le_plink);
>
> /* Just do the same as found in PostgreSQL sources... */
> @@ -2205,9 +2206,13 @@
> Z_STRLEN_P(return_value) = strlen(Z_STRVAL_P(return_value));
> Z_STRVAL_P(return_value) = (char *) estrdup(Z_STRVAL_P(return_value));
> Z_TYPE_P(return_value) = IS_STRING;
> +#else
> + php_error(E_NOTICE, "%s() PHP is compiled with libpq without PQclientEncoding"
> + get_active_function_name(TSRMLS_C));
> + RETURN_STRING("SQL_ASCII",1);
> +#endif
> }
> /* }}} */
> -#endif
>
>
> #define COPYBUFSIZ 8192
> Index: php4/ext/pgsql/php_pgsql.h
> diff -u php4/ext/pgsql/php_pgsql.h:1.44 php4/ext/pgsql/php_pgsql.h:1.45
> --- php4/ext/pgsql/php_pgsql.h:1.44 Mon Apr 22 23:42:26 2002
> +++ php4/ext/pgsql/php_pgsql.h Wed Apr 24 21:42:23 2002
> @@ -17,7 +17,7 @@
> +----------------------------------------------------------------------+
> */
>
> -/* $Id: php_pgsql.h,v 1.44 2002/04/23 03:42:26 yohgaki Exp $ */
> +/* $Id: php_pgsql.h,v 1.45 2002/04/25 01:42:23 yohgaki Exp $ */
>
> #ifndef PHP_PGSQL_H
> #define PHP_PGSQL_H
> @@ -114,10 +114,8 @@
> PHP_FUNCTION(pg_untrace);
>
> /* utility functions */
> -#if HAVE_PQCLIENTENCODING
> PHP_FUNCTION(pg_client_encoding);
> PHP_FUNCTION(pg_set_client_encoding);
> -#endif
> #if HAVE_PQESCAPE
> PHP_FUNCTION(pg_escape_string);
> PHP_FUNCTION(pg_escape_bytea);
>
>
>
> --
> PHP CVS Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
--
Please always Cc to me when replying to me on the lists.
GnuPG Key: http://guru.josefine.at/~mfischer/C2272BD0.asc
"Mind if I MFH ?" "What QA did you do on it?" "the usual?" "ah...
none :)"