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