Changeset: 72564c76e9a9 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=72564c76e9a9
Modified Files:
        sql/backends/monet5/sql_scenario.c
Branch: Oct2020
Log Message:

Sort registered SQL modules before running them.
This makes that the two digit sort order is actually used.


diffs (43 lines):

diff --git a/sql/backends/monet5/sql_scenario.c 
b/sql/backends/monet5/sql_scenario.c
--- a/sql/backends/monet5/sql_scenario.c
+++ b/sql/backends/monet5/sql_scenario.c
@@ -49,15 +49,24 @@
 
 #define MAX_SQL_MODULES 128
 static int sql_modules = 0;
-static const char *sql_module_name[MAX_SQL_MODULES] = {0};
-static const unsigned char *sql_module_code[MAX_SQL_MODULES] = {0};
+static struct sql_module {
+       const char *name;
+       const unsigned char *code;
+} sql_module[MAX_SQL_MODULES];
+
+static int
+sql_module_compare(const void *a, const void *b)
+{
+       const struct sql_module *l = a, *r = b;
+       return strcmp(l->name, r->name);
+}
 
 void
 sql_register(const char *name, const unsigned char *code)
 {
        assert (sql_modules < MAX_SQL_MODULES);
-       sql_module_name[sql_modules] = name;
-       sql_module_code[sql_modules] = code;
+       sql_module[sql_modules].name = name;
+       sql_module[sql_modules].code = code;
        sql_modules++;
 }
 
@@ -426,8 +435,9 @@ SQLinit(Client c)
                SQLnewcatalog = 0;
                maybeupgrade = 0;
 
+               qsort(sql_module, sql_modules, sizeof(sql_module[0]), 
sql_module_compare);
                for (int i = 0; i < sql_modules && !msg; i++) {
-                       const char *createdb_inline = (const 
char*)sql_module_code[i];
+                       const char *createdb_inline = (const 
char*)sql_module[i].code;
 
                        msg = SQLstatementIntern(c, createdb_inline, 
"sql.init", TRUE, FALSE, NULL);
                        if (m->sa)
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to