faefebd9ee95ceeaf945936b2b7eaa8277062c6f
[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      
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
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