f8197592260b7e987fce2cfec69601fecd311aae
[clsql.git] / base / package.lisp
1 ;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*-
2 ;;;; *************************************************************************
3 ;;;; FILE IDENTIFICATION
4 ;;;;
5 ;;;; Name:          package.lisp
6 ;;;; Purpose:       Package definition for base (low-level) SQL interface
7 ;;;; Programmers:   Kevin M. Rosenberg based on
8 ;;;;                Original code by Pierre R. Mai 
9 ;;;; Date Started:  Feb 2002
10 ;;;;
11 ;;;; $Id$
12 ;;;;
13 ;;;; This file, part of CLSQL, is Copyright (c) 2002-2004 by Kevin M. Rosenberg
14 ;;;; and Copyright (c) 1999-2001 by Pierre R. Mai
15 ;;;;
16 ;;;; CLSQL users are granted the rights to distribute and use this software
17 ;;;; as governed by the terms of the Lisp Lesser GNU Public License
18 ;;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL.
19 ;;;; *************************************************************************
20
21 (in-package #:cl-user)
22
23 ;;;; This file makes the required package definitions for CLSQL's
24 ;;;; core packages.
25
26 (eval-when (:compile-toplevel :load-toplevel :execute)
27 (defpackage #:clsql-base-sys
28   (:use #:cl)
29   (:export
30      ;; "Private" exports for use by interface packages
31      #:check-connection-spec
32      #:database-type-load-foreign
33      #:database-type-library-loaded ;; KMR - Tests if foreign library okay
34      #:database-initialize-database-type
35      #:database-connect
36      #:database-disconnect
37      #:database-query
38      #:database-execute-command
39      #:database-query-result-set
40      #:database-dump-result-set
41      #:database-store-next-row
42      
43      ;; For UncommonSQL support
44      #:database-list-tables
45      #:database-list-attributes
46      #:database-attribute-type
47      #:database-create-sequence 
48      #:database-drop-sequence
49      #:database-sequence-next
50      #:sql-escape
51      #:database-sequence-last
52      #:database-set-sequence-position
53      #:database-list-attributes
54      #:database-list-sequences
55      #:database-list-indexes
56      #:database-list-views
57      
58      ;; Support for pooled connections
59      #:database-type
60
61      ;; Large objects (Marc B)
62      #:database-create-large-object
63      #:database-write-large-object
64      #:database-read-large-object
65      #:database-delete-large-object
66      
67      ;; Shared exports for re-export by CLSQL-BASE
68      .
69      #1=(#:clsql-condition
70          #:clsql-error
71          #:clsql-simple-error
72          #:clsql-warning
73          #:clsql-simple-warning
74          #:clsql-invalid-spec-error
75          #:clsql-invalid-spec-error-connection-spec
76          #:clsql-invalid-spec-error-database-type
77          #:clsql-invalid-spec-error-template
78          #:clsql-connect-error
79          #:clsql-connect-error-database-type
80          #:clsql-connect-error-connection-spec
81          #:clsql-connect-error-errno
82          #:clsql-connect-error-error
83          #:clsql-sql-error
84          #:clsql-sql-error-database
85          #:clsql-sql-error-expression
86          #:clsql-sql-error-errno
87          #:clsql-sql-error-error
88          #:clsql-database-warning
89          #:clsql-database-warning-database
90          #:clsql-database-warning-message
91          #:clsql-exists-condition
92          #:clsql-exists-condition-new-db
93          #:clsql-exists-condition-old-db
94          #:clsql-exists-warning
95          #:clsql-exists-error
96          #:clsql-closed-error
97          #:clsql-closed-error-database
98          #:clsql-sql-syntax-error
99          #:clsql-type-error
100          
101          #:*loaded-database-types*
102          #:reload-database-types
103          #:*default-database-type*
104          #:*initialized-database-types*
105          #:initialize-database-type
106          #:*connect-if-exists*
107          #:*default-database*
108          #:connected-databases
109          #:database
110          #:database-name
111          #:closed-database
112          #:find-database
113          #:database-name-from-spec
114
115          ;; accessors for database class
116          #:name
117          #:connection-spec
118          #:transaction
119          #:transaction-level
120          #:conn-pool
121          
122          ;; utils.lisp
123          #:number-to-sql-string
124          #:float-to-sql-string
125          #:sql-escape-quotes
126          
127          ;; time.lisp
128          #:bad-component
129          #:current-day
130          #:current-month
131          #:current-year
132          #:day-duration
133          #:db-timestring
134          #:decode-duration
135          #:decode-time
136          #:duration
137          #:duration+
138          #:duration<
139          #:duration<=
140          #:duration=
141          #:duration>
142          #:duration>=
143          #:duration-day
144          #:duration-hour
145          #:duration-minute
146          #:duration-month
147          #:duration-second
148          #:duration-year
149          #:duration-reduce                
150          #:format-duration
151          #:format-time
152          #:get-time
153          #:interval-clear
154          #:interval-contained
155          #:interval-data
156          #:interval-edit
157          #:interval-end
158          #:interval-match
159          #:interval-push
160          #:interval-relation
161          #:interval-start
162          #:interval-type
163          #:make-duration
164          #:make-interval
165          #:make-time
166          #:merged-time
167          #:midnight
168          #:month-name
169          #:parse-date-time
170          #:parse-timestring
171          #:print-date
172          #:roll
173          #:roll-to
174          #:time
175          #:time+
176          #:time-
177          #:time-by-adding-duration
178          #:time-compare
179          #:time-difference
180          #:time-dow
181          #:time-element
182          #:time-max
183          #:time-min
184          #:time-mjd
185          #:time-msec
186          #:time-p
187          #:time-sec
188          #:time-well-formed
189          #:time-ymd
190          #:time<
191          #:time<=
192          #:time=
193          #:time>
194          #:time>=
195          #:timezone
196          #:universal-time
197          #:wall-time
198          #:wall-timestring
199          #:week-containing
200
201          ;; recording.lisp -- SQL I/O Recording 
202          #:record-sql-comand
203          #:record-sql-result
204          #:add-sql-stream                 ; recording  xx
205          #:delete-sql-stream              ; recording  xx
206          #:list-sql-streams               ; recording  xx
207          #:sql-recording-p                ; recording  xx
208          #:sql-stream                     ; recording  xx
209          #:start-sql-recording            ; recording  xx
210          #:stop-sql-recording             ; recording  xx
211
212          ;; database.lisp -- Connection
213          #:*default-database-type*                ; clsql-base xx
214          #:*default-database*             ; classes    xx
215          #:connect                                ; database   xx
216          #:*connect-if-exists*            ; database   xx
217          #:connected-databases            ; database   xx
218          #:database                       ; database   xx
219          #:database-name                     ; database   xx
220          #:disconnect                     ; database   xx
221          #:reconnect                         ; database
222          #:find-database                     ; database   xx
223          #:status                            ; database   xx
224          #:with-database
225          #:with-default-database
226
227          ;; basic-sql.lisp
228          #:query
229          #:execute-command
230          #:write-large-object
231          #:read-large-object
232          #:delete-large-object
233
234          ;; Transactions
235          #:with-transaction
236          #:commit-transaction
237          #:rollback-transaction
238          #:add-transaction-commit-hook
239          #:add-transaction-rollback-hook
240          #:commit                            ; transact   xx
241          #:rollback                       ; transact   xx
242          #:with-transaction               ; transact   xx               .
243          #:start-transaction                 ; transact   xx
244          #:in-transaction-p                  ; transact   xx
245          #:database-start-transaction
246          #:database-abort-transaction
247          #:database-commit-transaction
248          #:transaction-level
249          #:transaction
250
251          ))
252     (:documentation "This is the INTERNAL SQL-Interface package of CLSQL-BASE."))
253
254 (defpackage #:clsql-base
255     (:import-from #:clsql-base-sys . #1#)
256     (:export . #1#)
257     (:documentation "This is the SQL-Interface package of CLSQL-BASE."))
258 );eval-when
259
260