Changeset: 83109069c4de for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=83109069c4de
Modified Files:
geom/sql/40_geom.sql
geom/sql/Makefile.ag
geom/sql/geom.sql
monetdb5/mal/mal_import.mx
monetdb5/mal/mal_linker.mx
sql/backends/monet5/sql_scenario.mx
sql/sql/10_math.sql
sql/sql/11_times.sql
sql/sql/12_url.sql
sql/sql/13_date.sql
sql/sql/14_inet.sql
sql/sql/15_history.sql
sql/sql/16_tracelog.sql
sql/sql/17_compress.sql
sql/sql/18_dictionary.sql
sql/sql/19_cluster.sql
sql/sql/20_vacuum.sql
sql/sql/21_dependency_functions.sql
sql/sql/22_clients.sql
sql/sql/23_skyserver.sql
sql/sql/24_zorder.sql
sql/sql/30_rdf.sql
sql/sql/99_system.sql
sql/sql/Makefile.ag
sql/sql/clients.sql
sql/sql/cluster.sql
sql/sql/compress.sql
sql/sql/date.sql
sql/sql/dependency_functions.sql
sql/sql/dictionary.sql
sql/sql/history.sql
sql/sql/inet.sql
sql/sql/math.sql
sql/sql/rdf.sql
sql/sql/skyserver.sql
sql/sql/system.sql
sql/sql/times.sql
sql/sql/tracelog.sql
sql/sql/url.sql
sql/sql/vacuum.sql
sql/sql/zorder.sql
Branch: default
Log Message:
Implemented createdb.sql as a directory.
If "createdb" is a directory in the search path, execute all .sql
files in that directory in order when initializing a new database.
This way it is easy to drop in extra SQL modules.
Also removed definitions from geom.sql (renamed to 40_geom.sql) that
don't actually work.
diffs (258 lines):
diff --git a/geom/sql/geom.sql b/geom/sql/40_geom.sql
rename from geom/sql/geom.sql
rename to geom/sql/40_geom.sql
--- a/geom/sql/geom.sql
+++ b/geom/sql/40_geom.sql
@@ -43,11 +43,11 @@
CREATE FUNCTION Point(x double,y double) RETURNS Point external name
geom.point;
-CREATE FUNCTION Point(g Geometry) RETURNS Point external name geom.point;
-CREATE FUNCTION Curve(g Geometry) RETURNS Curve external name geom.curve;
-CREATE FUNCTION LineString(g Geometry) RETURNS LineString external name
geom.linestring;
-CREATE FUNCTION Surface(g Geometry) RETURNS Surface external name geom.surface;
-CREATE FUNCTION Polygon(g Geometry) RETURNS Polygon external name geom.polygon;
+-- CREATE FUNCTION Point(g Geometry) RETURNS Point external name geom.point;
+-- CREATE FUNCTION Curve(g Geometry) RETURNS Curve external name geom.curve;
+-- CREATE FUNCTION LineString(g Geometry) RETURNS LineString external name
geom.linestring;
+-- CREATE FUNCTION Surface(g Geometry) RETURNS Surface external name
geom.surface;
+-- CREATE FUNCTION Polygon(g Geometry) RETURNS Polygon external name
geom.polygon;
-- ogc basic methods
CREATE FUNCTION Dimension(g Geometry) RETURNS integer external name
geom."Dimension";
diff --git a/geom/sql/Makefile.ag b/geom/sql/Makefile.ag
--- a/geom/sql/Makefile.ag
+++ b/geom/sql/Makefile.ag
@@ -17,8 +17,8 @@
headers_sql = {
HEADERS = sql
- DIR = datadir/MonetDB/sql
- SOURCES = geom.sql
+ DIR = libdir/monetdb5/createdb
+ SOURCES = 40_geom.sql
}
EXTRA_DIST_DIR = Tests
diff --git a/monetdb5/mal/mal_import.mx b/monetdb5/mal/mal_import.mx
--- a/monetdb5/mal/mal_import.mx
+++ b/monetdb5/mal/mal_import.mx
@@ -205,8 +205,10 @@
if ((filename = malResolveFile(name)) != NULL) {
name = filename;
- while ((p = strchr(filename, PATH_SEP)) != NULL) {
- *p = '\0';
+ do {
+ p = strchr(filename, PATH_SEP);
+ if (p)
+ *p = '\0';
c->srcFile = filename;
c->yycur = 0;
c->bak = NULL;
@@ -215,16 +217,9 @@
parseMAL(c, c->curprg);
bstream_destroy(c->fdin);
}
- filename = p + 1;
- }
- c->srcFile = filename;
- c->yycur = 0;
- c->bak = NULL;
- if ((s = malLoadScript(c, filename, &c->fdin)) == 0) {
- cfdin = c->fdin;
- parseMAL(c, c->curprg);
- bstream_destroy(cfdin);
- }
+ if (p)
+ filename = p + 1;
+ } while (p);
GDKfree(name);
c->fdin = NULL;
}
diff --git a/monetdb5/mal/mal_linker.mx b/monetdb5/mal/mal_linker.mx
--- a/monetdb5/mal/mal_linker.mx
+++ b/monetdb5/mal/mal_linker.mx
@@ -65,7 +65,7 @@
#define MONET64 1
mal_export MALfcn getAddress(str filename, str modnme, str fcnname,int silent);
mal_export char *MSP_locate_script(const char *mod_name);
-mal_export char *MSP_locate_sqlscript(const char *mod_name);
+mal_export char *MSP_locate_sqlscript(const char *mod_name, bit recurse);
mal_export char *MSP_locate_file(const char *mod_name);
mal_export str loadLibrary(str modulename, int flag);
mal_export void unloadLibraries(void);
@@ -346,7 +346,7 @@
#define MAXMULTISCRIPT 48
static char *
-locate_file(const char *basename, const char *ext, const bit recurse)
+locate_file(const char *basename, const char *ext, bit recurse)
{
char *mod_path = GDKgetenv("monet_mod_path");
char *fullname;
@@ -455,10 +455,10 @@
}
char *
-MSP_locate_sqlscript(const char *filename)
+MSP_locate_sqlscript(const char *filename, bit recurse)
{
/* no directory semantics (yet) */
- return locate_file(filename, SQL_EXT, 0);
+ return locate_file(filename, SQL_EXT, recurse);
}
char *
diff --git a/sql/backends/monet5/sql_scenario.mx
b/sql/backends/monet5/sql_scenario.mx
--- a/sql/backends/monet5/sql_scenario.mx
+++ b/sql/backends/monet5/sql_scenario.mx
@@ -474,25 +474,37 @@
SQLnewcatalog = 0;
snprintf(path, PATHLENGTH, "createdb");
slash_2_dir_sep(path);
- fullname = MSP_locate_sqlscript(path);
+ fullname = MSP_locate_sqlscript(path, 1);
if (fullname) {
- fd = open_rastream(fullname);
+ str filename = fullname;
+ str p;
+ fprintf(stdout, "# SQL catalog created, loading sql
scripts once\n");
+ do {
+ p = strchr(filename, PATH_SEP);
+ if (p)
+ *p = '\0';
+ fd = open_rastream(filename);
+ if (p)
+ filename = p + 1;
+
+ if (fd) {
+ str msg = MAL_SUCCEED;
+ bfd = bstream_create(fd, 128 * BLOCK);
+ if (bfd && bstream_next(bfd) >= 0)
+ msg = SQLstatementIntern(c,
&bfd->buf, "sql.init", TRUE, FALSE);
+ bstream_destroy(bfd);
+ if (m->sa)
+ sa_destroy(m->sa);
+ m->sa = NULL;
+ if (msg) {
+ GDKfree(fullname);
+ return msg;
+ }
+ }
+ } while (p);
GDKfree(fullname);
-
- if (fd) {
- str msg = MAL_SUCCEED;
- bfd = bstream_create(fd, 128 * BLOCK);
- fprintf(stdout, "# SQL catalog created, loading
sql scripts once\n");
- if (bfd && bstream_next(bfd) >= 0)
- msg = SQLstatementIntern(c, &bfd->buf,
"sql.init", TRUE, FALSE);
- bstream_destroy(bfd);
- if (m->sa)
- sa_destroy(m->sa);
- m->sa = NULL;
- return msg;
- }
- }
- fprintf(stderr, "!could not read createdb.sql\n");
+ } else
+ fprintf(stderr, "!could not read createdb.sql\n");
}
fflush(stdout);
fflush(stderr);
@@ -824,7 +836,7 @@
str *expr;
mvc *m;
- fullname= MSP_locate_sqlscript(*name);
+ fullname= MSP_locate_sqlscript(*name, 0);
if ( fullname == NULL)
fullname= *name;
fd = open_rastream(fullname);
diff --git a/sql/sql/math.sql b/sql/sql/10_math.sql
rename from sql/sql/math.sql
rename to sql/sql/10_math.sql
diff --git a/sql/sql/times.sql b/sql/sql/11_times.sql
rename from sql/sql/times.sql
rename to sql/sql/11_times.sql
diff --git a/sql/sql/url.sql b/sql/sql/12_url.sql
rename from sql/sql/url.sql
rename to sql/sql/12_url.sql
diff --git a/sql/sql/date.sql b/sql/sql/13_date.sql
rename from sql/sql/date.sql
rename to sql/sql/13_date.sql
diff --git a/sql/sql/inet.sql b/sql/sql/14_inet.sql
rename from sql/sql/inet.sql
rename to sql/sql/14_inet.sql
diff --git a/sql/sql/history.sql b/sql/sql/15_history.sql
rename from sql/sql/history.sql
rename to sql/sql/15_history.sql
diff --git a/sql/sql/tracelog.sql b/sql/sql/16_tracelog.sql
rename from sql/sql/tracelog.sql
rename to sql/sql/16_tracelog.sql
diff --git a/sql/sql/compress.sql b/sql/sql/17_compress.sql
rename from sql/sql/compress.sql
rename to sql/sql/17_compress.sql
diff --git a/sql/sql/dictionary.sql b/sql/sql/18_dictionary.sql
rename from sql/sql/dictionary.sql
rename to sql/sql/18_dictionary.sql
diff --git a/sql/sql/cluster.sql b/sql/sql/19_cluster.sql
rename from sql/sql/cluster.sql
rename to sql/sql/19_cluster.sql
diff --git a/sql/sql/vacuum.sql b/sql/sql/20_vacuum.sql
rename from sql/sql/vacuum.sql
rename to sql/sql/20_vacuum.sql
diff --git a/sql/sql/dependency_functions.sql
b/sql/sql/21_dependency_functions.sql
rename from sql/sql/dependency_functions.sql
rename to sql/sql/21_dependency_functions.sql
diff --git a/sql/sql/clients.sql b/sql/sql/22_clients.sql
rename from sql/sql/clients.sql
rename to sql/sql/22_clients.sql
diff --git a/sql/sql/skyserver.sql b/sql/sql/23_skyserver.sql
rename from sql/sql/skyserver.sql
rename to sql/sql/23_skyserver.sql
diff --git a/sql/sql/zorder.sql b/sql/sql/24_zorder.sql
rename from sql/sql/zorder.sql
rename to sql/sql/24_zorder.sql
diff --git a/sql/sql/rdf.sql b/sql/sql/30_rdf.sql
rename from sql/sql/rdf.sql
rename to sql/sql/30_rdf.sql
diff --git a/sql/sql/system.sql b/sql/sql/99_system.sql
rename from sql/sql/system.sql
rename to sql/sql/99_system.sql
diff --git a/sql/sql/Makefile.ag b/sql/sql/Makefile.ag
--- a/sql/sql/Makefile.ag
+++ b/sql/sql/Makefile.ag
@@ -19,21 +19,21 @@
headers_sql = {
HEADERS = sql
+ DIR = libdir/monetdb5/createdb
+ SOURCES = 10_math.sql 11_times.sql 12_url.sql 13_date.sql 14_inet.sql
15_history.sql 16_tracelog.sql 17_compress.sql 18_dictionary.sql 19_cluster.sql
20_vacuum.sql 21_dependency_functions.sql 22_clients.sql 23_skyserver.sql
24_zorder.sql 25_debug.sql 99_system.sql
+}
+
+headers_moresql = {
+ HEADERS = sql
DIR = libdir/monetdb5
SOURCES = \
- createdb.mx \
cache.sql octopus.sql parts.sql \
- replication.sql temporal.sql vacuum.sql
+ replication.sql temporal.sql
}
headers_rdf = {
COND = HAVE_RAPTOR
HEADERS = sql
- DIR = libdir/monetdb5
- SOURCES = rdf.sql
+ DIR = libdir/monetdb5/createdb
+ SOURCES = 30_rdf.sql
}
-
-EXTRA_DIST = clients.sql cluster.sql compress.sql date.sql \
- dependency_functions.sql dictionary.sql history.sql inet.sql \
- math.sql mtime.sql skyserver.sql system.sql times.sql \
- tracelog.sql url.sql zorder.sql
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list