r9457: Reworked CLSQL file structure.
[clsql.git] / sql / package.lisp
index 0de78815dcb05b12591ef90d955e9550ca1692a2..2a07e84490d45d129494c42d06e171a088619529 100644 (file)
@@ -1,9 +1,9 @@
 ;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*-
 ;;;; *************************************************************************
+;;;; FILE IDENTIFICATION
 ;;;;
-;;;; $Id$
-;;;;
-;;;; Package definitions for CLSQL. 
+;;;; Name:          package.lisp
+;;;; Purpose:       Package definition for SQL interface
 ;;;;
 ;;;; This file is part of CLSQL.
 ;;;;
 
 (in-package #:cl-user)
 
-(eval-when (:compile-toplevel :load-toplevel :execute)
+;;;; This file makes the required package definitions for CLSQL's
+;;;; core packages.
 
-#+sbcl
+(eval-when (:compile-toplevel :load-toplevel :execute)
+  #+sbcl
   (if (find-package 'sb-mop)
       (pushnew :clsql-sbcl-mop cl:*features*)
       (pushnew :clsql-sbcl-pcl cl:*features*))
-
+  
   #+cmu
   (if (eq (symbol-package 'pcl:find-class)
          (find-package 'common-lisp))
@@ -30,7 +32,7 @@
 
 (eval-when (:compile-toplevel :load-toplevel :execute)
   (defpackage #:clsql-sys
-    (:use #:common-lisp #:clsql-base-sys
+    (:use #:common-lisp
          #+clsql-sbcl-mop #:sb-mop
          #+clsql-cmucl-mop #:mop
          #+allegro #:mop
     #+allegro
     (:shadowing-import-from 
      #:excl)
-   #+lispworks
-   (:shadowing-import-from 
-    #:clos)
-   #+clsql-sbcl-mop 
-   (:shadowing-import-from 
-    #:sb-pcl
-    #:generic-function-lambda-list)
-   #+clsql-sbcl-pcl
-   (:shadowing-import-from 
-    #:sb-pcl
-    #:name
-    #:class-direct-slots
-    #:class-of #:class-name #:class-slots #:find-class
-    #:slot-boundp
-    #:standard-class
-    #:slot-definition-name #:finalize-inheritance
-    #:standard-direct-slot-definition
-    #:standard-effective-slot-definition #:validate-superclass
-    #:direct-slot-definition-class #:compute-effective-slot-definition
-    #:effective-slot-definition-class
-    #:slot-value-using-class
-    #:class-prototype #:generic-function-method-class #:intern-eql-specializer
-    #:make-method-lambda #:generic-function-lambda-list
-    #:class-precedence-list #:slot-definition-type
-    #:class-direct-superclasses
-    #:compute-class-precedence-list)
-   #+clsql-cmucl-mop 
-   (:shadowing-import-from 
-    #:pcl
-    #:generic-function-lambda-list)
-   #+clsql-cmucl-pcl
-   (:shadowing-import-from 
-    #:pcl
-    #:class-direct-slots
-    #:name
-    #:class-of  #:class-name #:class-slots #:find-class #:standard-class
-    #:slot-boundp
-    #:slot-definition-name #:finalize-inheritance
-    #:standard-direct-slot-definition #:standard-effective-slot-definition
-    #:validate-superclass #:direct-slot-definition-class
-    #:effective-slot-definition-class
-    #:compute-effective-slot-definition
-    #:slot-value-using-class
-    #:class-prototype #:generic-function-method-class #:intern-eql-specializer
-    #:make-method-lambda #:generic-function-lambda-list
-    #:class-precedence-list #:slot-definition-type
-    #:class-direct-superclasses
-    #:compute-class-precedence-list)
-   #+scl
-   (:shadowing-import-from 
-    #:clos
-    #:class-prototype  ;; note: make-method-lambda is not fbound
-    )
+    #+lispworks
+    (:shadowing-import-from 
+     #:clos)
+    #+clsql-sbcl-mop 
+    (:shadowing-import-from 
+     #:sb-pcl
+     #:generic-function-lambda-list)
+    #+clsql-sbcl-pcl
+    (:shadowing-import-from 
+     #:sb-pcl
+     #:name
+     #:class-direct-slots
+     #:class-of #:class-name #:class-slots #:find-class
+     #:slot-boundp
+     #:standard-class
+     #:slot-definition-name #:finalize-inheritance
+     #:standard-direct-slot-definition
+     #:standard-effective-slot-definition #:validate-superclass
+     #:direct-slot-definition-class #:compute-effective-slot-definition
+     #:effective-slot-definition-class
+     #:slot-value-using-class
+     #:class-prototype #:generic-function-method-class #:intern-eql-specializer
+     #:make-method-lambda #:generic-function-lambda-list
+     #:class-precedence-list #:slot-definition-type
+     #:class-direct-superclasses
+     #:compute-class-precedence-list)
+    #+clsql-cmucl-mop 
+    (:shadowing-import-from 
+     #:pcl
+     #:generic-function-lambda-list)
+    #+clsql-cmucl-pcl
+    (:shadowing-import-from 
+     #:pcl
+     #:class-direct-slots
+     #:name
+     #:class-of  #:class-name #:class-slots #:find-class #:standard-class
+     #:slot-boundp
+     #:slot-definition-name #:finalize-inheritance
+     #:standard-direct-slot-definition #:standard-effective-slot-definition
+     #:validate-superclass #:direct-slot-definition-class
+     #:effective-slot-definition-class
+     #:compute-effective-slot-definition
+     #:slot-value-using-class
+     #:class-prototype #:generic-function-method-class #:intern-eql-specializer
+     #:make-method-lambda #:generic-function-lambda-list
+     #:class-precedence-list #:slot-definition-type
+     #:class-direct-superclasses
+     #:compute-class-precedence-list)
+    #+scl
+    (:shadowing-import-from 
+     #:clos
+     #:class-prototype  ;; note: make-method-lambda is not fbound
+     )
+    
+    (:export
+     ;; "Private" exports for use by interface packages
+     #:check-connection-spec
+     #:database-initialize-database-type
+     #:database-type-load-foreign
+     #:database-name-from-spec
+     #:database-connect
+     #:database-disconnect
+     #:database-query
+     #:database-execute-command
+     #:database-create-sequence
+     #:database-drop-sequence
+     #:database-sequence-next
+     #:database-set-sequence-position
+     #:database-query-result-set
+     #:database-dump-result-set
+     #:database-store-next-row
+     #:database-list-tables
+     #:database-list-tables-and-sequences
+     #:database-table-exists-p
+     #:database-list-views
+     #:database-view-exists-p
+     #:database-list-indexes
+     #:database-list-table-indexes
+     #:database-index-exists-p
+     #:database-list-sequences
+     #:database-sequence-last
+     #:database-sequence-exists-p
+     #:database-list-attributes
+     #:database-attribute-type
+     #:database-describe-table
+     #:database-type-library-loaded
+     #:database-create
+     #:database-destroy
+     #:database-probe
+     #:database-list
+     
+     #:db-backend-has-create/destroy-db?
+     #:db-type-has-views?
+     #:db-type-has-bigint?
+     #:db-type-has-union?
+     #:db-type-has-subqueries?
+     #:db-type-has-boolean-where?
+     #:db-type-transaction-capable?
+     #:db-type-has-fancy-math?
+     #:db-type-default-case
+     #:db-type-use-column-on-drop-index? 
+     #:database-underlying-type
+     #:database-get-type-specifier
+     #:read-sql-value
+     #:database-output-sql-as-type
+     #:*loaded-database-types*
+     #:reload-database-types
+     #:is-database-open
+
+     ;; Large objects 
+     #:database-create-large-object
+     #:database-write-large-object
+     #:database-read-large-object
+     #:database-delete-large-object
+     #:create-large-object
+     #:write-large-object
+     #:read-large-object
+     #:delete-large-object
+
+     ;; accessors for database class
+     #:name
+     #:connection-spec
+     #:transaction
+     #:transaction-level
+     #:conn-pool
+     #:command-recording-stream
+     #:result-recording-stream
+     #:record-caches
+     #:view-classes
+     #:database-type
+     #:database-state
+     #:attribute-cache
    
-   (:import-from 
-    #:clsql-base-sys
-    .
-    #1=(
-       ;; conditions 
-       #:clsql-condition
-       #:clsql-error
-       #:clsql-simple-error
-       #:clsql-warning
-       #:clsql-simple-warning
-       #:clsql-invalid-spec-error
-       #:clsql-invalid-spec-error-connection-spec
-       #:clsql-invalid-spec-error-database-type
-       #:clsql-invalid-spec-error-template
-       #:clsql-access-error
-       #:clsql-access-error-database-type
-       #:clsql-access-error-connection-spec
-       #:clsql-access-error-error
-       #:clsql-connect-error
-       #:clsql-connect-error-errno
-       #:clsql-sql-error
-       #:clsql-sql-error-database
-       #:clsql-sql-error-expression
-       #:clsql-sql-error-errno
-       #:clsql-sql-error-error
-       #:clsql-database-warning
-       #:clsql-database-warning-database
-       #:clsql-database-warning-message
-       #:clsql-exists-condition
-       #:clsql-exists-condition-new-db
-       #:clsql-exists-condition-old-db
-       #:clsql-exists-warning
-       #:clsql-exists-error
-       #:clsql-closed-error
-       #:clsql-closed-error-database
-       #:clsql-type-error
-       #:clsql-sql-syntax-error
+     ;; utils.lisp
+     #:without-interrupts
+     #:make-process-lock
+     #:with-process-lock
+     #:command-output
+     #:symbol-name-default-case
+     #:convert-to-db-default-case
+     #:ensure-keyword
+     #:getenv
+     #:number-to-sql-string
+     #:float-to-sql-string
+     #:sql-escape-quotes
+     #:in
 
-       ;; db-interface
-       #:check-connection-spec
-       #:database-initialize-database-type
-       #:database-type-load-foreign
-       #:database-name-from-spec
-       #:database-create-sequence
-       #:database-drop-sequence
-       #:database-sequence-next
-       #:database-set-sequence-position
-       #:database-query-result-set
-       #:database-dump-result-set
-       #:database-store-next-row
-       #:database-get-type-specifier
-       #:database-list-tables
-       #:database-list-views
-       #:database-list-indexes
-       #:database-list-sequences
-       #:database-list-attributes
-       #:database-attribute-type
-       #:database-add-attribute
-       #:database-type 
-       ;; initialize
-       #:*loaded-database-types*
-       #:reload-database-types
-       #:*default-database-type*
-       #:*initialized-database-types*
-       #:initialize-database-type
-       ;; classes
-       #:database
-       #:closed-database
-       #:database-name
-       #:command-recording-stream
-       #:result-recording-stream
-       #:database-view-classes
-       #:database-schema
-       #:conn-pool
-       #:print-object 
-       ;; utils
-       #:sql-escape
+     ;; Generic backends
+     #:generic-postgresql-database
+     #:generic-odbc-database
+     
+     .
 
-       ;; database.lisp -- Connection
-       #:*default-database-type*                 ; clsql-base xx
-       #:*default-database*              ; classes    xx
-       #:connect                                 ; database   xx
-       #:*connect-if-exists*             ; database   xx
-       #:connected-databases             ; database   xx
-       #:database                        ; database   xx
-       #:database-name                     ; database   xx
-       #:disconnect                      ; database   xx
-       #:reconnect                         ; database
-       #:find-database                     ; database   xx
-       #:status                            ; database   xx
-       #:with-database
-       #:with-default-database
-       #:create-database
-       #:destroy-database
-       #:probe-database
+     ;; Shared exports for re-export by CLSQL package. 
+     #1=(
 
-       ;; pool.lisp
-       #:disconnect-pooled
+        ;; Condition system (conditions.lisp) 
+        #:sql-user-error
+        #:sql-database-error
+        #:sql-database-data-error
+        #:sql-connection-error
+        #:sql-temporary-error
+         #:sql-timeout-error 
+         #:sql-fatal-error 
+        #:sql-error-error-id
+        #:sql-error-secondary-error-id
+        #:sql-error-database-message
+        ;; CLSQL Extensions
+        #:sql-condition
+        #:sql-error
+        #:sql-warning
+        #:sql-database-warning
+         #:*backend-warning-behavior*
 
-       ;; basic-sql.lisp
-       #:query
-       #:execute-command
-       #:write-large-object
-       #:read-large-object
-       #:delete-large-object
-       #:do-query
-       #:map-query
+         ;; Connection/initialisation (base-classes.lisp, database.lisp, 
+         ;;   initialize.lisp)
+         #:*default-database-type*       
+         #:*default-database*           
+         #:*initialized-database-types*
+         #:initialize-database-type
+         #:connect                     
+         #:disconnect                 
+         #:*connect-if-exists*        
+         #:connected-databases        
+         #:database                   
+         #:database-name               
+         #:reconnect                   
+         #:find-database               
+         #:status                      
+         ;; CLSQL Extensions 
+         #:with-database
+         #:with-default-database
+         #:disconnect-pooled
+         #:list-databases
+         #:create-database
+         #:destroy-database
+         #:probe-database
+         #:truncate-database
 
-       ;; recording.lisp -- SQL I/O Recording 
-       #:record-sql-comand
-       #:record-sql-result
-       #:add-sql-stream                 ; recording  xx
-       #:delete-sql-stream               ; recording  xx
-       #:list-sql-streams                ; recording  xx
-       #:sql-recording-p                 ; recording  xx
-       #:sql-stream                      ; recording  xx
-       #:start-sql-recording             ; recording  xx
-       #:stop-sql-recording              ; recording  xx
-       
-       ;; Transactions
-       #:with-transaction
-       #:commit-transaction
-       #:rollback-transaction
-       #:add-transaction-commit-hook
-       #:add-transaction-rollback-hook
-       #:commit                            ; transact   xx
-       #:rollback                        ; transact   xx
-       #:with-transaction                ; transact   xx               .
-       #:start-transaction                 ; transact   xx
-       #:in-transaction-p                  ; transact   xx
-       #:database-start-transaction
-       #:database-abort-transaction
-       #:database-commit-transaction
-       #:transaction-level
-       #:transaction
-       ))
-   (:export
-    ;; "Private" exports for use by interface packages
-    #:check-connection-spec
-    #:database-initialize-database-type
-    #:database-type-load-foreign
-    #:database-name-from-spec
-    #:database-connect
-   #:database-query
-   #:database-execute-command
-   #:database-create-sequence
-   #:database-drop-sequence
-   #:database-sequence-next
-   #:database-set-sequence-position
-   #:database-query-result-set
-   #:database-dump-result-set
-   #:database-store-next-row
-   #:database-get-type-specifier
-   #:database-list-tables
-   #:database-table-exists-p
-   #:database-list-views
-   #:database-view-exists-p
-   #:database-list-indexes
-   #:database-index-exists-p
-   #:database-list-sequences
-   #:database-sequence-exists-p
-   #:database-list-attributes
-   #:database-attribute-type
+         ;; I/O Recording (recording.lisp) 
+         #:add-sql-stream             
+         #:delete-sql-stream         
+         #:list-sql-streams          
+         #:sql-recording-p           
+         #:sql-stream                  
+         #:start-sql-recording         
+         #:stop-sql-recording          
+         ;; CLSQL Extensions 
+         #:record-sql-command
+         #:record-sql-result
 
-   .
-   ;; Shared exports for re-export by CLSQL. 
-   ;; I = Implemented, D = Documented
-   ;;  name                                 file       ID
-   ;;====================================================
-   #2=(;;------------------------------------------------
-       ;; CommonSQL API 
-       ;;------------------------------------------------
-      ;;FDML 
-       #:select                            ; objects    xx
-       #:cache-table-queries               ; 
-       #:*cache-table-queries-default*     ; 
-       #:delete-records                    ; sql              xx
-       #:insert-records                    ; sql        xx
-       #:update-records                    ; sql              xx
-       #:execute-command                         ; sql        xx
-       #:query                             ; sql        xx
-       #:print-query                     ; sql        xx
-       #:do-query                        ; sql        xx
-       #:map-query                       ; sql        xx
-       #:loop                            ; loop-ext   x
-       ;;FDDL
-       #:create-table                    ; table      xx
-       #:drop-table                      ; table      xx
-       #:list-tables                     ; table      xx
-       #:table-exists-p                    ; table      xx 
-       #:list-attributes                         ; table      xx
-       #:attribute-type                    ; table      xx
-       #:list-attribute-types              ; table      xx
-       #:create-view                     ; table      xx
-       #:drop-view                       ; table      xx
-       #:create-index                    ; table      xx               
-       #:drop-index                      ; table      xx               
-       ;;OODDL
-       #:standard-db-object              ; objects    xx
-       #:def-view-class                    ; objects    xx
-       #:create-view-from-class            ; objects    xx
-       #:drop-view-from-class            ; objects    xx
-       ;;OODML
-       #:instance-refreshed                ;
-       #:update-object-joins               ;
-       #:*default-update-objects-max-len*  ; 
-       #:update-slot-from-record           ; objects    xx
-       #:update-instance-from-records      ; objects    xx
-       #:update-records-from-instance    ; objects    xx
-       #:update-record-from-slot                 ; objects    xx
-       #:update-record-from-slots        ; objects    xx
-       #:list-classes                    ; objects    xx
-       #:delete-instance-records                 ; objects    xx
-       ;;Symbolic SQL Syntax 
-       #:sql                             ; syntax     xx
-       #:sql-expression                    ; syntax     xx
-       #:sql-operation                     ; syntax     xx
-       #:sql-operator                    ; syntax     xx       
-       #:disable-sql-reader-syntax         ; syntax     xx
-       #:enable-sql-reader-syntax          ; syntax     xx
-       #:locally-disable-sql-reader-syntax ; syntax     xx
-       #:locally-enable-sql-reader-syntax  ; syntax     xx
-       #:restore-sql-reader-syntax-state   ; syntax     xx
+        ;; FDDL (fddl.lisp) 
+        #:create-table                   
+        #:drop-table                     
+        #:list-tables                    
+        #:table-exists-p                 
+        #:list-attributes                
+        #:attribute-type                 
+        #:list-attribute-types           
+        #:*cache-table-queries-default*  
+        #:create-view                    
+        #:drop-view                      
+        #:create-index                   
+        #:drop-index                     
+         ;; CLSQL Extensions 
+         #:describe-table
+        #:list-views                  
+        #:view-exists-p               
+        #:list-indexes                
+        #:list-table-indexes          
+        #:index-exists-p              
+        #:create-sequence             
+        #:drop-sequence               
+        #:list-sequences              
+        #:sequence-exists-p           
+        #:sequence-next               
+        #:sequence-last               
+        #:set-sequence-position       
 
-       ;;------------------------------------------------
-       ;; Miscellaneous Extensions
-       ;;------------------------------------------------
-       ;;Initialization
-       #:*loaded-database-types*           ; clsql-base xx
-       #:reload-database-types             ; clsql-base xx
-       #:closed-database                 ; database   xx
-       #:database-type                     ; database   x
-       #:in-schema                         ; classes    x
-       ;;FDDL 
-       #:list-views                        ; table      xx
-       #:view-exists-p                     ; table      xx
-       #:list-indexes                      ; table      xx
-       #:index-exists-p                    ; table      xx
-       #:create-sequence                   ; table      xx
-       #:drop-sequence                     ; table      xx
-       #:list-sequences                    ; table      xx
-       #:sequence-exists-p                 ; table      xx
-       #:sequence-next                     ; table      xx
-       #:sequence-last                     ; table      xx
-       #:set-sequence-position             ; table      xx
-       ;;OODDL
-       #:view-table                        ; metaclass  x
-       #:create-sequence-from-class        ; objects    x
-       #:drop-sequence-from-class          ; objects    x      
-       ;;OODML
-       #:add-to-relation                   ; objects    x
-       #:remove-from-relation              ; objects    x
-       #:read-sql-value                    ; objects    x
-       #:database-output-sql-as-type       ; objects    x
-       #:database-get-type-specifier       ; objects    x
-       #:database-output-sql               ; sql/class  xx
+         ;; FDML (fdml.lisp) 
+        #:select 
+        #:cache-table-queries     
+        #:*cache-table-queries-default*
+        #:delete-records               
+        #:insert-records               
+        #:update-records               
+        #:execute-command              
+        #:query                        
+        #:print-query                  
+        #:do-query                     
+        #:map-query                    
+        #:loop
+         ;; CLSQL Extensions 
+         #:for-each-row
 
-       ;;-----------------------------------------------
-       ;; Symbolic Sql Syntax 
-       ;;-----------------------------------------------
-       #:sql-and-qualifier
-       #:sql-escape
-       #:sql-query
-       #:sql-any
-       #:sql-all
-       #:sql-not
-       #:sql-union
-       #:sql-intersection
-       #:sql-minus
-       #:sql-group-by
-       #:sql-having
-       #:sql-null
-       #:sql-not-null
-       #:sql-exists
-       #:sql-*
-       #:sql-+
-       #:sql-/
-       #:sql-like
-       #:sql-uplike
-       #:sql-and
-       #:sql-or
-       #:sql-in
-       #:sql-||
-       #:sql-is
-       #:sql-=
-       #:sql-==
-       #:sql-<
-       #:sql->
-       #:sql->=
-       #:sql-<=
-       #:sql-count
-       #:sql-max
-       #:sql-min
-       #:sql-avg
-       #:sql-sum
-       #:sql-view-class
-       #:sql_slot-value
+         ;; Transaction handling (transaction.lisp) 
+         #:with-transaction
+         #:commit                        
+         #:rollback                     
+         ;; CLSQL Extensions 
+         #:commit-transaction
+         #:rollback-transaction
+         #:add-transaction-commit-hook
+         #:add-transaction-rollback-hook
+         #:start-transaction             
+         #:in-transaction-p              
+         #:database-start-transaction
+         #:database-abort-transaction
+         #:database-commit-transaction
+         #:transaction-level
+         #:transaction
 
-       . 
-       #1#
-       ))
-  (:documentation "This is the INTERNAL SQL-Interface package of CLSQL."))
+        ;;  OODDL (ooddl.lisp) 
+        #:standard-db-object               
+        #:def-view-class                   
+        #:create-view-from-class           
+        #:drop-view-from-class             
+        #:list-classes                     
+        #:universal-time    
+         ;; CLSQL Extensions 
+        #:view-table        
+        #:bigint
 
+        ;; OODML (oodml.lisp) 
+        #:instance-refreshed               
+        #:update-objects-joins             
+        #:*default-update-objects-max-len* 
+        #:update-slot-from-record          
+        #:update-instance-from-records     
+        #:update-records-from-instance     
+        #:update-record-from-slot          
+        #:update-record-from-slots         
+        #:delete-instance-records          
+        ;; CLSQL Extensions 
+        #:*db-auto-sync*    
+
+        ;; Symbolic SQL Syntax (syntax.lisp) 
+        #:sql                              
+        #:sql-expression                   
+        #:sql-operation                    
+        #:sql-operator                     
+        #:disable-sql-reader-syntax        
+        #:enable-sql-reader-syntax         
+        #:locally-disable-sql-reader-syntax
+        #:locally-enable-sql-reader-syntax 
+        #:restore-sql-reader-syntax-state  
+        
+        ;; SQL operations (operations.lisp) 
+        #:sql-query
+        #:sql-object-query
+        #:sql-any
+         #:sql-some 
+        #:sql-all
+        #:sql-not
+        #:sql-union
+        #:sql-intersect
+        #:sql-minus
+         #:sql-except 
+         #:sql-order-by 
+        #:sql-null
+        #:sql-*
+        #:sql-+
+        #:sql-/
+         #:sql--
+        #:sql-like
+        #:sql-and
+        #:sql-or
+        #:sql-in
+        #:sql-concat
+         #:sql-substr 
+        #:sql-=
+        #:sql-<
+         #:sql->
+         #:sql->=
+         #:sql-<=
+         #:sql-<>
+         #:sql-count
+         #:sql-max
+         #:sql-min
+         #:sql-avg
+         #:sql-sum
+         #:sql-function 
+         #:sql-between 
+         #:sql-distinct 
+         #:sql-nvl 
+         #:sql-slot-value
+         ;; CLSQL Extensions 
+         #:sql-limit 
+        #:sql-group-by
+        #:sql-having
+        #:sql-not-null
+        #:sql-exists
+        #:sql-uplike
+        #:sql-is
+        #:sql-==
+         #:sql-the 
+         #:sql-coalesce 
+         #:sql-view-class
+
+         ;; Time handling (time.lisp) 
+         #:bad-component
+         #:current-day
+         #:current-month
+         #:current-year
+         #:day-duration
+         #:db-timestring
+         #:decode-duration
+         #:decode-time
+         #:duration
+         #:duration+
+         #:duration<
+         #:duration<=
+         #:duration=
+         #:duration>
+         #:duration>=
+         #:duration-day
+         #:duration-hour
+         #:duration-minute
+         #:duration-month
+         #:duration-second
+         #:duration-year
+         #:duration-reduce 
+         #:duration-timestring
+         #:extract-roman 
+         #:format-duration
+         #:format-time
+         #:get-time
+         #:utime->time
+         #:interval-clear
+         #:interval-contained
+         #:interval-data
+         #:interval-edit
+         #:interval-end
+         #:interval-match
+         #:interval-push
+         #:interval-relation
+         #:interval-start
+         #:interval-type
+         #:make-duration
+         #:make-interval
+         #:make-time
+         #:merged-time
+         #:midnight
+         #:month-name
+         #:parse-date-time
+         #:parse-timestring
+         #:parse-yearstring
+         #:print-date
+         #:roll
+         #:roll-to
+         #:time
+         #:time+
+         #:time-
+         #:time-by-adding-duration
+         #:time-compare
+         #:time-difference
+         #:time-dow
+         #:time-element
+         #:time-max
+         #:time-min
+         #:time-mjd
+         #:time-msec
+         #:time-p
+         #:time-sec
+         #:time-well-formed
+         #:time-ymd
+         #:time<
+         #:time<=
+         #:time=
+         #:time>
+         #:time>=
+         #:timezone
+         #:universal-time
+         #:wall-time
+         #:wall-timestring
+         #:week-containing
+         #:gregorian-to-mjd
+         #:mjd-to-gregorian
+         ))
+    (:documentation "This is the INTERNAL SQL-Interface package of CLSQL."))
 
-;; see http://thread.gmane.org/gmane.lisp.lispworks.general/681
-#+lispworks
-(setf *packages-for-warn-on-redefinition* 
-      (delete "SQL" *packages-for-warn-on-redefinition* :test 'string=))
 
 (defpackage #:clsql
   (:use #:common-lisp)
-  (:import-from #:clsql-sys . #2#)
-  (:export . #2#)
-  (:documentation "This is the SQL-Interface package of CLSQL."))
+  (:import-from #:clsql-sys . #1#)
+  (:export . #1#)
+  (:documentation "This is the user package with CLSQL symbols."))
 
 (defpackage #:clsql-user
   (:use #:common-lisp)
-  (:import-from #:clsql-sys . #2#)
-  (:export . #2#)
+  (:import-from #:clsql-sys . #1#)
+  (:export . #1#)
   (:documentation "This is the user package with CLSQL symbols."))
 
   ;; This is from USQL's pcl-patch  
                        slot-vars pv-parameters))
          ,@(mapcar #'(lambda (slot-var) `(declare (ignorable ,slot-var))) slot-vars)
          ,@body))))
-  
-  
+
+;; see http://thread.gmane.org/gmane.lisp.lispworks.general/681
+#+lispworks
+(setf *packages-for-warn-on-redefinition* 
+      (delete "SQL" *packages-for-warn-on-redefinition* :test 'string=))
+
   #+sbcl
   (if (find-package 'sb-mop)
       (setq cl:*features* (delete :clsql-sbcl-mop cl:*features*))
   (if (find-package 'mop)
       (setq cl:*features* (delete :clsql-cmucl-mop cl:*features*))
       (setq cl:*features* (delete :clsql-cmucl-pcl cl:*features*)))
-  
-);eval-when                                      
 
+) ;eval-when