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