X-Git-Url: http://git.kpe.io/?p=clsql.git;a=blobdiff_plain;f=sql%2Fpackage.lisp;h=5293df99f500c0c8ba11f0181082c0e3178f4e55;hp=39f16a9b58ac7a33f034a0e806ca1e5477a78246;hb=9bbed78051e80e6ab76ae47834136035602bbbf1;hpb=7f0e4a65d1b425f2fa58fc7cce8296c1a6c52c2f diff --git a/sql/package.lisp b/sql/package.lisp index 39f16a9..5293df9 100644 --- a/sql/package.lisp +++ b/sql/package.lisp @@ -1,17 +1,16 @@ ;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*- -;;;; ====================================================================== -;;;; File: package.lisp -;;;; Author: Marcus Pearce , Kevin Rosenberg -;;;; Created: 30/03/2004 -;;;; Updated: <04/04/2004 12:21:50 marcusp> -;;;; ====================================================================== +;;;; ************************************************************************* ;;;; -;;;; Description ========================================================== -;;;; ====================================================================== +;;;; $Id$ ;;;; -;;;; Package definitions for CLSQL-USQL. +;;;; Package definitions for CLSQL. ;;;; -;;;; ====================================================================== +;;;; This file is part of CLSQL. +;;;; +;;;; CLSQL users are granted the rights to distribute and use this software +;;;; as governed by the terms of the Lisp Lesser GNU Public License +;;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL. +;;;; ************************************************************************* (in-package #:cl-user) @@ -19,22 +18,21 @@ #+sbcl (if (find-package 'sb-mop) - (pushnew :usql-sbcl-mop cl:*features*) - (pushnew :usql-sbcl-pcl cl:*features*)) + (pushnew :clsql-sbcl-mop cl:*features*) + (pushnew :clsql-sbcl-pcl cl:*features*)) #+cmu (if (eq (symbol-package 'pcl:find-class) (find-package 'common-lisp)) - (pushnew :usql-cmucl-mop cl:*features*) - (pushnew :usql-cmucl-pcl cl:*features*))) + (pushnew :clsql-cmucl-mop cl:*features*) + (pushnew :clsql-cmucl-pcl cl:*features*))) (eval-when (:compile-toplevel :load-toplevel :execute) - (defpackage #:clsql-usql-sys - (:nicknames #:usql-sys) - (:use #:common-lisp #:clsql-base-sys - #+usql-sbcl-mop #:sb-mop - #+usql-cmucl-mop #:mop + (defpackage #:clsql-sys + (:use #:common-lisp #:clsql-base + #+clsql-sbcl-mop #:sb-mop + #+clsql-cmucl-mop #:mop #+allegro #:mop #+lispworks #:clos #+scl #:clos @@ -46,11 +44,11 @@ #+lispworks (:shadowing-import-from #:clos) - #+usql-sbcl-mop + #+clsql-sbcl-mop (:shadowing-import-from #:sb-pcl #:generic-function-lambda-list) - #+usql-sbcl-pcl + #+clsql-sbcl-pcl (:shadowing-import-from #:sb-pcl #:name @@ -67,12 +65,13 @@ #: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) - #+usql-cmucl-mop + #:class-direct-superclasses + #:compute-class-precedence-list) + #+clsql-cmucl-mop (:shadowing-import-from #:pcl #:generic-function-lambda-list) - #+usql-cmucl-pcl + #+clsql-cmucl-pcl (:shadowing-import-from #:pcl #:class-direct-slots @@ -88,7 +87,8 @@ #: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) + #:class-direct-superclasses + #:compute-class-precedence-list) #+scl (:shadowing-import-from #:clos @@ -96,97 +96,104 @@ ) (:import-from - #:clsql-base-sys + #:clsql-base . #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-connect-error - :clsql-connect-error-database-type - :clsql-connect-error-connection-spec - :clsql-connect-error-errno - :clsql-connect-error-error - :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 + #: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 ;; 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 + #: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-table-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 + #:*loaded-database-types* + #:reload-database-types + #:*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 + #:database + #:database-name + #:command-recording-stream + #:result-recording-stream + #:database-view-classes + #:conn-pool + #:print-object + ;; utils - :sql-escape + #:sql-escape ;; 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 + #:*default-database-type* ; database xx + #:*default-database* ; database 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 xx + #:find-database ; database xx + #:status ; database xx #:with-database #:with-default-database + #:create-database + #:destroy-database + #:probe-database + ;; pool.lisp + #:disconnect-pooled + ;; basic-sql.lisp #:query #:execute-command @@ -195,17 +202,18 @@ #:delete-large-object #:do-query #:map-query + #:describe-table + ;; 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 + #:record-sql-action + #: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 @@ -213,47 +221,70 @@ #: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 + #: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 + + ;; Database capabilities + #:db-type-use-column-on-drop-index? + #:db-backend-has-create/destroy-db? + #:db-type-has-views? + #:db-type-has-subqueries? + #:db-type-has-boolean-where? + #:db-type-transaction-capable? + #:db-type-has-fancy-math? + #:db-type-default-case + #:convert-to-db-default-case + #:database-underlying-type )) (: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 + #: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-list-table-indexes + #:database-index-exists-p + #:database-list-sequences + #:database-sequence-exists-p + #:database-list-attributes + #:database-attribute-type + #:database-describe-table + #:db-backend-has-create/destroy-db? + #:db-type-has-views? + #:db-type-has-subqueries? + #:db-type-has-boolean-where? + #:db-type-transaction-capable? + #:db-type-has-fancy-math? + #:db-type-default-case + #:database-underlying-type + . - ;; Shared exports for re-export by USQL. + ;; Shared exports for re-export by CLSQL. ;; I = Implemented, D = Documented ;; name file ID ;;==================================================== @@ -261,135 +292,135 @@ ;; 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 + #: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 + #: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 + #:*cache-table-queries-default* + #:create-view ; table xx + #:drop-view ; table xx + #:create-index ; table xx + #:drop-index ; table xx + #:truncate-database ;;OODDL - :standard-db-object ; objects xx - :def-view-class ; objects xx - :create-view-from-class ; objects xx - :drop-view-from-class ; objects xx + #: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 + #:instance-refreshed ; objects xx + #: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 + #: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 ;;------------------------------------------------ ;; 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 + #:*loaded-database-types* ; clsql-base xx + #:reload-database-types ; clsql-base xx + #:database-type ; database x + #:is-database-open ;;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 + #:list-views ; table xx + #:view-exists-p ; table xx + #:list-indexes ; table xx + #:list-table-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 + #:view-table ; metaclass 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 + #: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 ;;----------------------------------------------- ;; 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 + #: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 . #1# )) - (:documentation "This is the INTERNAL SQL-Interface package of USQL.")) + (:documentation "This is the INTERNAL SQL-Interface package of CLSQL.")) ;; see http://thread.gmane.org/gmane.lisp.lispworks.general/681 @@ -397,15 +428,20 @@ (setf *packages-for-warn-on-redefinition* (delete "SQL" *packages-for-warn-on-redefinition* :test 'string=)) -(defpackage #:clsql-usql - (:nicknames #:usql #:sql) - (:use :common-lisp) - (:import-from :clsql-usql-sys . #2#) +(defpackage #:clsql + (:use #:common-lisp) + (:import-from #:clsql-sys . #2#) + (:export . #2#) + (:documentation "This is the SQL-Interface package of CLSQL.")) + +(defpackage #:clsql-user + (:use #:common-lisp) + (:import-from #:clsql-sys . #2#) (:export . #2#) - (:documentation "This is the SQL-Interface package of USQL.")) + (:documentation "This is the user package with CLSQL symbols.")) ;; This is from USQL's pcl-patch - #+(or usql-sbcl-pcl usql-cmucl-pcl) + #+(or clsql-sbcl-pcl clsql-cmucl-pcl) (progn ;; Note that this will no longer required for cmucl as of version 19a. (in-package #+cmu :pcl #+sbcl :sb-pcl) @@ -420,13 +456,13 @@ #+sbcl (if (find-package 'sb-mop) - (setq cl:*features* (delete :usql-sbcl-mop cl:*features*)) - (setq cl:*features* (delete :usql-sbcl-pcl cl:*features*))) + (setq cl:*features* (delete :clsql-sbcl-mop cl:*features*)) + (setq cl:*features* (delete :clsql-sbcl-pcl cl:*features*))) #+cmu (if (find-package 'mop) - (setq cl:*features* (delete :usql-cmucl-mop cl:*features*)) - (setq cl:*features* (delete :usql-cmucl-pcl cl:*features*))) + (setq cl:*features* (delete :clsql-cmucl-mop cl:*features*)) + (setq cl:*features* (delete :clsql-cmucl-pcl cl:*features*))) );eval-when