Changeset: 509848eaf33d for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/509848eaf33d
Modified Files:
        clients/mapiclient/dump.c
        clients/mapiclient/msqldump.h
Branch: default
Log Message:

Code deduplication.


diffs (267 lines):

diff --git a/clients/mapiclient/dump.c b/clients/mapiclient/dump.c
--- a/clients/mapiclient/dump.c
+++ b/clients/mapiclient/dump.c
@@ -1213,33 +1213,18 @@ bailout:
        return 1;
 }
 
-int
+static int
 describe_table(Mapi mid, const char *schema, const char *tname,
               stream *toConsole, bool foreign, bool databaseDump)
 {
        int cnt, table_id = 0;
        MapiHdl hdl = NULL;
-       char *query = NULL, *view = NULL, *remark = NULL, *sname = NULL, *s = 
NULL, *t = NULL;
+       char *query = NULL, *view = NULL, *remark = NULL, *s = NULL, *t = NULL;
        int type = 0;
        int ca = 0;
        size_t maxquerylen;
        bool hashge;
 
-       if (schema == NULL) {
-               if ((sname = strchr(tname, '.')) != NULL) {
-                       size_t len = sname - tname + 1;
-
-                       sname = malloc(len);
-                       if (sname == NULL)
-                               goto bailout;
-                       strcpy_len(sname, tname, len);
-                       tname += len;
-               } else if ((sname = get_schema(mid)) == NULL) {
-                       return 1;
-               }
-               schema = sname;
-       }
-
        hashge = has_hugeint(mid);
 
        s = sescape(schema);
@@ -1537,8 +1522,6 @@ describe_table(Mapi mid, const char *sch
                free(remark);
        if (query != NULL)
                free(query);
-       if (sname != NULL)
-               free(sname);
        return 0;
 
 bailout:
@@ -1559,8 +1542,6 @@ bailout2:
                free(view);
        if (remark)
                free(remark);
-       if (sname != NULL)
-               free(sname);
        if (query != NULL)
                free(query);
        if (s != NULL)
@@ -1738,8 +1719,8 @@ describe_schema(Mapi mid, const char *sn
 }
 
 static int
-dump_table_data(Mapi mid, const char *schema, const char *tname, stream 
*toConsole,
-                               bool useInserts, bool noescape)
+dump_table_data(Mapi mid, const char *schema, const char *tname,
+                               stream *toConsole, bool useInserts, bool 
noescape)
 {
        int cnt, i;
        int64_t rows;
@@ -1747,24 +1728,8 @@ dump_table_data(Mapi mid, const char *sc
        char *query = NULL;
        size_t maxquerylen;
        unsigned char *string = NULL;
-       char *sname = NULL;
        char *s, *t;
 
-       if (schema == NULL) {
-               if ((sname = strchr(tname, '.')) != NULL) {
-                       size_t len = sname - tname + 1;
-
-                       sname = malloc(len);
-                       if (sname == NULL)
-                               goto bailout;
-                       strcpy_len(sname, tname, len);
-                       tname += len;
-               } else if ((sname = get_schema(mid)) == NULL) {
-                       goto bailout;
-               }
-               schema = sname;
-       }
-
        maxquerylen = 5120 + 2*strlen(tname) + 2*strlen(schema);
        query = malloc(maxquerylen);
        if (query == NULL)
@@ -1938,8 +1903,6 @@ dump_table_data(Mapi mid, const char *sc
                mapi_close_handle(hdl);
        if (query != NULL)
                free(query);
-       if (sname != NULL)
-               free(sname);
        return 0;
 
 bailout:
@@ -1955,8 +1918,6 @@ bailout:
                mapi_explain(mid, stderr);
        else if (mnstr_errnr(toConsole) == MNSTR_NO__ERROR)
                fprintf(stderr, "malloc failure\n");
-       if (sname != NULL)
-               free(sname);
        if (query != NULL)
                free(query);
        if (string != NULL)
@@ -1967,7 +1928,6 @@ bailout:
 static int
 dump_table_storage(Mapi mid, const char *schema, const char *tname, stream 
*toConsole)
 {
-       char *sname = NULL;
        char *query = NULL;
        size_t maxquerylen;
        MapiHdl hdl = NULL;
@@ -1975,21 +1935,6 @@ dump_table_storage(Mapi mid, const char 
        char *t = NULL;
        int rc = 1;
 
-       if (schema == NULL) {
-               if ((sname = strchr(tname, '.')) != NULL) {
-                       size_t len = sname - tname + 1;
-
-                       sname = malloc(len);
-                       if (sname == NULL)
-                               goto bailout;
-                       strcpy_len(sname, tname, len);
-                       tname += len;
-               } else if ((sname = get_schema(mid)) == NULL) {
-                       goto bailout;
-               }
-               schema = sname;
-       }
-
        maxquerylen = 5120 + 2*strlen(tname) + 2*strlen(schema);
        query = malloc(maxquerylen);
        s = sescape(schema);
@@ -2025,14 +1970,12 @@ dump_table_storage(Mapi mid, const char 
        free(s);
        free(t);
        mapi_close_handle(hdl);         /* may be NULL */
-       free(sname);                            /* may be NULL */
        return rc;
 }
 
 static int
 dump_table_access(Mapi mid, const char *schema, const char *tname, stream 
*toConsole)
 {
-       char *sname = NULL;
        char *query = NULL;
        size_t maxquerylen;
        MapiHdl hdl = NULL;
@@ -2040,21 +1983,6 @@ dump_table_access(Mapi mid, const char *
        char *t = NULL;
        int rc = 1;
 
-       if (schema == NULL) {
-               if ((sname = strchr(tname, '.')) != NULL) {
-                       size_t len = sname - tname + 1;
-
-                       sname = malloc(len);
-                       if (sname == NULL)
-                               goto bailout;
-                       strcpy_len(sname, tname, len);
-                       tname += len;
-               } else if ((sname = get_schema(mid)) == NULL) {
-                       goto bailout;
-               }
-               schema = sname;
-       }
-
        maxquerylen = 5120 + 2*strlen(tname) + 2*strlen(schema);
        query = malloc(maxquerylen);
        s = sescape(schema);
@@ -2090,14 +2018,12 @@ dump_table_access(Mapi mid, const char *
        free(s);
        free(t);
        mapi_close_handle(hdl);         /* may be NULL */
-       free(sname);                            /* may be NULL */
        return rc;
 }
 
 static int
 dump_table_defaults(Mapi mid, const char *schema, const char *tname, stream 
*toConsole)
 {
-       char *sname = NULL;
        char *query = NULL;
        size_t maxquerylen;
        MapiHdl hdl = NULL;
@@ -2105,21 +2031,6 @@ dump_table_defaults(Mapi mid, const char
        char *t = NULL;
        int rc = 1;
 
-       if (schema == NULL && tname != NULL) {
-               if ((sname = strchr(tname, '.')) != NULL) {
-                       size_t len = sname - tname + 1;
-
-                       sname = malloc(len);
-                       if (sname == NULL)
-                               goto bailout;
-                       strcpy_len(sname, tname, len);
-                       tname += len;
-               } else if ((sname = get_schema(mid)) == NULL) {
-                       goto bailout;
-               }
-               schema = sname;
-       }
-
        maxquerylen = 512;
        if (schema != NULL && tname != NULL) {
                maxquerylen += 2*strlen(tname) + 2*strlen(schema);
@@ -2169,7 +2080,6 @@ dump_table_defaults(Mapi mid, const char
        free(s);
        free(t);
        mapi_close_handle(hdl);         /* may be NULL */
-       free(sname);                            /* may be NULL */
        return rc;
 }
 
@@ -2178,8 +2088,24 @@ dump_table(Mapi mid, const char *schema,
                   bool describe, bool foreign, bool useInserts, bool 
databaseDump,
                   bool noescape)
 {
+       char *sname = NULL;
        int rc;
 
+       if (schema == NULL) {
+               if ((sname = strchr(tname, '.')) != NULL) {
+                       size_t len = sname - tname + 1;
+
+                       sname = malloc(len);
+                       if (sname == NULL)
+                               return 1;
+                       strcpy_len(sname, tname, len);
+                       tname += len;
+               } else if ((sname = get_schema(mid)) == NULL) {
+                       return 1;
+               }
+               schema = sname;
+       }
+
        rc = describe_table(mid, schema, tname, toConsole, foreign, 
databaseDump);
        if (rc == 0)
                rc = dump_table_storage(mid, schema, tname, toConsole);
@@ -2189,6 +2115,7 @@ dump_table(Mapi mid, const char *schema,
                rc = dump_table_access(mid, schema, tname, toConsole);
        if (rc == 0 && !databaseDump)
                rc = dump_table_defaults(mid, schema, tname, toConsole);
+       free(sname);                            /* may be NULL, but that's OK */
        return rc;
 }
 
diff --git a/clients/mapiclient/msqldump.h b/clients/mapiclient/msqldump.h
--- a/clients/mapiclient/msqldump.h
+++ b/clients/mapiclient/msqldump.h
@@ -10,7 +10,6 @@
  * Copyright 1997 - July 2008 CWI.
  */
 
-extern int describe_table(Mapi mid, const char *schema, const char *tname, 
stream *toConsole, bool foreign, bool databaseDump);
 extern int describe_sequence(Mapi mid, const char *schema, const char *sname, 
stream *toConsole);
 extern int describe_schema(Mapi mid, const char *sname, stream *toConsole);
 extern int dump_table(Mapi mid, const char *schema, const char *tname, stream 
*toConsole, bool describe, bool foreign, bool useInserts, bool databaseDump, 
bool noescape);
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to