(signal-no-database-error database))
(:documentation "Remove all data from database."))
-(defgeneric database-describe-table (database table)
- (:method ((database t) table)
- (declare (ignore table))
- (signal-no-database-error database))
- (:documentation "Return a list of name/type for columns in table"))
-
(defgeneric database-destory (connection-spec type)
(:documentation
"Destroys a database, returns T if successfull or signals an error
(defgeneric database-list-tables (database &key owner)
(:documentation "List all tables in the given database")
+ (:method ((database database) &key owner)
+ (declare (ignore owner))
+ (warn "database-list-tables not implemented for database type ~A."
+ (database-type database)))
(:method ((database t) &key owner)
(declare (ignore owner))
(signal-no-database-error database)))
(defgeneric database-list-views (database &key owner)
(:documentation "List all views in the DATABASE.")
+ (:method ((database database) &key owner)
+ (declare (ignore owner))
+ (warn "database-list-views not implemented for database type ~A."
+ (database-type database)))
(:method ((database t) &key owner)
(declare (ignore owner))
(signal-no-database-error database)))
(defgeneric database-list-indexes (database &key owner)
(:documentation "List all indexes in the DATABASE.")
- (:method ((database t) &key owner)
+ (:method ((database database) &key owner)
(declare (ignore owner))
- (signal-no-database-error database)))
+ (warn "database-list-indexes not implemented for database type ~A."
+ (database-type database)))
+ (:method ((database t) &key owner)
+ (declare (ignore owner))
+ (signal-no-database-error database)))
(defgeneric database-list-table-indexes (table database &key owner)
(:documentation "List all indexes for a table in the DATABASE.")
+ (:method (table (database database) &key owner)
+ (declare (ignore table owner))
+ (warn "database-list-table-indexes not implemented for database type ~A."
+ (database-type database)))
(:method (table (database t) &key owner)
(declare (ignore table owner))
(signal-no-database-error database)))
(defgeneric database-list-attributes (table database &key owner)
(:documentation "List all attributes in TABLE.")
+ (:method (table (database database) &key owner)
+ (declare (ignore table owner))
+ (warn "database-list-attributes not implemented for database type ~A."
+ (database-type database)))
(:method (table (database t) &key owner)
(declare (ignore table owner))
(signal-no-database-error database)))
(defgeneric database-attribute-type (attribute table database &key owner)
(:documentation "Return the type of ATTRIBUTE in TABLE. Returns multiple values
of TYPE_NAME (keyword) PRECISION SCALE NULLABLE.")
+ (:method (attribute table (database database) &key owner)
+ (declare (ignore attribute table owner))
+ (warn "database-list-attribute-type not implemented for database type ~A."
+ (database-type database)))
(:method (attribute table (database t) &key owner)
(declare (ignore attribute table owner))
(signal-no-database-error database)))
(defgeneric database-add-attribute (table attribute database)
(:documentation "Add the attribute to the table.")
+ (:method (table attribute (database database))
+ (declare (ignore table attribute))
+ (warn "database-add-attribute not implemented for database type ~A."
+ (database-type database)))
(:method (table attribute (database t))
(declare (ignore table attribute))
(signal-no-database-error database)))
(defgeneric database-rename-attribute (table oldatt newname database)
(:documentation "Rename the attribute in the table to NEWNAME.")
+ (:method (table oldatt newname (database database))
+ (declare (ignore table oldatt newname))
+ (warn "database-rename-attribute not implemented for database type ~A."
+ (database-type database)))
(:method (table oldatt newname (database t))
(declare (ignore table oldatt newname))
(signal-no-database-error database)))
(unless (is-database-open database)
(signal-closed-database-error database)))
-(defgeneric describe-table (table &key database)
- (:documentation "Describes a table, returns a list of name/type for columns in table"))