r9422: 20 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
authorKevin M. Rosenberg <kevin@rosenberg.net>
Fri, 21 May 2004 03:06:38 +0000 (03:06 +0000)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Fri, 21 May 2004 03:06:38 +0000 (03:06 +0000)
        * db-oracle/make9.sh: add makefile for building with Oracle 9 client
        libraries
        * sql/table.lisp: Add logic for dealing with Oracle 10g vs. previous
        Oracle versions with the PURGE option required for drop table. This needs
        to be converted to a generic function and moved to db-oracle/oracle-sql.lisp

2

ChangeLog
db-oracle/make.sh
db-oracle/make9.sh [new file with mode: 0755]
db-oracle/oracle-loader.lisp
db-oracle/oracle-sql.lisp
sql/table.lisp

index b3254f6756afa91233b0650369c071b7af35b771..132a1087a86912c3a5a11e12e0498e4a1d123c6e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+20 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
+       * db-oracle/make9.sh: add makefile for building with Oracle 9 client
+       libraries
+       * sql/table.lisp: Add logic for dealing with Oracle 10g vs. previous
+       Oracle versions with the PURGE option required for drop table. This needs
+       to be converted to a generic function and moved to db-oracle/oracle-sql.lisp
+
 20 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk) 
        * sql/classes.lisp: remove unused PARAMS slot in SQL-IDENT-ATTRIBUTE. 
        * sql/syntax.lisp: remove unused PARAMS keyword arg to SQL-EXPRESSION. 
index ca5353e650436dfda76e92b3904e12c18ce7efa4..504357aeb229af028077e133e61a820b272624fd 100755 (executable)
@@ -1,3 +1,5 @@
+# Make shared library for Oracle 10
+
 if [ -z "$ORACLE_HOME" ]; then 
   ORACLE_HOME=/10g/app/product/10.1.0/db_1
 fi
diff --git a/db-oracle/make9.sh b/db-oracle/make9.sh
new file mode 100755 (executable)
index 0000000..0174332
--- /dev/null
@@ -0,0 +1,12 @@
+# Make shared library for Oracle 9
+if [ -z "$ORACLE_HOME" ]; then 
+  ORACLE_HOME=/9i
+fi
+
+EMPTY_LIBS=-lclntst9
+LIBS="-lagent9 -lagtsh -lclntsh -lclntst9 -lclient9 -lvsn9 -lcommon9 -lskgxp9 -lmm -lnls9 -lcore9 -lgeneric9 -ltrace9 -ldl -lgcc -lm"
+OBJECTS="rdbms/lib/defopt.o"
+LIBNAME=oracle
+
+gcc -shared ${ORACLE_HOME}/rdbms/lib/homts.o -L ${ORACLE_HOME}/lib $LIBS -o ${LIBNAME}.so
index 0a3772100545acd83e544757ffc27081cca2dd6f..0af49ccd5b5e37d9a5b030b955b542f5634f4d0e 100644 (file)
@@ -20,6 +20,7 @@
   (uffi:find-foreign-library
    "oracle"
    `(,(make-pathname :directory (pathname-directory *load-truename*))
+     "/9i/lib/"
      "/usr/lib/clsql/"
      "/sw/lib/clsql/"
      "/home/kevin/debian/src/clsql/db-oracle/")
index 40a3cb15a4a710d63bb0a607008b40071cc38afc..08551a8004aebe4f3bd6789346529c096ef62d8f 100644 (file)
@@ -793,7 +793,7 @@ the length of that format.")
   (cond 
     ((search " 10g " str)
      10)
-    ((search " 9g " str)
+    ((search "Oracle9i  " str)
      10)))
 
 
index 72895cfa97f699ff463b253ae2dcf33cdaa4f01e..67b474d2a2f1c65a0e42ff982bd7351c7a5380b6 100644 (file)
@@ -55,7 +55,7 @@ supports transactions."
     (execute-command stmt :database database)))
 
 (defun drop-table (name &key (if-does-not-exist :error)
-                        (database *default-database*))
+                            (database *default-database*))
   "Drops the table called NAME from DATABASE which defaults to
 *DEFAULT-DATABASE*. If the table does not exist and
 IF-DOES-NOT-EXIST is :ignore then DROP-TABLE returns nil whereas
@@ -67,10 +67,16 @@ an error is signalled if IF-DOES-NOT-EXIST is :error."
          (return-from drop-table nil)))
       (:error
        t))
-    (let ((expr (concatenate 'string "DROP TABLE " table-name
-                            (if (eq :oracle (database-type database))
-                                " PURGE"
-                              ""))))
+    
+    ;; Fixme: move to clsql-oracle
+    (let ((expr (concatenate 'string "DROP TABLE " table-name)))
+      (when (and (find-package 'clsql-oracle)
+                (eq :oracle (database-type database))
+                (eql 9 (slot-value database 
+                                   (intern (symbol-name '#:major-version-number)
+                                           (symbol-name '#:clsql-oracle)))))
+       (setq expr (concatenate 'string expr " PURGE")))
+
       (execute-command expr :database database))))
 
 (defun list-tables (&key (owner nil) (database *default-database*))