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