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.
This commit is contained in:
Yasuo Ohgaki 2002-04-25 01:42:23 +00:00
parent da643f3fea
commit c65a20df4a
2 changed files with 13 additions and 10 deletions

View file

@ -137,10 +137,8 @@ function_entry pgsql_functions[] = {
PHP_FE(pg_escape_string,NULL) PHP_FE(pg_escape_string,NULL)
PHP_FE(pg_escape_bytea, NULL) PHP_FE(pg_escape_bytea, NULL)
#endif #endif
#if HAVE_PQCLIENTENCODING
PHP_FE(pg_client_encoding, NULL) PHP_FE(pg_client_encoding, NULL)
PHP_FE(pg_set_client_encoding, NULL) PHP_FE(pg_set_client_encoding, NULL)
#endif
/* misc function */ /* misc function */
PHP_FE(pg_metadata, NULL) PHP_FE(pg_metadata, NULL)
PHP_FE(pg_convert, NULL) PHP_FE(pg_convert, NULL)
@ -172,10 +170,8 @@ function_entry pgsql_functions[] = {
PHP_FALIAS(pg_lowrite, pg_lo_write, NULL) PHP_FALIAS(pg_lowrite, pg_lo_write, NULL)
PHP_FALIAS(pg_loimport, pg_lo_import, NULL) PHP_FALIAS(pg_loimport, pg_lo_import, NULL)
PHP_FALIAS(pg_loexport, pg_lo_export, NULL) PHP_FALIAS(pg_loexport, pg_lo_export, NULL)
#if HAVE_PQCLIENTENCODING
PHP_FALIAS(pg_clientencoding, pg_client_encoding, NULL) PHP_FALIAS(pg_clientencoding, pg_client_encoding, NULL)
PHP_FALIAS(pg_setclientencoding, pg_set_client_encoding, NULL) PHP_FALIAS(pg_setclientencoding, pg_set_client_encoding, NULL)
#endif
{NULL, NULL, NULL} {NULL, NULL, NULL}
}; };
/* }}} */ /* }}} */
@ -2133,7 +2129,6 @@ PHP_FUNCTION(pg_lo_tell)
} }
/* }}} */ /* }}} */
#ifdef HAVE_PQCLIENTENCODING
/* {{{ proto int pg_set_client_encoding([resource connection,] string encoding) /* {{{ proto int pg_set_client_encoding([resource connection,] string encoding)
Set client encoding */ Set client encoding */
PHP_FUNCTION(pg_set_client_encoding) PHP_FUNCTION(pg_set_client_encoding)
@ -2160,12 +2155,17 @@ PHP_FUNCTION(pg_set_client_encoding)
break; break;
} }
#ifdef HAVE_PQCLIENTENCODING
ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink); ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
convert_to_string_ex(encoding); convert_to_string_ex(encoding);
Z_LVAL_P(return_value) = PQsetClientEncoding(pgsql, Z_STRVAL_PP(encoding)); Z_LVAL_P(return_value) = PQsetClientEncoding(pgsql, Z_STRVAL_PP(encoding));
Z_TYPE_P(return_value) = IS_LONG; 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 @@ PHP_FUNCTION(pg_client_encoding)
break; break;
} }
#ifdef HAVE_PQCLIENTENCODING
ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink); ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
/* Just do the same as found in PostgreSQL sources... */ /* Just do the same as found in PostgreSQL sources... */
@ -2205,9 +2206,13 @@ PHP_FUNCTION(pg_client_encoding)
Z_STRLEN_P(return_value) = strlen(Z_STRVAL_P(return_value)); Z_STRLEN_P(return_value) = strlen(Z_STRVAL_P(return_value));
Z_STRVAL_P(return_value) = (char *) estrdup(Z_STRVAL_P(return_value)); Z_STRVAL_P(return_value) = (char *) estrdup(Z_STRVAL_P(return_value));
Z_TYPE_P(return_value) = IS_STRING; 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 #define COPYBUFSIZ 8192

View file

@ -114,10 +114,8 @@ PHP_FUNCTION(pg_trace);
PHP_FUNCTION(pg_untrace); PHP_FUNCTION(pg_untrace);
/* utility functions */ /* utility functions */
#if HAVE_PQCLIENTENCODING
PHP_FUNCTION(pg_client_encoding); PHP_FUNCTION(pg_client_encoding);
PHP_FUNCTION(pg_set_client_encoding); PHP_FUNCTION(pg_set_client_encoding);
#endif
#if HAVE_PQESCAPE #if HAVE_PQESCAPE
PHP_FUNCTION(pg_escape_string); PHP_FUNCTION(pg_escape_string);
PHP_FUNCTION(pg_escape_bytea); PHP_FUNCTION(pg_escape_bytea);