mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
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:
parent
da643f3fea
commit
c65a20df4a
2 changed files with 13 additions and 10 deletions
|
@ -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
|
||||||
|
|
|
@ -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);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue