cfed6e8da8310e5b8a70588f3f15052e863d3749
[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 (defpackage #:clsql-base
27   (:use #:cl)
28   (:export
29      #:check-connection-spec
30      #:database-type-load-foreign
31      #:database-type-library-loaded ;; KMR - Tests if foreign library okay
32      #:database-initialize-database-type
33      #:database-connect
34      #:database-disconnect
35      #:database-reconnect
36      #:database-query
37      #:database-execute-command
38      #:database-query-result-set
39      #:database-dump-result-set
40      #:database-store-next-row
41      #:database-create
42      #:database-destroy
43      #:database-probe
44      #:database-list
45      #:database-describe-table
46      #:database-underlying-type
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-table-indexes
61      #:database-list-views
62      
63      ;; Large objects 
64      #:database-create-large-object
65      #:database-write-large-object
66      #:database-read-large-object
67      #:database-delete-large-object
68      #:create-large-object
69      #:write-large-object
70      #:read-large-object
71      #:delete-large-object
72
73      #:command-output
74      #:make-process-lock
75      #:with-process-lock
76      #:connection-spec
77      #:ensure-keyword
78
79      ;; utils.lisp
80      #:without-interrupts
81      #:make-process-lock
82      #:with-process-lock
83      #:command-output
84      #:symbol-name-default-case
85      #:convert-to-db-default-case
86      #:ensure-keyword
87      
88      #: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      #:*backend-warning-behavior*
123      
124      #:*loaded-database-types*
125      #:reload-database-types
126      #:*default-database-type*
127      #:*initialized-database-types*
128      #:initialize-database-type
129      #:*connect-if-exists*
130      #:*default-database*
131      #:connected-databases
132      #:database
133      #:database-name
134      #:find-database
135      #:database-name-from-spec
136      #:is-database-open
137      
138      ;; accessors for database class
139      #:name
140      #:connection-spec
141      #:transaction
142      #:transaction-level
143      #:conn-pool
144      #:command-recording-stream
145      #:result-recording-stream
146      #:record-caches
147      #:view-classes
148      #:database-type
149      #:database-state
150      #:attribute-cache
151      
152      ;; utils.lisp
153      #:number-to-sql-string
154      #:float-to-sql-string
155      #:sql-escape-quotes
156      
157      ;; time.lisp
158      #:bad-component
159      #:current-day
160      #:current-month
161      #:current-year
162      #:day-duration
163      #:db-timestring
164      #:decode-duration
165      #:decode-time
166      #:duration
167      #:duration+
168      #:duration<
169      #:duration<=
170      #:duration=
171      #:duration>
172      #:duration>=
173      #:duration-day
174      #:duration-hour
175      #:duration-minute
176      #:duration-month
177      #:duration-second
178      #:duration-year
179      #:duration-reduce 
180      #:duration-timestring
181      #:extract-roman 
182      #:format-duration
183      #:format-time
184      #:get-time
185      #:utime->time
186      #:interval-clear
187      #:interval-contained
188      #:interval-data
189      #:interval-edit
190      #:interval-end
191      #:interval-match
192      #:interval-push
193      #:interval-relation
194      #:interval-start
195      #:interval-type
196      #:make-duration
197      #:make-interval
198      #:make-time
199      #:merged-time
200      #:midnight
201      #:month-name
202      #:parse-date-time
203      #:parse-timestring
204      #:parse-yearstring
205      #:print-date
206      #:roll
207      #:roll-to
208      #:time
209      #:time+
210      #:time-
211      #:time-by-adding-duration
212      #:time-compare
213      #:time-difference
214      #:time-dow
215      #:time-element
216      #:time-max
217      #:time-min
218      #:time-mjd
219      #:time-msec
220      #:time-p
221      #:time-sec
222      #:time-well-formed
223      #:time-ymd
224      #:time<
225      #:time<=
226      #:time=
227      #:time>
228      #:time>=
229      #:timezone
230      #:universal-time
231      #:wall-time
232      #:wall-timestring
233      #:week-containing
234      #:gregorian-to-mjd
235      #:mjd-to-gregorian
236
237      ;; recording.lisp -- SQL I/O Recording 
238      #:record-sql-command
239      #:record-sql-result
240      #:add-sql-stream                 ; recording  xx
241      #:delete-sql-stream                  ; recording  xx
242      #:list-sql-streams           ; recording  xx
243      #:sql-recording-p            ; recording  xx
244      #:sql-stream                         ; recording  xx
245      #:start-sql-recording                ; recording  xx
246      #:stop-sql-recording                 ; recording  xx
247
248      ;; database.lisp -- Connection
249      #:*default-database-type*            ; clsql-base xx
250      #:*default-database*                 ; classes    xx
251      #:connect                            ; database   xx
252      #:*connect-if-exists*                ; database   xx
253      #:connected-databases                ; database   xx
254      #:database                   ; database   xx
255      #:database-name                     ; database   xx
256      #:disconnect                         ; database   xx
257      #:reconnect                         ; database
258      #:find-database                     ; database   xx
259      #:status                            ; database   xx
260      #:with-database
261      #:with-default-database
262      #:disconnect-pooled
263      #:create-database
264      #:destroy-database
265      #:probe-database
266      #:list-databases
267      
268      ;; basic-sql.lisp
269      #:query
270      #:execute-command
271      #:write-large-object
272      #:read-large-object
273      #:delete-large-object
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