Skip to content

Commit 010d3db

Browse files
committed
Boolify PDO get_attribute handler
This also removes some dead code
1 parent b1ea1d6 commit 010d3db

File tree

9 files changed

+43
-50
lines changed

9 files changed

+43
-50
lines changed

ext/pdo/pdo_dbh.c

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -893,20 +893,13 @@ PHP_METHOD(PDO, getAttribute)
893893
RETURN_FALSE;
894894
}
895895

896-
switch (dbh->methods->get_attribute(dbh, attr, return_value)) {
897-
case -1:
898-
PDO_HANDLE_DBH_ERR();
899-
RETURN_FALSE;
900-
901-
case 0:
902-
pdo_raise_impl_error(dbh, NULL, "IM001", "driver does not support that attribute");
903-
RETURN_FALSE;
904-
905-
default:
906-
/* No error state, just return as the return_value has been assigned
907-
* by the get_attribute handler */
908-
return;
896+
if (dbh->methods->get_attribute(dbh, attr, return_value) == false) {
897+
pdo_raise_impl_error(dbh, NULL, "IM001", "driver does not support that attribute");
898+
RETURN_FALSE;
909899
}
900+
/* No error state, just return as the return_value has been assigned
901+
* by the get_attribute handler */
902+
return;
910903
}
911904
/* }}} */
912905

ext/pdo/php_pdo_driver.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -258,9 +258,8 @@ typedef char *(*pdo_dbh_last_id_func)(pdo_dbh_t *dbh, const char *name, size_t *
258258
typedef int (*pdo_dbh_fetch_error_func)(pdo_dbh_t *dbh, pdo_stmt_t *stmt, zval *info);
259259

260260
/* fetching of attributes
261-
* TODO should this be a zend_result return value?
262-
*/
263-
typedef int (*pdo_dbh_get_attr_func)(pdo_dbh_t *dbh, zend_long attr, zval *val);
261+
* Return true on success and false in case of failure */
262+
typedef bool (*pdo_dbh_get_attr_func)(pdo_dbh_t *dbh, zend_long attr, zval *val);
264263

265264
/* checking/pinging persistent connections; return SUCCESS if the connection
266265
* is still alive and ready to be used, FAILURE otherwise.

ext/pdo_dblib/dblib_driver.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -361,7 +361,7 @@ static void dblib_get_tds_version(zval *return_value, int tds)
361361
}
362362
}
363363

364-
static int dblib_get_attribute(pdo_dbh_t *dbh, zend_long attr, zval *return_value)
364+
static bool dblib_get_attribute(pdo_dbh_t *dbh, zend_long attr, zval *return_value)
365365
{
366366
pdo_dblib_db_handle *H = (pdo_dblib_db_handle *)dbh->driver_data;
367367

@@ -396,10 +396,10 @@ static int dblib_get_attribute(pdo_dbh_t *dbh, zend_long attr, zval *return_valu
396396
break;
397397

398398
default:
399-
return 0;
399+
return false;
400400
}
401401

402-
return 1;
402+
return true;
403403
}
404404

405405
static const struct pdo_dbh_methods dblib_methods = {

ext/pdo_firebird/firebird_driver.c

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -914,7 +914,7 @@ static void firebird_info_cb(void *arg, char const *s) /* {{{ */
914914
/* }}} */
915915

916916
/* called by PDO to get a driver-specific dbh attribute */
917-
static int firebird_handle_get_attribute(pdo_dbh_t *dbh, zend_long attr, zval *val) /* {{{ */
917+
static bool firebird_handle_get_attribute(pdo_dbh_t *dbh, zend_long attr, zval *val) /* {{{ */
918918
{
919919
pdo_firebird_db_handle *H = (pdo_firebird_db_handle *)dbh->driver_data;
920920

@@ -923,11 +923,11 @@ static int firebird_handle_get_attribute(pdo_dbh_t *dbh, zend_long attr, zval *v
923923

924924
case PDO_ATTR_AUTOCOMMIT:
925925
ZVAL_LONG(val,dbh->auto_commit);
926-
return 1;
926+
return true;
927927

928928
case PDO_ATTR_CONNECTION_STATUS:
929929
ZVAL_BOOL(val, !isc_version(&H->db, firebird_info_cb, NULL));
930-
return 1;
930+
return true;
931931

932932
case PDO_ATTR_CLIENT_VERSION: {
933933
#if defined(__GNUC__) || defined(PHP_WIN32)
@@ -950,22 +950,23 @@ static int firebird_handle_get_attribute(pdo_dbh_t *dbh, zend_long attr, zval *v
950950
ZVAL_NULL(val);
951951
#endif
952952
}
953-
return 1;
953+
return true;
954954

955955
case PDO_ATTR_SERVER_VERSION:
956956
case PDO_ATTR_SERVER_INFO:
957957
*tmp = 0;
958958

959959
if (!isc_version(&H->db, firebird_info_cb, (void*)tmp)) {
960960
ZVAL_STRING(val, tmp);
961-
return 1;
961+
return true;
962962
}
963+
/* TODO missing break? */
963964

964965
case PDO_ATTR_FETCH_TABLE_NAMES:
965966
ZVAL_BOOL(val, H->fetch_table_names);
966-
return 1;
967+
return true;
967968
}
968-
return 0;
969+
return false;
969970
}
970971
/* }}} */
971972

ext/pdo_mysql/mysql_driver.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -447,7 +447,7 @@ static bool pdo_mysql_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *val)
447447
/* }}} */
448448

449449
/* {{{ pdo_mysql_get_attribute */
450-
static int pdo_mysql_get_attribute(pdo_dbh_t *dbh, zend_long attr, zval *return_value)
450+
static bool pdo_mysql_get_attribute(pdo_dbh_t *dbh, zend_long attr, zval *return_value)
451451
{
452452
pdo_mysql_db_handle *H = (pdo_mysql_db_handle *)dbh->driver_data;
453453

@@ -512,10 +512,10 @@ static int pdo_mysql_get_attribute(pdo_dbh_t *dbh, zend_long attr, zval *return_
512512
break;
513513

514514
default:
515-
PDO_DBG_RETURN(0);
515+
PDO_DBG_RETURN(false);
516516
}
517517

518-
PDO_DBG_RETURN(1);
518+
PDO_DBG_RETURN(true);
519519
}
520520
/* }}} */
521521

ext/pdo_oci/oci_driver.c

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -562,7 +562,7 @@ static bool oci_handle_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *val)
562562
}
563563
/* }}} */
564564

565-
static int oci_handle_get_attribute(pdo_dbh_t *dbh, zend_long attr, zval *return_value) /* {{{ */
565+
static bool oci_handle_get_attribute(pdo_dbh_t *dbh, zend_long attr, zval *return_value) /* {{{ */
566566
{
567567
pdo_oci_db_handle *H = (pdo_oci_db_handle *)dbh->driver_data;
568568

@@ -591,7 +591,7 @@ static int oci_handle_get_attribute(pdo_dbh_t *dbh, zend_long attr, zval *return
591591
ZVAL_STRING(return_value, verstr);
592592
}
593593
}
594-
return TRUE;
594+
return true;
595595
}
596596

597597
case PDO_ATTR_CLIENT_VERSION:
@@ -608,20 +608,20 @@ static int oci_handle_get_attribute(pdo_dbh_t *dbh, zend_long attr, zval *return
608608
/* Compile time client version */
609609
ZVAL_STRING(return_value, PHP_PDO_OCI_CLIENT_VERSION);
610610
#else
611-
return FALSE;
611+
return false;
612612

613613
#endif /* Check for OCIClientVersion() support */
614614

615-
return TRUE;
615+
return true;
616616
}
617617

618618
case PDO_ATTR_AUTOCOMMIT:
619619
ZVAL_BOOL(return_value, dbh->auto_commit);
620-
return TRUE;
620+
return true;
621621

622622
case PDO_ATTR_PREFETCH:
623623
ZVAL_LONG(return_value, H->prefetch);
624-
return TRUE;
624+
return true;
625625
case PDO_OCI_ATTR_CALL_TIMEOUT:
626626
{
627627
#if (OCI_MAJOR_VERSION >= 18)
@@ -632,21 +632,21 @@ static int oci_handle_get_attribute(pdo_dbh_t *dbh, zend_long attr, zval *return
632632
OCI_ATTR_CALL_TIMEOUT, H->err);
633633
if (H->last_err) {
634634
oci_drv_error("OCIAttrGet: OCI_ATTR_CALL_TIMEOUT");
635-
return FALSE;
635+
return false;
636636
}
637637

638638
ZVAL_LONG(return_value, (zend_long) timeout);
639-
return TRUE;
639+
return true;
640640
#else
641641
oci_drv_error("Unsupported attribute type");
642-
return FALSE;
642+
return false;
643643
#endif
644644
}
645645
default:
646-
return FALSE;
646+
return false;
647647

648648
}
649-
return FALSE;
649+
return false;
650650

651651
}
652652
/* }}} */

ext/pdo_odbc/odbc_driver.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -349,13 +349,13 @@ static bool odbc_handle_set_attr(pdo_dbh_t *dbh, zend_long attr, zval *val)
349349
}
350350
}
351351

352-
static int odbc_handle_get_attr(pdo_dbh_t *dbh, zend_long attr, zval *val)
352+
static bool odbc_handle_get_attr(pdo_dbh_t *dbh, zend_long attr, zval *val)
353353
{
354354
pdo_odbc_db_handle *H = (pdo_odbc_db_handle *)dbh->driver_data;
355355
switch (attr) {
356356
case PDO_ATTR_CLIENT_VERSION:
357357
ZVAL_STRING(val, "ODBC-" PDO_ODBC_TYPE);
358-
return 1;
358+
return true;
359359

360360
case PDO_ATTR_SERVER_VERSION:
361361
case PDO_ATTR_PREFETCH:
@@ -365,10 +365,10 @@ static int odbc_handle_get_attr(pdo_dbh_t *dbh, zend_long attr, zval *val)
365365
break;
366366
case PDO_ODBC_ATTR_ASSUME_UTF8:
367367
ZVAL_BOOL(val, H->assume_utf8 ? 1 : 0);
368-
return 1;
368+
return true;
369369

370370
}
371-
return 0;
371+
return false;
372372
}
373373

374374
static const struct pdo_dbh_methods odbc_methods = {

ext/pdo_pgsql/pgsql_driver.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -393,7 +393,7 @@ void pdo_libpq_version(char *buf, size_t len)
393393
}
394394
}
395395

396-
static int pdo_pgsql_get_attribute(pdo_dbh_t *dbh, zend_long attr, zval *return_value)
396+
static bool pdo_pgsql_get_attribute(pdo_dbh_t *dbh, zend_long attr, zval *return_value)
397397
{
398398
pdo_pgsql_db_handle *H = (pdo_pgsql_db_handle *)dbh->driver_data;
399399

@@ -481,10 +481,10 @@ static int pdo_pgsql_get_attribute(pdo_dbh_t *dbh, zend_long attr, zval *return_
481481
}
482482

483483
default:
484-
return 0;
484+
return false;
485485
}
486486

487-
return 1;
487+
return true;
488488
}
489489

490490
/* {{{ */

ext/pdo_sqlite/sqlite_driver.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,7 @@ static bool sqlite_handle_rollback(pdo_dbh_t *dbh)
280280
return true;
281281
}
282282

283-
static int pdo_sqlite_get_attribute(pdo_dbh_t *dbh, zend_long attr, zval *return_value)
283+
static bool pdo_sqlite_get_attribute(pdo_dbh_t *dbh, zend_long attr, zval *return_value)
284284
{
285285
switch (attr) {
286286
case PDO_ATTR_CLIENT_VERSION:
@@ -289,10 +289,10 @@ static int pdo_sqlite_get_attribute(pdo_dbh_t *dbh, zend_long attr, zval *return
289289
break;
290290

291291
default:
292-
return 0;
292+
return false;
293293
}
294294

295-
return 1;
295+
return true;
296296
}
297297

298298
static bool pdo_sqlite_set_attr(pdo_dbh_t *dbh, zend_long attr, zval *val)

0 commit comments

Comments
 (0)