;;;; *************************************************************************
;;;; FILE IDENTIFICATION
;;;;
-;;;; Name: db-interface.cl
+;;;; Name: db-interface.lisp
;;;; Purpose: Generic function definitions for DB interfaces
;;;; Programmers: Kevin M. Rosenberg based on
;;;; Original code by Pierre R. Mai. Additions from
;;;;
;;;; $Id$
;;;;
-;;;; This file, part of CLSQL, is Copyright (c) 2002 by Kevin M. Rosenberg
+;;;; This file, part of CLSQL, is Copyright (c) 2002-2004 by Kevin M. Rosenberg
;;;; and Copyright (c) 1999-2001 by Pierre R. Mai, and onShoreD
;;;;
;;;; CLSQL users are granted the rights to distribute and use this software
;;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL.
;;;; *************************************************************************
-(declaim (optimize (debug 3) (speed 3) (safety 1) (compilation-speed 0)))
-(in-package :clsql-base-sys)
+(in-package #:clsql-base-sys)
(defgeneric database-type-load-foreign (database-type)
(:documentation
(signal-nodb-error database))
(:documentation "Internal generic implementation of disconnect."))
-(defgeneric database-query (query-expression database types)
- (:method (query-expression (database closed-database) types)
- (declare (ignore query-expression types))
+(defgeneric database-query (query-expression database result-types)
+ (:method (query-expression (database closed-database) result-types)
+ (declare (ignore query-expression result-types))
(signal-closed-database-error database))
- (:method (query-expression (database t) types)
- (declare (ignore query-expression types))
+ (:method (query-expression (database t) result-types)
+ (declare (ignore query-expression result-types))
(signal-nodb-error database))
(:documentation "Internal generic implementation of query."))
;;; Mapping and iteration
(defgeneric database-query-result-set
- (query-expression database &key full-set types)
- (:method (query-expression (database closed-database) &key full-set types)
- (declare (ignore query-expression full-set types))
+ (query-expression database &key full-set result-types)
+ (:method (query-expression (database closed-database) &key full-set result-types)
+ (declare (ignore query-expression full-set result-types))
(signal-closed-database-error database)
(values nil nil nil))
- (:method (query-expression (database t) &key full-set types)
- (declare (ignore query-expression full-set types))
+ (:method (query-expression (database t) &key full-set result-types)
+ (declare (ignore query-expression full-set result-types))
(signal-nodb-error database)
(values nil nil nil))
(:documentation
"Returns t and stores the next row in the result set in list or
returns nil when result-set is finished."))
+(defgeneric database-create (connection-spec type)
+ (:documentation
+ "Creates a database, returns T if successfull or signals an error."))
+
+(defgeneric database-probe (connection-spec type)
+ (:documentation
+ "Probes for the existence of a database, returns T if database found or NIL
+if not found. May signal an error if unable to communicate with database server."))
-;; Interfaces to support UncommonSQL
+(defgeneric database-destory (connection-spec type)
+ (:documentation
+ "Destroys a database, returns T if successfull or signals an error
+if unable to destory."))
(defgeneric database-create-sequence (name database)
(:documentation "Create a sequence in DATABASE."))
(defgeneric database-sequence-next (name database)
(:documentation "Increment a sequence in DATABASE."))
+(defgeneric database-list-sequences (database &key owner)
+ (:documentation "List all sequences in DATABASE."))
+
+(defgeneric database-set-sequence-position (name position database)
+ (:documentation "Set the position of the sequence called NAME in DATABASE."))
+
+(defgeneric database-sequence-last (name database)
+ (:documentation "Select the last value in sequence NAME in DATABASE."))
+
(defgeneric database-start-transaction (database)
(:documentation "Start a transaction in DATABASE."))
(:documentation "Return the type SQL type specifier as a string, for
the given lisp type and parameters."))
-(defgeneric database-list-tables (database &key system-tables)
+(defgeneric database-list-tables (database &key owner)
(:documentation "List all tables in the given database"))
+
+(defgeneric database-list-views (database &key owner)
+ (:documentation "List all views in the DATABASE."))
+
+(defgeneric database-list-indexes (database &key owner)
+ (:documentation "List all indexes in the DATABASE."))
-(defgeneric database-list-attributes (table database)
+(defgeneric database-list-attributes (table database &key owner)
(:documentation "List all attributes in TABLE."))
-(defgeneric database-attribute-type (attribute table database)
+(defgeneric database-attribute-type (attribute table database &key owner)
(:documentation "Return the type of ATTRIBUTE in TABLE."))
(defgeneric database-add-attribute (table attribute database)
(defgeneric oid (object)
(:documentation "Return the unique ID of a database object."))
-
+
;;; Large objects support (Marc Battyani)
(defgeneric database-create-large-object (database)