com php-src: Merge remote-tracking branch 'origin/PHP-5.6' into str_size_and_int64_56_backport: ext/curl/ interface.c ext/pdo_pgsql/pdo_pgsql.c
ext/pdo_pgs ql/pgsql_driver.c ext/pdo_pgsql/pgsql_statement.c ext/pdo_pgsql/php_pdo_pgsql_int.h

From: Date: Wed, 12 Mar 2014 08:02:39 +0000
Subject: com php-src: Merge remote-tracking branch 'origin/PHP-5.6' into str_size_and_int64_56_backport: ext/curl/ interface.c ext/pdo_pgsql/pdo_pgsql.c
ext/pdo_pgs ql/pgsql_driver.c ext/pdo_pgsql/pgsql_statement.c ext/pdo_pgsql/php_pdo_pgsql_int.h
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-76453@lists.php.net to get a copy of this message
Commit: 63d06ce9b025817142470b5910d42f745b7b852c Author: Anatol Belski <ab@php.net> Wed, 12 Mar 2014 09:02:39 +0100 Parents: f224455520bc9343d749fc051e9c09614f861571 1241a63931069cf061bd74c9594c9a960c382fa6 Branches: str_size_and_int64_56_backport Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=63d06ce9b025817142470b5910d42f745b7b852c Log: Merge remote-tracking branch 'origin/PHP-5.6' into str_size_and_int64_56_backport * origin/PHP-5.6: Updated NEWS Added new PDO::PGSQL_ATTR_DISABLE_PREPARES that uses PQexecParams Deprecated PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT Drop PDO support for extremely old libpq versions Fix compile error with theoretically supported versions of libcurl < 7.12.3. Conflicts: ext/pdo_pgsql/pdo_pgsql.c ext/pdo_pgsql/pgsql_driver.c Changed paths: MM ext/curl/interface.c MM ext/pdo_pgsql/pdo_pgsql.c MM ext/pdo_pgsql/pgsql_driver.c MM ext/pdo_pgsql/pgsql_statement.c MM ext/pdo_pgsql/php_pdo_pgsql_int.h Diff: diff --cc ext/pdo_pgsql/pdo_pgsql.c index 05b8cc9,fe003f8..fc7aa82 --- a/ext/pdo_pgsql/pdo_pgsql.c +++ b/ext/pdo_pgsql/pdo_pgsql.c @@@ -85,12 -85,13 +85,13 @@@ ZEND_GET_MODULE(pdo_pgsql */ PHP_MINIT_FUNCTION(pdo_pgsql) { - REGISTER_PDO_CLASS_CONST_LONG("PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT", PDO_PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT); - REGISTER_PDO_CLASS_CONST_LONG("PGSQL_ATTR_DISABLE_PREPARES", PDO_PGSQL_ATTR_DISABLE_PREPARES); - REGISTER_PDO_CLASS_CONST_LONG("PGSQL_TRANSACTION_IDLE", (long)PGSQL_TRANSACTION_IDLE); - REGISTER_PDO_CLASS_CONST_LONG("PGSQL_TRANSACTION_ACTIVE", (long)PGSQL_TRANSACTION_ACTIVE); - REGISTER_PDO_CLASS_CONST_LONG("PGSQL_TRANSACTION_INTRANS", (long)PGSQL_TRANSACTION_INTRANS); - REGISTER_PDO_CLASS_CONST_LONG("PGSQL_TRANSACTION_INERROR", (long)PGSQL_TRANSACTION_INERROR); - REGISTER_PDO_CLASS_CONST_LONG("PGSQL_TRANSACTION_UNKNOWN", (long)PGSQL_TRANSACTION_UNKNOWN); + REGISTER_PDO_CLASS_CONST_INT("PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT", PDO_PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT); ++ REGISTER_PDO_CLASS_CONST_INT("PGSQL_ATTR_DISABLE_PREPARES", PDO_PGSQL_ATTR_DISABLE_PREPARES); + REGISTER_PDO_CLASS_CONST_INT("PGSQL_TRANSACTION_IDLE", (php_int_t)PGSQL_TRANSACTION_IDLE); + REGISTER_PDO_CLASS_CONST_INT("PGSQL_TRANSACTION_ACTIVE", (php_int_t)PGSQL_TRANSACTION_ACTIVE); + REGISTER_PDO_CLASS_CONST_INT("PGSQL_TRANSACTION_INTRANS", (php_int_t)PGSQL_TRANSACTION_INTRANS); + REGISTER_PDO_CLASS_CONST_INT("PGSQL_TRANSACTION_INERROR", (php_int_t)PGSQL_TRANSACTION_INERROR); + REGISTER_PDO_CLASS_CONST_INT("PGSQL_TRANSACTION_UNKNOWN", (php_int_t)PGSQL_TRANSACTION_UNKNOWN); php_pdo_register_driver(&pdo_pgsql_driver); return SUCCESS; diff --cc ext/pdo_pgsql/pgsql_driver.c index 7fd6886,96f6fa7..b5b3799 --- a/ext/pdo_pgsql/pgsql_driver.c +++ b/ext/pdo_pgsql/pgsql_driver.c @@@ -220,12 -220,11 +220,11 @@@ static int pgsql_handle_preparer(pdo_db pdo_pgsql_db_handle *H = (pdo_pgsql_db_handle *)dbh->driver_data; pdo_pgsql_stmt *S = ecalloc(1, sizeof(pdo_pgsql_stmt)); int scrollable; - #if HAVE_PQPREPARE int ret; char *nsql = NULL; - int nsql_len = 0; + php_size_t nsql_len = 0; int emulate = 0; - #endif + int execute_only = 0; S->H = H; stmt->driver_data = S; @@@ -239,19 -238,21 +238,21 @@@ efree(S->cursor_name); } spprintf(&S->cursor_name, 0, "pdo_crsr_%08x", ++H->stmt_counter); - #if HAVE_PQPREPARE emulate = 1; - #endif - } - - #if HAVE_PQPREPARE - else if (driver_options) { - if (pdo_attr_ival(driver_options, PDO_PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT, H->disable_native_prepares TSRMLS_CC) == 1 || - pdo_attr_ival(driver_options, PDO_ATTR_EMULATE_PREPARES, H->emulate_prepares TSRMLS_CC) == 1) { + } else if (driver_options) { - if (pdo_attr_lval(driver_options, PDO_PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT, H->disable_native_prepares TSRMLS_CC) == 1) { ++ if (pdo_attr_ival(driver_options, PDO_PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT, H->disable_native_prepares TSRMLS_CC) == 1) { + php_error_docref(NULL TSRMLS_CC, E_DEPRECATED, "PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT is deprecated, use PDO::ATTR_EMULATE_PREPARES instead"); + emulate = 1; + } - if (pdo_attr_lval(driver_options, PDO_ATTR_EMULATE_PREPARES, H->emulate_prepares TSRMLS_CC) == 1) { ++ if (pdo_attr_ival(driver_options, PDO_ATTR_EMULATE_PREPARES, H->emulate_prepares TSRMLS_CC) == 1) { emulate = 1; } - if (pdo_attr_lval(driver_options, PDO_PGSQL_ATTR_DISABLE_PREPARES, H->disable_prepares TSRMLS_CC) == 1) { ++ if (pdo_attr_ival(driver_options, PDO_PGSQL_ATTR_DISABLE_PREPARES, H->disable_prepares TSRMLS_CC) == 1) { + execute_only = 1; + } } else { emulate = H->disable_native_prepares || H->emulate_prepares; + execute_only = H->disable_prepares; } if (!emulate && PQprotocolVersion(H->server) > 2) { @@@ -289,9 -292,9 +292,9 @@@ static php_int_t pgsql_handle_doer(pdo_ { pdo_pgsql_db_handle *H = (pdo_pgsql_db_handle *)dbh->driver_data; PGresult *res; - long ret = 1; + php_int_t ret = 1; ExecStatusType qs; - + if (!(res = PQexec(H->server, sql))) { /* fatal error */ pdo_pgsql_error(dbh, PGRES_FATAL_ERROR, NULL); @@@ -579,15 -570,15 +574,15 @@@ static PHP_METHOD(PDO, pgsqlCopyFromArr PQclear(pgsql_result); zend_hash_internal_pointer_reset_ex(Z_ARRVAL_P(pg_rows), &pos); while (zend_hash_get_current_data_ex(Z_ARRVAL_P(pg_rows), (void **) &tmp, &pos) == SUCCESS) { - int query_len; + php_size_t query_len; convert_to_string_ex(tmp); - + - if (buffer_len < Z_STRLEN_PP(tmp)) { - buffer_len = Z_STRLEN_PP(tmp); + if (buffer_len < Z_STRSIZE_PP(tmp)) { + buffer_len = Z_STRSIZE_PP(tmp); query = erealloc(query, buffer_len + 2); /* room for \n\0 */ } - memcpy(query, Z_STRVAL_PP(tmp), Z_STRLEN_PP(tmp)); - query_len = Z_STRLEN_PP(tmp); + memcpy(query, Z_STRVAL_PP(tmp), Z_STRSIZE_PP(tmp)); + query_len = Z_STRSIZE_PP(tmp); if (query[query_len - 1] != '\n') { query[query_len++] = '\n'; } @@@ -1122,15 -1113,16 +1117,16 @@@ static int pdo_pgsql_set_attr(pdo_dbh_ pdo_pgsql_db_handle *H = (pdo_pgsql_db_handle *)dbh->driver_data; switch (attr) { - #if HAVE_PQPREPARE case PDO_ATTR_EMULATE_PREPARES: - H->emulate_prepares = Z_LVAL_P(val); + H->emulate_prepares = Z_IVAL_P(val); return 1; case PDO_PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT: + php_error_docref(NULL TSRMLS_CC, E_DEPRECATED, "PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT is deprecated, use PDO::ATTR_EMULATE_PREPARES instead"); - H->disable_native_prepares = Z_LVAL_P(val); + H->disable_native_prepares = Z_IVAL_P(val); return 1; - #endif - + case PDO_PGSQL_ATTR_DISABLE_PREPARES: - H->disable_prepares = Z_LVAL_P(val); ++ H->disable_prepares = Z_IVAL_P(val); + return 1; default: return 0; } diff --cc ext/pdo_pgsql/pgsql_statement.c index 930b7f9,35e69a3..8d0cbec --- a/ext/pdo_pgsql/pgsql_statement.c +++ b/ext/pdo_pgsql/pgsql_statement.c @@@ -321,12 -323,12 +324,12 @@@ static int pgsql_stmt_param_hook(pdo_st return 1; } else { int len; - + SEPARATE_ZVAL_IF_NOT_REF(&param->parameter); Z_TYPE_P(param->parameter) = IS_STRING; - + if ((len = php_stream_copy_to_mem(stm, &Z_STRVAL_P(param->parameter), PHP_STREAM_COPY_ALL, 0)) > 0) { - Z_STRLEN_P(param->parameter) = len; + Z_STRSIZE_P(param->parameter) = len; } else { ZVAL_EMPTY_STRING(param->parameter); } @@@ -583,9 -580,9 +581,9 @@@ static int pgsql_stmt_get_column_meta(p if (colno >= stmt->column_count) { return FAILURE; } - + array_init(return_value); - add_assoc_long(return_value, "pgsql:oid", S->cols[colno].pgsql_type); + add_assoc_int(return_value, "pgsql:oid", S->cols[colno].pgsql_type); /* Fetch metadata from Postgres system catalogue */ spprintf(&q, 0, "SELECT TYPNAME FROM PG_TYPE WHERE OID=%u", S->cols[colno].pgsql_type);

« previous php.cvs (#76453) next »