summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Peter Banyard <girgias@php.net>2020-12-23 14:15:56 +0100
committerGeorge Peter Banyard <girgias@php.net>2021-01-06 10:20:59 +0000
commit43f69160cfac8e33969e059eeab756a223be4480 (patch)
treecfefbb5e91f4632023658f5d9721e962c83175de
parentd04adf60bee30a167845644c3d480583ca755420 (diff)
downloadphp-git-43f69160cfac8e33969e059eeab756a223be4480.tar.gz
Boolify PDO's set_attribute driver function
-rw-r--r--ext/pdo/php_pdo_driver.h5
-rw-r--r--ext/pdo_dblib/dblib_driver.c14
-rw-r--r--ext/pdo_firebird/firebird_driver.c22
-rw-r--r--ext/pdo_mysql/mysql_driver.c18
-rw-r--r--ext/pdo_oci/oci_driver.c48
-rw-r--r--ext/pdo_odbc/odbc_driver.c6
-rw-r--r--ext/pdo_pgsql/pgsql_driver.c8
-rw-r--r--ext/pdo_sqlite/sqlite_driver.c8
8 files changed, 65 insertions, 64 deletions
diff --git a/ext/pdo/php_pdo_driver.h b/ext/pdo/php_pdo_driver.h
index 33d8cbef6d..7db096bbef 100644
--- a/ext/pdo/php_pdo_driver.h
+++ b/ext/pdo/php_pdo_driver.h
@@ -241,8 +241,9 @@ typedef int (*pdo_dbh_quote_func)(pdo_dbh_t *dbh, const char *unquoted, size_t u
* Return true if currently inside a transaction, false otherwise. */
typedef bool (*pdo_dbh_txn_func)(pdo_dbh_t *dbh);
-/* setting of attributes */
-typedef int (*pdo_dbh_set_attr_func)(pdo_dbh_t *dbh, zend_long attr, zval *val);
+/* setting of attributes
+ * Return true on success and false in case of failure */
+typedef bool (*pdo_dbh_set_attr_func)(pdo_dbh_t *dbh, zend_long attr, zval *val);
/* return last insert id. NULL indicates error condition, otherwise, the return value
* MUST be an emalloc'd NULL terminated string. */
diff --git a/ext/pdo_dblib/dblib_driver.c b/ext/pdo_dblib/dblib_driver.c
index ecb92fe2c8..da743752ca 100644
--- a/ext/pdo_dblib/dblib_driver.c
+++ b/ext/pdo_dblib/dblib_driver.c
@@ -269,28 +269,28 @@ char *dblib_handle_last_id(pdo_dbh_t *dbh, const char *name, size_t *len)
return id;
}
-static int dblib_set_attr(pdo_dbh_t *dbh, zend_long attr, zval *val)
+static bool dblib_set_attr(pdo_dbh_t *dbh, zend_long attr, zval *val)
{
pdo_dblib_db_handle *H = (pdo_dblib_db_handle *)dbh->driver_data;
switch(attr) {
case PDO_ATTR_DEFAULT_STR_PARAM:
H->assume_national_character_set_strings = zval_get_long(val) == PDO_PARAM_STR_NATL ? 1 : 0;
- return 1;
+ return true;
case PDO_ATTR_TIMEOUT:
case PDO_DBLIB_ATTR_QUERY_TIMEOUT:
- return SUCCEED == dbsettime(zval_get_long(val)) ? 1 : 0;
+ return SUCCEED == dbsettime(zval_get_long(val));
case PDO_DBLIB_ATTR_STRINGIFY_UNIQUEIDENTIFIER:
H->stringify_uniqueidentifier = zval_get_long(val);
- return 1;
+ return true;
case PDO_DBLIB_ATTR_SKIP_EMPTY_ROWSETS:
H->skip_empty_rowsets = zval_is_true(val);
- return 1;
+ return true;
case PDO_DBLIB_ATTR_DATETIME_CONVERT:
H->datetime_convert = zval_get_long(val);
- return 1;
+ return true;
default:
- return 0;
+ return false;
}
}
diff --git a/ext/pdo_firebird/firebird_driver.c b/ext/pdo_firebird/firebird_driver.c
index 39c6d4f877..1a729ef02c 100644
--- a/ext/pdo_firebird/firebird_driver.c
+++ b/ext/pdo_firebird/firebird_driver.c
@@ -821,7 +821,7 @@ static int firebird_alloc_prepare_stmt(pdo_dbh_t *dbh, const char *sql, size_t s
/* }}} */
/* called by PDO to set a driver-specific dbh attribute */
-static int firebird_handle_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *val) /* {{{ */
+static bool firebird_handle_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *val) /* {{{ */
{
pdo_firebird_db_handle *H = (pdo_firebird_db_handle *)dbh->driver_data;
@@ -837,7 +837,7 @@ static int firebird_handle_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *v
/* turning on auto_commit with an open transaction is illegal, because
we won't know what to do with it */
H->last_app_error = "Cannot enable auto-commit while a transaction is already open";
- return 0;
+ return false;
} else {
/* close the transaction */
if (!firebird_handle_commit(dbh)) {
@@ -849,17 +849,17 @@ static int firebird_handle_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *v
dbh->auto_commit = bval;
}
}
- return 1;
+ return true;
case PDO_ATTR_FETCH_TABLE_NAMES:
H->fetch_table_names = zval_get_long(val)? 1 : 0;
- return 1;
+ return true;
case PDO_FB_ATTR_DATE_FORMAT:
{
zend_string *str = zval_try_get_string(val);
if (UNEXPECTED(!str)) {
- return 0;
+ return false;
}
if (H->date_format) {
efree(H->date_format);
@@ -867,13 +867,13 @@ static int firebird_handle_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *v
spprintf(&H->date_format, 0, "%s", ZSTR_VAL(str));
zend_string_release_ex(str, 0);
}
- return 1;
+ return true;
case PDO_FB_ATTR_TIME_FORMAT:
{
zend_string *str = zval_try_get_string(val);
if (UNEXPECTED(!str)) {
- return 0;
+ return false;
}
if (H->time_format) {
efree(H->time_format);
@@ -881,13 +881,13 @@ static int firebird_handle_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *v
spprintf(&H->time_format, 0, "%s", ZSTR_VAL(str));
zend_string_release_ex(str, 0);
}
- return 1;
+ return true;
case PDO_FB_ATTR_TIMESTAMP_FORMAT:
{
zend_string *str = zval_try_get_string(val);
if (UNEXPECTED(!str)) {
- return 0;
+ return false;
}
if (H->timestamp_format) {
efree(H->timestamp_format);
@@ -895,9 +895,9 @@ static int firebird_handle_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *v
spprintf(&H->timestamp_format, 0, "%s", ZSTR_VAL(str));
zend_string_release_ex(str, 0);
}
- return 1;
+ return true;
}
- return 0;
+ return false;
}
/* }}} */
diff --git a/ext/pdo_mysql/mysql_driver.c b/ext/pdo_mysql/mysql_driver.c
index 54fa43700d..ce40a21cd0 100644
--- a/ext/pdo_mysql/mysql_driver.c
+++ b/ext/pdo_mysql/mysql_driver.c
@@ -390,7 +390,7 @@ static inline int mysql_handle_autocommit(pdo_dbh_t *dbh)
/* }}} */
/* {{{ pdo_mysql_set_attribute */
-static int pdo_mysql_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *val)
+static bool pdo_mysql_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *val)
{
zend_long lval = zval_get_long(val);
zend_bool bval = lval ? 1 : 0;
@@ -403,29 +403,29 @@ static int pdo_mysql_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *val)
if (dbh->auto_commit ^ bval) {
dbh->auto_commit = bval;
if (!mysql_handle_autocommit(dbh)) {
- PDO_DBG_RETURN(0);
+ PDO_DBG_RETURN(false);
}
}
- PDO_DBG_RETURN(1);
+ PDO_DBG_RETURN(true);
case PDO_ATTR_DEFAULT_STR_PARAM:
((pdo_mysql_db_handle *)dbh->driver_data)->assume_national_character_set_strings = lval == PDO_PARAM_STR_NATL;
- PDO_DBG_RETURN(1);
+ PDO_DBG_RETURN(true);
case PDO_MYSQL_ATTR_USE_BUFFERED_QUERY:
/* ignore if the new value equals the old one */
((pdo_mysql_db_handle *)dbh->driver_data)->buffered = bval;
- PDO_DBG_RETURN(1);
+ PDO_DBG_RETURN(true);
case PDO_MYSQL_ATTR_DIRECT_QUERY:
case PDO_ATTR_EMULATE_PREPARES:
/* ignore if the new value equals the old one */
((pdo_mysql_db_handle *)dbh->driver_data)->emulate_prepare = bval;
- PDO_DBG_RETURN(1);
+ PDO_DBG_RETURN(true);
case PDO_ATTR_FETCH_TABLE_NAMES:
((pdo_mysql_db_handle *)dbh->driver_data)->fetch_table_names = bval;
- PDO_DBG_RETURN(1);
+ PDO_DBG_RETURN(true);
#ifndef PDO_USE_MYSQLND
case PDO_MYSQL_ATTR_MAX_BUFFER_SIZE:
@@ -436,12 +436,12 @@ static int pdo_mysql_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *val)
} else {
((pdo_mysql_db_handle *)dbh->driver_data)->max_buffer_size = lval;
}
- PDO_DBG_RETURN(1);
+ PDO_DBG_RETURN(true);
break;
#endif
default:
- PDO_DBG_RETURN(0);
+ PDO_DBG_RETURN(false);
}
}
/* }}} */
diff --git a/ext/pdo_oci/oci_driver.c b/ext/pdo_oci/oci_driver.c
index ac0e9d8926..b104a38333 100644
--- a/ext/pdo_oci/oci_driver.c
+++ b/ext/pdo_oci/oci_driver.c
@@ -426,7 +426,7 @@ static bool oci_handle_rollback(pdo_dbh_t *dbh) /* {{{ */
}
/* }}} */
-static int oci_handle_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *val) /* {{{ */
+static bool oci_handle_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *val) /* {{{ */
{
zend_long lval = zval_get_long(val);
pdo_oci_db_handle *H = (pdo_oci_db_handle *)dbh->driver_data;
@@ -440,25 +440,25 @@ static int oci_handle_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *val) /
if (H->last_err) {
H->last_err = oci_drv_error("OCITransCommit");
- return 0;
+ return false;
}
dbh->in_txn = false;
}
dbh->auto_commit = (unsigned int)lval? 1 : 0;
- return 1;
+ return true;
}
case PDO_ATTR_PREFETCH:
{
H->prefetch = pdo_oci_sanitize_prefetch(lval);
- return 1;
+ return true;
}
case PDO_OCI_ATTR_ACTION:
{
#if (OCI_MAJOR_VERSION >= 10)
zend_string *action = zval_try_get_string(val);
if (UNEXPECTED(!action)) {
- return 0;
+ return false;
}
H->last_err = OCIAttrSet(H->session, OCI_HTYPE_SESSION,
@@ -466,12 +466,12 @@ static int oci_handle_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *val) /
OCI_ATTR_ACTION, H->err);
if (H->last_err) {
oci_drv_error("OCIAttrSet: OCI_ATTR_ACTION");
- return 0;
+ return false;
}
- return 1;
+ return true;
#else
oci_drv_error("Unsupported attribute type");
- return 0;
+ return false;
#endif
}
case PDO_OCI_ATTR_CLIENT_INFO:
@@ -479,7 +479,7 @@ static int oci_handle_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *val) /
#if (OCI_MAJOR_VERSION >= 10)
zend_string *client_info = zval_try_get_string(val);
if (UNEXPECTED(!client_info)) {
- return 0;
+ return false;
}
H->last_err = OCIAttrSet(H->session, OCI_HTYPE_SESSION,
@@ -487,12 +487,12 @@ static int oci_handle_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *val) /
OCI_ATTR_CLIENT_INFO, H->err);
if (H->last_err) {
oci_drv_error("OCIAttrSet: OCI_ATTR_CLIENT_INFO");
- return 0;
+ return false;
}
- return 1;
+ return true;
#else
oci_drv_error("Unsupported attribute type");
- return 0;
+ return false;
#endif
}
case PDO_OCI_ATTR_CLIENT_IDENTIFIER:
@@ -500,7 +500,7 @@ static int oci_handle_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *val) /
#if (OCI_MAJOR_VERSION >= 10)
zend_string *identifier = zval_try_get_string(val);
if (UNEXPECTED(!identifier)) {
- return 0;
+ return false;
}
H->last_err = OCIAttrSet(H->session, OCI_HTYPE_SESSION,
@@ -508,12 +508,12 @@ static int oci_handle_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *val) /
OCI_ATTR_CLIENT_IDENTIFIER, H->err);
if (H->last_err) {
oci_drv_error("OCIAttrSet: OCI_ATTR_CLIENT_IDENTIFIER");
- return 0;
+ return false;
}
- return 1;
+ return true;
#else
oci_drv_error("Unsupported attribute type");
- return 0;
+ return false;
#endif
}
case PDO_OCI_ATTR_MODULE:
@@ -521,7 +521,7 @@ static int oci_handle_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *val) /
#if (OCI_MAJOR_VERSION >= 10)
zend_string *module = zval_try_get_string(val);
if (UNEXPECTED(!module)) {
- return 0;
+ return false;
}
H->last_err = OCIAttrSet(H->session, OCI_HTYPE_SESSION,
@@ -529,12 +529,12 @@ static int oci_handle_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *val) /
OCI_ATTR_MODULE, H->err);
if (H->last_err) {
oci_drv_error("OCIAttrSet: OCI_ATTR_MODULE");
- return 0;
+ return false;
}
- return 1;
+ return true;
#else
oci_drv_error("Unsupported attribute type");
- return 0;
+ return false;
#endif
}
case PDO_OCI_ATTR_CALL_TIMEOUT:
@@ -547,16 +547,16 @@ static int oci_handle_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *val) /
OCI_ATTR_CALL_TIMEOUT, H->err);
if (H->last_err) {
oci_drv_error("OCIAttrSet: OCI_ATTR_CALL_TIMEOUT");
- return 0;
+ return false;
}
- return 1;
+ return true;
#else
oci_drv_error("Unsupported attribute type");
- return 0;
+ return false;
#endif
}
default:
- return 0;
+ return false;
}
}
diff --git a/ext/pdo_odbc/odbc_driver.c b/ext/pdo_odbc/odbc_driver.c
index 732512eb58..e9a8b640cb 100644
--- a/ext/pdo_odbc/odbc_driver.c
+++ b/ext/pdo_odbc/odbc_driver.c
@@ -334,18 +334,18 @@ static bool odbc_handle_rollback(pdo_dbh_t *dbh)
return true;
}
-static int odbc_handle_set_attr(pdo_dbh_t *dbh, zend_long attr, zval *val)
+static bool odbc_handle_set_attr(pdo_dbh_t *dbh, zend_long attr, zval *val)
{
pdo_odbc_db_handle *H = (pdo_odbc_db_handle *)dbh->driver_data;
switch (attr) {
case PDO_ODBC_ATTR_ASSUME_UTF8:
H->assume_utf8 = zval_is_true(val);
- return 1;
+ return true;
default:
strcpy(H->einfo.last_err_msg, "Unknown Attribute");
H->einfo.what = "setAttribute";
strcpy(H->einfo.last_state, "IM001");
- return 0;
+ return false;
}
}
diff --git a/ext/pdo_pgsql/pgsql_driver.c b/ext/pdo_pgsql/pgsql_driver.c
index 78ed0c30c2..44a7d110a5 100644
--- a/ext/pdo_pgsql/pgsql_driver.c
+++ b/ext/pdo_pgsql/pgsql_driver.c
@@ -1149,7 +1149,7 @@ static const zend_function_entry *pdo_pgsql_get_driver_methods(pdo_dbh_t *dbh, i
}
}
-static int pdo_pgsql_set_attr(pdo_dbh_t *dbh, zend_long attr, zval *val)
+static bool pdo_pgsql_set_attr(pdo_dbh_t *dbh, zend_long attr, zval *val)
{
zend_bool bval = zval_get_long(val)? 1 : 0;
pdo_pgsql_db_handle *H = (pdo_pgsql_db_handle *)dbh->driver_data;
@@ -1157,12 +1157,12 @@ static int pdo_pgsql_set_attr(pdo_dbh_t *dbh, zend_long attr, zval *val)
switch (attr) {
case PDO_ATTR_EMULATE_PREPARES:
H->emulate_prepares = bval;
- return 1;
+ return true;
case PDO_PGSQL_ATTR_DISABLE_PREPARES:
H->disable_prepares = bval;
- return 1;
+ return true;
default:
- return 0;
+ return false;
}
}
diff --git a/ext/pdo_sqlite/sqlite_driver.c b/ext/pdo_sqlite/sqlite_driver.c
index a7c9284dfc..dc494686dd 100644
--- a/ext/pdo_sqlite/sqlite_driver.c
+++ b/ext/pdo_sqlite/sqlite_driver.c
@@ -295,19 +295,19 @@ static int pdo_sqlite_get_attribute(pdo_dbh_t *dbh, zend_long attr, zval *return
return 1;
}
-static int pdo_sqlite_set_attr(pdo_dbh_t *dbh, zend_long attr, zval *val)
+static bool pdo_sqlite_set_attr(pdo_dbh_t *dbh, zend_long attr, zval *val)
{
pdo_sqlite_db_handle *H = (pdo_sqlite_db_handle *)dbh->driver_data;
switch (attr) {
case PDO_ATTR_TIMEOUT:
sqlite3_busy_timeout(H->db, zval_get_long(val) * 1000);
- return 1;
+ return true;
case PDO_SQLITE_ATTR_EXTENDED_RESULT_CODES:
sqlite3_extended_result_codes(H->db, zval_get_long(val));
- return 1;
+ return true;
}
- return 0;
+ return false;
}
typedef struct {