Changeset: c623513b7400 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c623513b7400
Modified Files:
        tools/monetdbe/monetdbe.c
Branch: default
Log Message:

some more cleanup


diffs (105 lines):

diff --git a/tools/monetdbe/monetdbe.c b/tools/monetdbe/monetdbe.c
--- a/tools/monetdbe/monetdbe.c
+++ b/tools/monetdbe/monetdbe.c
@@ -110,16 +110,17 @@ static bool monetdbe_embedded_initialize
 static char *monetdbe_embedded_url = NULL;
 static int open_dbs = 0;
 
-static char* monetdbe_cleanup_result_internal(monetdbe_database_internal 
*mdbe, monetdbe_result* result);
+static char* monetdbe_cleanup_result_internal(monetdbe_database_internal 
*mdbe, monetdbe_result_internal* res);
 
 static char*
 commit_action(mvc* m, monetdbe_database_internal *mdbe, monetdbe_result 
**result, monetdbe_result_internal *res_internal)
 {
        /* handle autocommit */
        char *commit_msg = SQLautocommit(m);
+
        if ((mdbe->msg != MAL_SUCCEED || commit_msg != MAL_SUCCEED)) {
                if (res_internal) {
-                       char* other = monetdbe_cleanup_result_internal(mdbe, 
(monetdbe_result*) res_internal);
+                       char* other = monetdbe_cleanup_result_internal(mdbe, 
res_internal);
                        if (other)
                                freeException(other);
                }
@@ -179,31 +180,25 @@ monetdbe_destroy_column(monetdbe_column*
 }
 
 static char*
-monetdbe_cleanup_result_internal(monetdbe_database_internal *mdbe, 
monetdbe_result* result)
+monetdbe_cleanup_result_internal(monetdbe_database_internal *mdbe, 
monetdbe_result_internal* result)
 {
-       monetdbe_result_internal* res = (monetdbe_result_internal *) result;
        mvc *m = NULL;
 
-       assert(!res || !res->mdbe || res->mdbe == mdbe);
+       assert(!result || !result->mdbe || result->mdbe == mdbe);
        if ((mdbe->msg = validate_database_handle(mdbe, 
"monetdbe.monetdbe_cleanup_result_internal")) != MAL_SUCCEED)
                return mdbe->msg;
        if ((mdbe->msg = getSQLContext(mdbe->c, NULL, &m, NULL)) != MAL_SUCCEED)
                goto cleanup;
 
-       if (!result) {
-               mdbe->msg = createException(MAL, 
"monetdbe.monetdbe_cleanup_result_internal", "Parameter result is NULL");
-               goto cleanup;
-       }
+       if (result->monetdbe_resultset)
+               res_tables_destroy(result->monetdbe_resultset);
 
-       if (res->monetdbe_resultset)
-               res_tables_destroy(res->monetdbe_resultset);
-
-       if (res->converted_columns) {
-               for (size_t i = 0; i < res->res.ncols; i++)
-                       monetdbe_destroy_column(res->converted_columns[i]);
-               GDKfree(res->converted_columns);
+       if (result->converted_columns) {
+               for (size_t i = 0; i < result->res.ncols; i++)
+                       monetdbe_destroy_column(result->converted_columns[i]);
+               GDKfree(result->converted_columns);
        }
-       GDKfree(res);
+       GDKfree(result);
 cleanup:
        return commit_action(m, mdbe, NULL, NULL);
 }
@@ -355,8 +350,10 @@ monetdbe_close_internal(monetdbe_databas
        if (!mdbe)
                return 0;
 
-       if (mdbe->msg)
+       if (mdbe->msg) {
                freeException(mdbe->msg);
+               mdbe->msg = NULL;
+       }
        if (validate_database_handle_noerror(mdbe)) {
                open_dbs--;
                SQLexitClient(mdbe->c);
@@ -398,12 +395,6 @@ monetdbe_open_internal(monetdbe_database
                goto cleanup;
        }
 cleanup:
-       if (mdbe->msg && mdbe->c) {
-               /* although startup failed close (cleanup) should be called by 
the application */
-               // char* other = monetdbe_close_internal(mdbe);
-               // if (other)
-               //      freeException(other);
-       }
        if (mdbe->msg)
                return -2;
        return 0;
@@ -849,9 +840,14 @@ char*
 monetdbe_cleanup_result(monetdbe_database dbhdl, monetdbe_result* result)
 {
        monetdbe_database_internal *mdbe = (monetdbe_database_internal*)dbhdl;
+       monetdbe_result_internal* res = (monetdbe_result_internal *) result;
 
        MT_lock_set(&embedded_lock);
-       mdbe->msg = monetdbe_cleanup_result_internal(mdbe, result);
+       if (!result) {
+               mdbe->msg = createException(MAL, 
"monetdbe.monetdbe_cleanup_result_internal", "Parameter result is NULL");
+       } else {
+               mdbe->msg = monetdbe_cleanup_result_internal(mdbe, res);
+       }
        MT_lock_unset(&embedded_lock);
        return mdbe->msg;
 }
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to