Module: sql-implementation Author: eec, yduJ Copyright: Original Code is Copyright (c) 1995-2004 Functional Objects, Inc. All rights reserved. License: Functional Objects Library Public License Version 1.0 Dual-license: GNU Lesser General Public License Warranty: Distributed WITHOUT WARRANTY OF ANY KIND // Introspection classes and generics define abstract class () slot database-object-name :: , required-init-keyword: name:; end class ; define abstract class () end class; define abstract class () end class; define abstract class () end class; define abstract class () end class; define abstract class () end class; define open generic constraints (db-object :: ) => result :: ; //+++ What does connection and connection-setter do? define open generic connection (o :: ) => result :: ; define open generic connection-setter (c :: , o :: ) => result :: ; define open abstract class (, ) slot connection :: = default-connection(), init-keyword: connection:; end class; define open generic catalogs (#key connection :: ) => (result-set :: ); define open generic catalogs-assist(connection :: ) => (result-set :: ); define method catalogs(#key connection :: = default-connection()) => (result-set :: ) catalogs-assist(connection); end method; define open abstract class (, ) end class; define open abstract class (, ) end class; define open generic indexes(table :: ) => index-collection :: ; define open abstract class () constant slot domain :: , // init-keyword: domain:; constant slot nullable? :: , init-keyword: nullable?:; open constant slot default-value :: , init-keyword: default-value:; end class ; define open generic default-value (column :: ) => default :: ; define open abstract class () slot indexed-table :: , init-keyword: indexed-table:; slot fields :: = make(); constant slot unique-index? :: , init-keyword: unique-index?:; end class ; define open generic catalog-from-name(connection :: , name :: ) => (catalog :: ); define open generic schema-from-name(connection :: , catalog-name :: , schema-name :: ) => (schema :: ); define open generic table-from-name(connection :: , catalog-name :: , schema-name :: , table-name :: ) => (table :: ); define abstract class () end class; define class () constant slot catalog-name :: , required-init-keyword: catalog-name:; end class; define class () constant slot schema-name :: , required-init-keyword: schema-name:; end class; define class () constant slot table-name :: , required-init-keyword: table-name:; end class;