Markus Fischer wrote: > In such cases the manual has to be changed, not the code.
No problem. I'll revert and update manual page. Most PostgreSQL users should enable multibyte support, IMO :) -- Yasuo Ohgaki > > - Markus > > On Thu, Apr 25, 2002 at 03:28:41PM +0900, Yasuo Ohgaki wrote : > >>Markus Fischer wrote: >> >>> 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. >> >>This is the problem. >> >>PQclientEncoding/PQsetClientEncoding introduced from 7.0, >>but I've got report that PHP will complain encoding functions are >>not defined unless --enable-multibyte is used to build PostgreSQL. >> >>Therefore, I have to change manual or code. >> >>Since PQclientEncoding/PQsetClientEncording returns static >>values w/o multibyte support, I've made pg_client_encoding/ >>pg_set_client_encoding always available for better script >>portability. >> >>With this change, documents became correct and we have >>better portability. I thought the issue previously discussed >>is whether we should raise error for not supported functions >>or not. >> >>Any comments? >>I don't mind at all if I'm better to change the manual instead >>of code. >> >>-- >>Yasuo Ohgaki >> >> >>> - 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 [EMAIL PROTECTED] >>>> >>>># 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 >>> >>> >> > -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, visit: http://www.php.net/unsub.php