Update of /cvsroot/monetdb/pathfinder/src/sqlhelpers/db2tools
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv28671

Modified Files:
        pfcreatetables.sh pfloadtables.sh 
Log Message:


Integrating the support of namespaces in the helper scripts.


Index: pfcreatetables.sh
===================================================================
RCS file: 
/cvsroot/monetdb/pathfinder/src/sqlhelpers/db2tools/pfcreatetables.sh,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- pfcreatetables.sh   26 Sep 2007 08:38:45 -0000      1.2
+++ pfcreatetables.sh   11 Jan 2008 14:38:33 -0000      1.3
@@ -8,6 +8,7 @@
 DEBUG=0
 
 TAB_NAMES="names"
+TAB_URIS="uris"
 TAB_DOC="doc"
 TAB_XMLDOC="xmldoc"
 
@@ -86,15 +87,37 @@
     return ${EFLAG}
 }
 
+function create_uris {
+    #check parameter list
+    if [ ${#} -ne 2]; then
+       error "Usage: ${0} <schema> <tabname>"
+    fi
+
+    SCHEMA=${1}
+    TABNAME=${2}
+
+    # set schema to ours
+    ${DB2} "set current schema ${SCHEMA}"
+
+    # create the uris-table
+    ${DB2} -t<<EOT
+CREATE TABLE ${TABNAME}(uriid INT NOT NULL PRIMARY KEY,
+                   uri    VARCHAR(100) NOT NULL);
+EOT
+    EFLAG=${?}
+    return ${EFLAG}
+}
+
 function create_doc {
     #check parameter list
-    if [ ${#} -ne 3 ]; then
-        error "Usage: ${0} <schema> <tabname> <namesname>"
+    if [ ${#} -ne 4 ]; then
+        error "Usage: ${0} <schema> <tabname> <namesname> <urisname>"
     fi
 
     SCHEMA=${1}
     TABNAME=${2}
     NAMESNAME=${3}
+    URISNAME=${4}
 
     ${DB2} "set current schema ${SCHEMA}"
     
@@ -106,8 +129,10 @@
                  nameid INT,
                  value VARCHAR(100),
                  guide INT NOT NULL,
+                 uriid  INT,
                  pre_plus_size INT GENERATED ALWAYS AS (pre + size),
-                 FOREIGN KEY (nameid) references ${NAMESNAME}(nameid));
+                 FOREIGN KEY (nameid) REFERENCES ${NAMESNAME}(nameid),
+                 FOREIGN KEY (uriid)  REFERENCES ${URISNAME}(uriid));
 EOT
     EFLAG=${?}
     return ${EFLAG}
@@ -115,26 +140,30 @@
 
 function create_xmldoc {
     #check parameter list
-    if [ ${#} -ne 4 ]; then
-        error "Usage: ${0} <schema> <tabname> <docname> <namesname>"
+    if [ ${#} -ne 5 ]; then
+        error "Usage: ${0} <schema> <tabname> <docname> <namesname> <urisname>"
     fi
 
     SCHEMA=${1}
     TABNAME=${2}
     DOCNAME=${3}
-    NAMENAME=${4}
+    NAMESNAME=${4}
+    URISNAME=${5}
 
     ${DB2} "set current schema ${SCHEMA}"
 
     ${DB2} -t<<EOT
 CREATE VIEW ${TABNAME}(pre, size, level, kind, guide,
-                   nameid, value, name) AS
+                       value, name, uri, nameid, uriid) AS
 (SELECT pre, size, level, kind, guide,
-        doc.nameid, value, name
+        value, name, uri, doc.nameid, doc.uriid
    FROM ${DOCNAME} AS doc
         LEFT OUTER JOIN
         ${NAMESNAME} AS names
-          ON doc.nameid = names.nameid);
+          ON doc.nameid = names.nameid
+        LEFT OUTER JOIN
+        ${URISNAME} AS uris
+          ON doc.uriid = uris.uriid);
 EOT
     EFLAG=${?}
     return ${EFLAG}
@@ -165,6 +194,20 @@
     return ${EFLAG}
 }
 
+function drop_uris {
+    #check parameter list
+    if [ ${#} -ne 1 ]; then
+        error "Usage: ${0} <schema>"
+    fi
+
+    SCHEMA=${1}
+
+    ${DB2} "set current schema ${SCHEMA}"
+    drop_table "${TAB_URIS}" 
+    EFLAG=${?}
+    return ${EFLAG}
+}
+
 function drop_doc {
     #check parameter list
     if [ ${#} -ne 1 ]; then
@@ -230,11 +273,15 @@
            EFLAG=${?};
            out -ne "Creating ${SCHEMA}.${TAB_NAMES} ... "; fail ${EFLAG};
 
-           create_doc ${SCHEMA} ${TAB_DOC} ${TAB_NAMES};
+           create_uris ${SCHEMA} ${TAB_URIS};
+           EFLAG=${?};
+           out -ne "Creating ${SCHEMA}.${TAB_URIS} ... "; fail ${EFLAG};
+
+           create_doc ${SCHEMA} ${TAB_DOC} ${TAB_NAMES} ${TAB_URIS};
            EFLAG=${?};
            out -ne "Creating ${SCHEMA}.${TAB_DOC} ... "; fail ${EFLAG};
 
-           create_xmldoc ${SCHEMA} ${TAB_XMLDOC} ${TAB_DOC} ${TAB_NAMES};
+           create_xmldoc ${SCHEMA} ${TAB_XMLDOC} ${TAB_DOC} ${TAB_NAMES} 
${TAB_URIS};
            EFLAG=${?};
            out -ne "Creating ${SCHEMA}.${TAB_XMLDOC} ... "; fail ${EFLAG};
            ;;
@@ -250,6 +297,10 @@
            drop_names ${SCHEMA}
            EFLAG=${?}
            out -ne "Dropping ${SCHEMA}.${TAB_NAMES} ... "; fail ${EFLAG};
+
+           drop_uris ${SCHEMA}
+           EFLAG=${?}
+           out -ne "Dropping ${SCHEMA}.${TAB_URIS} ... "; fail ${EFLAG};
            ;;
    *)      print_help; 
            exit 1;

Index: pfloadtables.sh
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/src/sqlhelpers/db2tools/pfloadtables.sh,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- pfloadtables.sh     26 Sep 2007 08:38:45 -0000      1.2
+++ pfloadtables.sh     11 Jan 2008 14:38:33 -0000      1.3
@@ -8,6 +8,7 @@
 DEBUG=0
 
 TAB_NAMES="names"
+TAB_URIS="uris"
 TAB_DOC="doc"
 TAB_XMLDOC="xmldoc"
 
@@ -109,12 +110,13 @@
     out -e "<schema>:\tName of the Schema the content should be 
placed/removed."
     out -e "<enc_file>:\tEncoded XML-Document"
     out -e "<name_file>:\tEncoded Name-File "
+    out -e "<uri_file>:\tEncoded Namespace-File"
 }
 
 ################################################
 # MAIN
 
-if [ $# -ne 4 ]; then
+if [ $# -ne 5 ]; then
     print_help;
     exit 0;
 fi     
@@ -123,6 +125,7 @@
 SCHEMA=${2}
 LFILE=${3}
 NFILE=${4}
+UFILE=${5}
 
 ${DB2} "connect to ${DATABASE}"
 EFLAG=${?}
@@ -134,6 +137,10 @@
 EFLAG=${?};
 out -ne "Loading ${SCHEMA}.${TAB_NAMES} ... "; fail ${EFLAG};
 
+load_table "${UFILE}" "${SCHEMA}" "${TAB_URIS}";
+EFLAG=${?};
+out -ne "Loading ${SCHEMA}.${TAB_URS} ... "; fail ${EFLAG};
+
 load_table ${LFILE} "${SCHEMA}" "${TAB_DOC}";
 EFLAG=${?};
 out -ne "Loading ${SCHEMA}.${TAB_DOC} ... "; fail ${EFLAG};


-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
Monetdb-pf-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-pf-checkins

Reply via email to