56cdd57a5b9e9416731ecb304e54b4370eeffb3d
[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-reconnect
38      #:database-query
39      #:database-execute-command
40      #:database-query-result-set
41      #:database-dump-result-set
42      #:database-store-next-row
43      #:database-create
44      #:database-destroy
45      #:database-probe
46      #:database-list
47      #:database-describe-table
48      #:database-underlying-type
49
50      #:database-list-tables
51      #:database-list-attributes
52      #:database-attribute-type
53      #:database-create-sequence 
54      #:database-drop-sequence
55      #:database-sequence-next
56      #:sql-escape
57      #:database-sequence-last
58      #:database-set-sequence-position
59      #:database-list-attributes
60      #:database-list-sequences
61      #:database-list-indexes
62      #:database-list-table-indexes
63      #:database-list-views
64      
65      ;; Large objects (Marc B)
66      #:database-create-large-object
67      #:database-write-large-object
68      #:database-read-large-object
69      #:database-delete-large-object
70
71      #:command-output
72      #:make-process-lock
73      #:with-process-lock
74      #:connection-spec
75      #:ensure-keyword
76
77      ;; utils.lisp
78      #:without-interrupts
79      #:make-process-lock
80      #:with-process-lock
81      #:command-output
82      #:symbol-name-default-case
83      #:convert-to-db-default-case
84      #:ensure-keyword
85      
86      ;; Shared exports for re-export by CLSQL-BASE
87      .
88      #1=(#:clsql-condition
89          #:clsql-error
90          #:clsql-simple-error
91          #:clsql-warning
92          #:clsql-simple-warning
93          #:clsql-invalid-spec-error
94          #:clsql-invalid-spec-error-connection-spec
95          #:clsql-invalid-spec-error-database-type
96          #:clsql-invalid-spec-error-template
97          #:clsql-access-error
98          #:clsql-access-error-database-type
99          #:clsql-access-error-connection-spec
100          #:clsql-access-error-error
101          #:clsql-connect-error
102          #:clsql-connect-error-errno
103          #:clsql-sql-error
104          #:clsql-sql-error-database
105          #:clsql-sql-error-expression
106          #:clsql-sql-error-errno
107          #:clsql-sql-error-error
108          #:clsql-database-warning
109          #:clsql-database-warning-database
110          #:clsql-database-warning-message
111          #:clsql-exists-condition
112          #:clsql-exists-condition-new-db
113          #:clsql-exists-condition-old-db
114          #:clsql-exists-warning
115          #:clsql-exists-error
116          #:clsql-closed-error
117          #:clsql-closed-error-database
118          #:clsql-sql-syntax-error
119          #:clsql-type-error
120          #:clsql-odbc-error
121          #:clsql-odbc-error-message
122          
123          #:*loaded-database-types*
124          #:reload-database-types
125          #:*default-database-type*
126          #:*initialized-database-types*
127          #:initialize-database-type
128          #:*connect-if-exists*
129          #:*default-database*
130          #:connected-databases
131          #:database
132          #:database-name
133          #:find-database
134          #:database-name-from-spec
135          #:is-database-open
136
137          ;; accessors for database class
138          #:name
139          #:connection-spec
140          #:transaction
141          #:transaction-level
142          #:conn-pool
143          #:command-recording-stream
144          #:result-recording-stream
145          #:query-recording-stream
146          #:view-classes
147          #:database-type
148          #:database-state
149          #:attribute-cache
150          
151          ;; utils.lisp
152          #:number-to-sql-string
153          #:float-to-sql-string
154          #:sql-escape-quotes
155          
156          ;; time.lisp
157          #:bad-component
158          #:current-day
159          #:current-month
160          #:current-year
161          #:day-duration
162          #:db-timestring
163          #:decode-duration
164          #:decode-time
165          #:duration
166          #:duration+
167          #:duration<
168          #:duration<=
169          #:duration=
170          #:duration>
171          #:duration>=
172          #:duration-day
173          #:duration-hour
174          #:duration-minute
175          #:duration-month
176          #:duration-second
177          #:duration-year
178          #:duration-reduce 
179          #:duration-timestring
180          #:extract-roman 
181          #:format-duration
182          #:format-time
183          #:get-time
184          #:utime->time
185          #:interval-clear
186          #:interval-contained
187          #:interval-data
188          #:interval-edit
189          #:interval-end
190          #:interval-match
191          #:interval-push
192          #:interval-relation
193          #:interval-start
194          #:interval-type
195          #:make-duration
196          #:make-interval
197          #:make-time
198          #:merged-time
199          #:midnight
200          #:month-name
201          #:parse-date-time
202          #:parse-timestring
203          #:parse-yearstring
204          #:print-date
205          #:roll
206          #:roll-to
207          #:time
208          #:time+
209          #:time-
210          #:time-by-adding-duration
211          #:time-compare
212          #:time-difference
213          #:time-dow
214          #:time-element
215          #:time-max
216          #:time-min
217          #:time-mjd
218          #:time-msec
219          #:time-p
220          #:time-sec
221          #:time-well-formed
222          #:time-ymd
223          #:time<
224          #:time<=
225          #:time=
226          #:time>
227          #:time>=
228          #:timezone
229          #:universal-time
230          #:wall-time
231          #:wall-timestring
232          #:week-containing
233          #:gregorian-to-mjd
234          #:mjd-to-gregorian
235          x
236          ;; recording.lisp -- SQL I/O Recording 
237          #:record-sql-action
238          #:add-sql-stream                 ; recording  xx
239          #:delete-sql-stream              ; recording  xx
240          #:list-sql-streams               ; recording  xx
241          #:sql-recording-p                ; recording  xx
242          #:sql-stream                     ; recording  xx
243          #:start-sql-recording            ; recording  xx
244          #:stop-sql-recording             ; recording  xx
245
246          ;; database.lisp -- Connection
247          #:*default-database-type*                ; clsql-base xx
248          #:*default-database*             ; classes    xx
249          #:connect                                ; database   xx
250          #:*connect-if-exists*            ; database   xx
251          #:connected-databases            ; database   xx
252          #:database                       ; database   xx
253          #:database-name                     ; database   xx
254          #:disconnect                     ; database   xx
255          #:reconnect                         ; database
256          #:find-database                     ; database   xx
257          #:status                            ; database   xx
258          #:with-database
259          #:with-default-database
260          #:disconnect-pooled
261          #:create-database
262          #:destroy-database
263          #:probe-database
264          #:list-databases
265
266          ;; basic-sql.lisp
267          #:query
268          #:execute-command
269          #:write-large-object
270          #:read-large-object
271          #:delete-large-object
272          #:do-query
273          #:map-query
274          #:describe-table
275
276          ;; Transactions
277          #:with-transaction
278          #:commit-transaction
279          #:rollback-transaction
280          #:add-transaction-commit-hook
281          #:add-transaction-rollback-hook
282          #:commit                            ; transact   xx
283          #:rollback                       ; transact   xx
284          #:with-transaction               ; transact   xx               .
285          #:start-transaction                 ; transact   xx
286          #:in-transaction-p                  ; transact   xx
287          #:database-start-transaction
288          #:database-abort-transaction
289          #:database-commit-transaction
290          #:transaction-level
291          #:transaction
292
293          ;; Database features specialized by backend
294          #:db-type-use-column-on-drop-index?
295          #:db-type-has-views?
296          #:db-type-has-subqueries?
297          #:db-type-has-boolean-where?
298          #:db-type-has-fancy-math?
299          #:db-type-default-case 
300          #:db-backend-has-create/destroy-db?
301          #:db-type-transaction-capable?
302          ))
303     (:documentation "This is the INTERNAL SQL-Interface package of CLSQL-BASE."))
304
305 (defpackage #:clsql-base
306     (:import-from #:clsql-base-sys . #1#)
307     (:export . #1#)
308     (:documentation "This is the SQL-Interface package of CLSQL-BASE."))
309 );eval-when
310
311