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

Reply via email to