@@ -581,6 +581,11 @@ static int oci_stmt_describe(pdo_stmt_t *stmt, int colno) /* {{{ */
581581 dyn = TRUE;
582582 break ;
583583
584+ case SQLT_BOL :
585+ S -> cols [colno ].datalen = 1 ;
586+ S -> cols [colno ].data = emalloc (S -> cols [colno ].datalen + 1 );
587+ break ;
588+
584589 case SQLT_BIN :
585590 default :
586591 if (dtype == SQLT_DAT || dtype == SQLT_NUM || dtype == SQLT_RDD
@@ -795,6 +800,11 @@ static int oci_stmt_get_col(pdo_stmt_t *stmt, int colno, zval *result, enum pdo_
795800 } else if (C -> indicator == 0 ) {
796801 /* it was stored perfectly */
797802
803+ if (C -> dtype == SQLT_BOL ) {
804+ ZVAL_BOOL (result , strlen (C -> data ));
805+ return 1 ;
806+ }
807+
798808 if (C -> dtype == SQLT_BLOB || C -> dtype == SQLT_CLOB ) {
799809 if (C -> data ) {
800810 php_stream * stream = oci_create_lob_stream (stmt , (OCILobLocator * )C -> data );
@@ -970,6 +980,10 @@ static int oci_stmt_col_meta(pdo_stmt_t *stmt, zend_long colno, zval *return_val
970980 add_assoc_string (return_value , "oci:decl_type" , "BINARY_DOUBLE" );
971981 add_assoc_string (return_value , "native_type" , "BINARY_DOUBLE" );
972982 break ;
983+ case SQLT_BOL :
984+ add_assoc_string (return_value , "oci:decl_type" , "BOOLEAN" );
985+ add_assoc_string (return_value , "native_type" , "BOOLEAN" );
986+ break ;
973987 default :
974988 add_assoc_long (return_value , "oci:decl_type" , dtype );
975989 add_assoc_string (return_value , "native_type" , "UNKNOWN" );
@@ -981,6 +995,9 @@ static int oci_stmt_col_meta(pdo_stmt_t *stmt, zend_long colno, zval *return_val
981995 }
982996
983997 switch (dtype ) {
998+ case SQLT_BOL :
999+ add_assoc_long (return_value , "pdo_type" , PDO_PARAM_BOOL );
1000+ break ;
9841001 case SQLT_BLOB :
9851002 case SQLT_CLOB :
9861003 add_assoc_long (return_value , "pdo_type" , PDO_PARAM_LOB );
@@ -1002,6 +1019,9 @@ static int oci_stmt_col_meta(pdo_stmt_t *stmt, zend_long colno, zval *return_val
10021019
10031020 /* PDO type */
10041021 switch (dtype ) {
1022+ case SQLT_BOL :
1023+ add_assoc_long (return_value , "pdo_type" , PDO_PARAM_BOOL );
1024+ break ;
10051025 case SQLT_BFILE :
10061026 case SQLT_BLOB :
10071027 case SQLT_CLOB :
0 commit comments