r1781: Large objects support for Postgresql
[clsql.git] / sql / sql.cl
index 529925dfed98a1600b28ad67b5c28892a0cf3a41..4b88fd584118ec8f3eb3023bd5d4b1ab4f0c9d04 100644 (file)
@@ -8,7 +8,7 @@
 ;;;;                 Original code by Pierre R. Mai 
 ;;;; Date Started:  Feb 2002
 ;;;;
-;;;; $Id: sql.cl,v 1.9 2002/03/29 08:12:16 kevin Exp $
+;;;; $Id: sql.cl,v 1.12 2002/04/19 20:25:20 marc.battyani Exp $
 ;;;;
 ;;;; This file, part of CLSQL, is Copyright (c) 2002 by Kevin M. Rosenberg
 ;;;; and Copyright (c) 1999-2001 by Pierre R. Mai
 (defvar *loaded-database-types* nil
   "Contains a list of database types which have been defined/loaded.")
 
+(defmethod database-type-load-foreign :after (database-type)
+  (when (database-type-library-loaded database-type)
+     (pushnew database-type *loaded-database-types*)))
+
 (defun reload-database-types ()
   "Reloads any foreign code for the loaded database types after a dump."
   (mapc #'database-type-load-foreign *loaded-database-types*))
 
-
 (defvar *default-database-type* nil
   "Specifies the default type of database.  Currently only :mysql is
 supported.")
@@ -267,5 +270,20 @@ specified in output-type-spec and returned like in MAP."
                    ,@body))
             (database-dump-result-set ,result-set ,db)))))))
 
+;;; Marc Battyani : Large objects support
+
+(defun create-large-object (&key (database *default-database*))
+  "Creates a new large object in the database and returns the object identifier"
+  (database-create-large-object database))
+
+(defun write-large-object (object-id data &key (database *default-database*))
+  "Writes data to the large object"
+  (database-write-large-object object-id data database))
 
+(defun read-large-object (object-id &key (database *default-database*))
+  "Reads the large object content"
+  (database-read-large-object object-id database))
 
+(defun delete-large-object (object-id &key (database *default-database*))
+  "Deletes the large object in the database"
+  (database-delete-large-object object-id database))