]> granicus.if.org Git - php/commitdiff
@- Fixed selecting nested-tables in OCI8. (Thies)
authorThies C. Arntzen <thies@php.net>
Fri, 12 Nov 1999 14:31:01 +0000 (14:31 +0000)
committerThies C. Arntzen <thies@php.net>
Fri, 12 Nov 1999 14:31:01 +0000 (14:31 +0000)
fixed mested-tables again (broke it when resourcified the driver)

ext/oci8/oci8.c

index c96ae51f657a6131c6cfe6b728e4b61c386b0596..cedeb064e5010d175934039f7f3b935ec42fe9e5 100644 (file)
@@ -816,8 +816,9 @@ oci_make_pval(pval *value,oci_statement *statement,oci_out_column *column, char
        }
 
        if (column->is_cursor) { /* REFCURSOR -> simply return the statement id */
-               value->type = IS_LONG;
+               value->type = IS_RESOURCE;
                value->value.lval = column->stmtid;
+               zend_list_addref(column->stmtid);
        } else if (column->is_descr) {
                if ((column->data_type != SQLT_RDD) && (mode & OCI_RETURN_LOBS)) {
                        /* OCI_RETURN_LOBS means that we want the content of the LOB back instead of the locator */
@@ -1996,10 +1997,18 @@ _oci_close_server(oci_server *server)
 
        if (server->open) {
                if (server->pServer && OCI(pError)) {
+#if APACHE
+                       void (*handler) (int);
+                       handler = signal(SIGCHLD, SIG_DFL);
+#endif
                        OCI(error) = 
                                OCIServerDetach(server->pServer,
                                                                OCI(pError),
                                                                OCI_DEFAULT);
+
+#if APACHE
+                       signal(SIGCHLD,handler);
+#endif
                        
                        if (OCI(error)) {
                                oci_error(OCI(pError), "oci_close_server OCIServerDetach", OCI(error));