Re: cvs: php4 /ext/oci8 oci8.c
| From: | Thies C. Arntzen | Date: | Wed, 12 Sep 2001 07:10:48 +0000 |
| Subject: | Re: cvs: php4 /ext/oci8 oci8.c | ||
| References: | 1 | Groups: | php.cvs |
| Request: | Send a blank email to php-cvs+get-7411@lists.php.net to get a copy of this message | ||
On Tue, Sep 11, 2001 at 09:03:58PM -0000, Andy Sautins wrote:
> asautins Tue Sep 11 17:03:58 2001 EDT
>
> Modified files:
> /php4/ext/oci8 oci8.c
> Log:
> Handle assign/append of NULL values to collections correctly. Now
> works consistently with how the rest of the library operates. If
> the value passed in is a null string, the value is set to null
the "rest" of the code does not assume NULL when the string
is empty. please explain.
tc
>
> Index: php4/ext/oci8/oci8.c
> diff -u php4/ext/oci8/oci8.c:1.151 php4/ext/oci8/oci8.c:1.152
> --- php4/ext/oci8/oci8.c:1.151 Sun Sep 9 09:28:58 2001
> +++ php4/ext/oci8/oci8.c Tue Sep 11 17:03:58 2001
> @@ -20,7 +20,7 @@
> +----------------------------------------------------------------------+
> */
>
> -/* $Id: oci8.c,v 1.151 2001/09/09 13:28:58 derick Exp $ */
> +/* $Id: oci8.c,v 1.152 2001/09/11 21:03:58 asautins Exp $ */
>
> /* TODO list:
> *
> @@ -620,7 +620,7 @@
>
> php_info_print_table_start();
> php_info_print_table_row(2, "OCI8 Support", "enabled");
> - php_info_print_table_row(2, "Revision", "$Revision: 1.151 $");
> + php_info_print_table_row(2, "Revision", "$Revision: 1.152 $");
> #ifndef PHP_WIN32
> php_info_print_table_row(2, "Oracle Version", PHP_OCI8_VERSION );
> php_info_print_table_row(2, "Compile-time ORACLE_HOME", PHP_OCI8_DIR );
> @@ -4458,6 +4458,7 @@
> OCINumber num;
> OCIString *ocistr = (OCIString *)0;
> OCIInd new_ind = OCI_IND_NOTNULL;
> + OCIInd null_ind = OCI_IND_NULL;
> OCIDate dt;
> int inx;
> double ndx;
> @@ -4472,6 +4473,26 @@
> WRONG_PARAM_COUNT;
> }
>
> + /*
> + * Handle NULLS. For consistency with the rest of the OCI8 library, when
> + * a value passed in is a 0 length string, consider it a null
> + */
> + convert_to_string_ex(arg);
> + if((*arg)->value.str.len == 0) {
> + CALL_OCI_RETURN(connection->error, OCICollAppend(
> + OCI(pEnv),
> + connection->pError,
> + (dword *)0,
> + &null_ind,
> + coll->coll));
> + if (connection->error) {
> + oci_error(connection->pError, "OCICollAppend - NULL", connection->error);
> + RETURN_FALSE;
> + }
> +
> + RETURN_TRUE;
> + }
> +
> switch(coll->element_typecode) {
> case OCI_TYPECODE_DATE:
> convert_to_string_ex(arg);
> @@ -4719,6 +4740,7 @@
> oci_collection *coll;
> OCINumber num;
> OCIInd new_ind = OCI_IND_NOTNULL;
> + OCIInd null_ind = OCI_IND_NULL;
> ub4 ndx;
> int inx;
> OCIString *ocistr = (OCIString *)0;
> @@ -4743,6 +4765,29 @@
> oci_error(connection->pError, "OCICollAssignElem", connection->error);
> RETURN_FALSE;
> }
> +
> + /*
> + * Handle NULLS. For consistency with the rest of the OCI8 library, when
> + * a value passed in is a 0 length string, consider it a null
> + */
> + convert_to_string_ex(val);
> +
> + if((*val)->value.str.len == 0) {
> + CALL_OCI_RETURN(connection->error, OCICollAssignElem(
> + OCI(pEnv),
> + connection->pError,
> + ndx,
> + (dword *)0,
> + &null_ind,
> + coll->coll));
> + if (connection->error) {
> + oci_error(connection->pError, "OCICollAssignElem - NULL",
> connection->error);
> + RETURN_FALSE;
> + }
> +
> + RETURN_TRUE;
> + }
> +
> switch(coll->element_typecode) {
> case OCI_TYPECODE_DATE:
> convert_to_string_ex(val);
>
>
>
> --
> PHP CVS Mailing List (http://www.php.net/)
> To unsubscribe, e-mail: php-cvs-unsubscribe@lists.php.net
> For additional commands, e-mail: php-cvs-help@lists.php.net
> To contact the list administrators, e-mail: php-list-admin@lists.php.net
>