Kind | Covered | All | % |
expression | 1 | 1 | 100.0 |
branch | 0 | 0 | nil |
1
;; -*- mode: Lisp; Syntax: Common-Lisp; -*-
2
;;;
3
;;; Copyright (c) 2006 by the authors.
4
;;;
5
;;; See LICENCE for details.
6
7
(in-package :cl-user)
8
9
(defpackage :cl-perec
10
(:nicknames :prc)
11
12
(:use :common-lisp
13
:closer-mop
14
:iterate
15
:arnesi
16
:bind
17
:s-base64
18
:computed-class
19
:defclass-star
20
:trivial-garbage
21
:flexi-streams
22
:local-time
23
:parse-number
24
:metacopy-with-contextl
25
:cl-ppcre
26
:cl-store
27
:cl-containers
28
:cl-rdbms)
29
30
(:shadow #:log
31
#:name
32
#:set
33
#:time
34
#:form
35
#:variable
36
#:transaction
37
#:float-type)
38
39
(:shadowing-import-from :iterate
40
#:finish)
41
42
(:shadowing-import-from :cl-containers
43
#:dequeue
44
#:enqueue
45
#:parent)
46
47
(:shadowing-import-from :flexi-streams
48
#:octets-to-string
49
#:string-to-octets)
50
51
(:shadowing-import-from :cl-rdbms
52
#:update-index)
53
54
(:export ;; defining persistent classes
55
#:defpclass
56
#:defpclass*
57
#:find-class
58
#:abstract-p
59
#:cache-p
60
#:prefetch-p
61
#:index-p
62
#:unique-p
63
#:required-p
64
65
;; defining persistent associations
66
#:defassociation
67
#:defassociation*
68
#:find-association
69
70
;; defining persistent types
71
#:defptype
72
#:find-type
73
#:normalized-type-of
74
#:parse-type
75
#:primitive-type-p
76
#:destructure-type
77
#:def-member-type
78
79
;; persistent class meta objects
80
#:persistent-class
81
#:persistent-association
82
#:persistent-slot-definition
83
#:persistent-direct-slot-definition
84
#:persistent-effective-slot-definition
85
#:persistent-association-end-slot-definition
86
#:persistent-association-end-direct-slot-definition
87
#:persistent-association-end-effective-slot-definition
88
#:persistent-type
89
#:integer-type
90
#:float-type
91
#:string-type
92
#:text-type
93
#:member-type
94
#:serialized-type
95
#:symbol-type
96
97
;; primitve types
98
#:t
99
#:serialized
100
#:unbound
101
#:null
102
#:boolean
103
#:integer-16
104
#:integer-32
105
#:integer-64
106
#:integer
107
#:float-32
108
#:float-64
109
#:float
110
#:double
111
#:double-float
112
#:number
113
#:string
114
#:text
115
#:symbol
116
#:symbol*
117
#:date
118
#:time
119
#:timestamp
120
#:duration
121
#:form
122
#:member
123
#:set
124
#:or
125
126
;; persistent classes, all persistent-classes are valid slot types
127
#:persistent-object
128
#:persistent-set
129
130
;; most of the transaction API is inherited from cl-rdbms
131
#:with-database
132
#:*database*
133
#:with-transaction
134
#:with-transaction*
135
#:*transaction*
136
#:mark-transaction-for-commit-only
137
#:mark-transaction-for-rollback-only
138
#:transaction-timestamp
139
#:transaction-mixin
140
#:transaction-with-commit-hooks-mixin
141
#:register-commit-hook
142
143
;; managing persistent instances
144
#:with-making-persistent-instances
145
#:with-making-transient-instances
146
#:make-persistent
147
#:make-transient
148
#:oid-of
149
#:persistent-p
150
#:created-p
151
#:modified-p
152
#:deleted-p
153
#:instance-in-transaction-p
154
#:transaction-of
155
#:p-eq
156
#:load-instance
157
#:revive-instance
158
#:purge-instance
159
#:purge-instances
160
#:print-persistent-instance
161
162
;; most of the collection API is inherited from cl-containers
163
#:insert-item
164
#:first-item
165
#:delete-item
166
#:size
167
#:empty-p
168
#:empty!
169
#:search-for-item
170
#:iterate-items
171
#:list-of
172
173
;; query
174
#:query
175
#:copy-query
176
#:query-builder
177
#:simple-query-builder
178
#:select
179
#:select-first-matching
180
#:select-last-matching
181
#:select-instance
182
#:select-instances
183
#:select-similar-instance
184
#:select-similar-instances
185
#:make-query
186
#:current-query-variable-of
187
#:add-lexical-variable
188
#:add-query-variable
189
#:add-assert
190
#:add-collect
191
#:execute-query
192
#:unique
193
#:flat
194
#:result-set
195
#:result-type-of
196
#:define-query-macro
197
#:like
198
#:avg
199
#:sum
200
#:purge
201
202
;; scroll
203
#:scroll
204
#:elements
205
#:page
206
#:first-page!
207
#:previous-page!
208
#:next-page!
209
#:last-page!
210
#:page-count
211
#:page-size
212
#:element-count
213
#:fixed-size-scroll
214
#:simple-scroll
215
216
;; turning cache on and off
217
#:with-caching-slot-values
218
#:without-caching-slot-values
219
220
;; laziness
221
#:with-lazy-collections
222
#:without-lazy-collections
223
224
;; database and cache access
225
#:with-bypassing-database-access
226
#:without-bypassing-database-access))
227
228
(in-package :cl-perec)
229
230
(import-sql-syntax-node-names)
231
(import-sql-constructor-names)
232
233
(define-computed-universe compute-as)