The integral Reference Manual

This is the integral Reference Manual, version 0.0.1, generated automatically by Declt version 4.0 beta 2 "William Riker" on Wed May 15 05:37:09 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

The main system appears first, followed by any subsystem dependency.


2.1 integral

Object Relational Mapper for Common Lisp

Author

Eitaro Fukamachi

License

BSD 3-Clause

Long Description

# IMPORTANT NOTICE

**Integral is not recommended for a new project.** Consider using [Mito](https://github.com/fukamachi/mito) instead.

# Integral

[![Build Status](https://travis-ci.org/fukamachi/integral.svg?branch=master)](https://travis-ci.org/fukamachi/integral)

Integral is an object relational mapper for Common Lisp based on [CL-DBI](https://github.com/fukamachi/cl-dbi) and [SxQL](https://github.com/fukamachi/sxql).

## Warning

This software is still ALPHA quality. The APIs will be likely to change.

Should work well with MySQL/SQLite3 on SBCL/Clozure CL.

## Usage

“‘common-lisp
(defclass tweet ()
((id :type integer
:primary-key t
:auto-increment t
:reader tweet-id)
(status :type text
:initarg :status
:accessor tweet-status)
(user :type (varchar 32)
:initarg :user
:accessor tweet-user))
(:metaclass <dao-table-class>))

(connect-toplevel :mysql
:database-name "myapp"
:username "nitro_idiot"
:password "xxxxxxxx")

(let ((tw (make-instance ’tweet
:status "Good morning, world."
:user "nitro_idiot")))
(save-dao tw))

;; Same as the above
(create-dao ’tweet
:status "Good morning, world."
:user "nitro_idiot")

(let ((tw (find-dao ’tweet 3)))
(with-slot (status user) tw
(format t "~A said ~A" user status))
(setf (tweet-status tw) "Good evening, world.")
(save-dao tw))

(let ((tw (find-dao ’tweet 3)))
(delete-dao tw))
“‘

## Quickstart

### Installation

“‘common-lisp
(ql:quickload :integral)
“‘

### Connecting to database

‘connect-toplevel‘ is a function to establish a connection to a database.

“‘common-lisp
(import ’integral:connect-toplevel)

(connect-toplevel :mysql
:database-name "testdb"
:username "nitro_idiot"
:password "password")
“‘

Integral is intended to work with MySQL, PostgreSQL and SQLite3. Replace ‘:mysql‘ the above by your favorite RDBMS engine name.

### Defining a database table

In Integral, database tables are defined as CLOS classes. A table definition looks like this.

“‘common-lisp
(import ’integral:<dao-table-class>)

(defclass user ()
((name :col-type text
:initarg :name))
(:metaclass <dao-table-class>))
“‘

This ‘user‘ class means a "user" table in a database with a single "TEXT" column, "name".

‘table-definition‘ is a function to generate a ‘CREATE TABLE‘ SQL for it.

“‘common-lisp
(import ’(integral:table-definition integral:execute-sql))

(table-definition ’user)
;=> "CREATE TABLE ‘user‘ (‘%oid‘ SERIAL NOT NULL AUTO_INCREMENT PRIMARY KEY, ‘name‘ TEXT)"
; NIL

(execute-sql (table-definition ’user))

;; Same as the above except ignoring CREATE TABLE if it already exists.
(ensure-table-exists ’user)
“‘

### Adding records

Table classes can be called with ‘make-instance‘ like Common Lisp standard-class.

“‘common-lisp
(make-instance ’user :name "Eitaro Fukamachi")
;=> #<USER %oid: <unbound>>
“‘

The instance won’t be recorded in a database. Call ‘save-dao‘ it to add the record to a database.

“‘common-lisp
(import ’integral:save-dao)

(save-dao (make-instance ’user :name "Eitaro Fukamachi"))
;=> #<USER %oid: 1>

(save-dao (make-instance ’user :name "Tomohiro Matsuyama"))
;=> #<USER %oid: 2>
“‘

### Retrieving records

“‘common-lisp
(import ’integral:select-dao)

(select-dao ’user)
;=> (#<USER %oid: 1> #<USER %oid: 2>)

(mapcar (lambda (row)
(slot-value row ’name))
(select-dao ’user))
;=> ("Eitaro Fukamachi" "Tomohiro Matsuyama")
“‘

‘select-dao‘ takes SxQL clauses. You can specify WHERE, ORDER BY or LIMIT with it.

“‘common-lisp
(import ’(sxql:where sxql:limit))

(select-dao ’user
(where (:= :name "Eitaro Fukamachi"))
(limit 1))
;=> (#<USER %oid: 1>)
“‘

You can also use ‘find-dao‘ for retrieving a single row.

“‘common-lisp
(import ’integral:find-dao)

(find-dao ’user 1)
;=> #<USER %oid: 1>
“‘

### Updating records

“‘common-lisp
(let ((user (find-dao ’user 1)))
(setf (slot-value user ’name) "深町英太郎")
(save-dao user))
“‘

### Deleting records

“‘common-lisp
(import ’integral:delete-dao)

(let ((user (find-dao ’user 1)))
(setf (slot-value user ’name) "深町英太郎")
(delete-dao user))
“‘

### Migration

I introduced Integral generates a table schema from a CLOS class definition. But how can we do when we want to change the table schema after creating it.

Integral has a function to apply the change of the class definition to a table schema. It is generally known as "Migration".

For example, if you want to record a "profile" of users to "user" table, add a slot for it.

“‘common-lisp
(defclass user ()
((name :col-type text
:initarg :name)
(profile :col-type text
:initarg :profile))
(:metaclass <dao-table-class>))
“‘

Then call ‘migrate-table‘.

“‘common-lisp
(import ’integral:migrate-table)

(migrate-table ’user)
;-> ALTER TABLE ‘user‘ ADD COLUMN ‘profile‘ TEXT AFTER ‘name‘;
;=> NIL
“‘

All changes of indexes and column types are also followed.

“‘common-lisp
(defclass user ()
((id :col-type serial
:primary-key t)
(name :col-type (varchar 64)
:initarg :name)
(profile :col-type text
:initarg :profile))
(:metaclass <dao-table-class>))
;-> ALTER TABLE ‘user‘ DROP COLUMN ‘%oid‘;
; ALTER TABLE ‘user‘ MODIFY COLUMN ‘name‘ VARCHAR(64);
; ALTER TABLE ‘user‘ ADD COLUMN ‘id‘ SERIAL NOT NULL PRIMARY KEY FIRST;
;=> NIL
“‘

### Mystique: Auto-migration

In development, class redefinitions are done many times. It’s boring to execute ‘migrate-table‘ for each single time, isn’t it?

Integral has **auto-migration** feature for executing ‘migrate-table‘ after redefinitions automatically.

Set ‘*auto-migration-mode*‘ T to use the mode.

“‘common-lisp
(setf integral:*auto-migration-mode* t)
“‘

### Another Way: define a class from an existing table

If you’d like to administrate a database directly by writing raw SQLs, or wanna use Integral for an existing database, you can generate slot definitions from it.

“‘common-lisp
(defclass tweet () ()
(:metaclass <dao-table-class>)
(:generate-slots t))
“‘

‘:generate-slots‘ option means slot definitions follow database schema. Note you must establish a database connection before the first ‘make-instance‘.

### inflate/deflate

‘inflate‘ and ‘deflate‘ is a feature to convert data between a database and Common Lisp.

“‘common-lisp
(defclass user ()
((name :type string
:initarg :name)
(created-at :type timestamp
:col-type integer
:initarg :created-at))
(:metaclass integral:<dao-table-class>))
;=> #<INTEGRAL.TABLE:<DAO-TABLE-CLASS> USER>

(find-dao ’user 1)
;=> #<USER #x302001D9452D>

(slot-value * ’created-at)
;=> 3599088727

;; Define inflate/deflate methods
(defmethod integral:inflate ((object user) (slot-name (eql ’created-at)) value)
(local-time:universal-to-timestamp value))
(defmethod integral:deflate ((object user) (slot-name (eql ’created-at)) value)
(local-time:timestamp-to-universal value))

(slot-value (find-dao ’user 1) ’created-at)
;=> @2014-01-19T11:52:07.000000+09:00
“‘

You can also set ‘inflate‘ and ‘deflate‘ functions via ‘:inflate‘ or ‘:deflate‘ keywords in ‘defclass‘.

“‘common-lisp
(defclass user ()
((name :type string
:initarg :name)
(created-at :type timestamp
:col-type integer
:initarg :created-at
:inflate #’local-time:universal-to-timestamp
:deflate #’local-time:timestamp-to-universal))
(:metaclass integral:<dao-table-class>))
“‘

### Relations

Although Integral doesn’t have a specific feature for relations like ‘:has-a‘ and ‘:has-many‘, it can be done with normal methods.

“‘common-lisp
(defmethod user-config ((user user))
(find-dao ’user-config (user-id user)))

(defmethod user-entries ((user user))
(select-dao ’entry (where (:= :user_id (user-id user)))))
“‘

### Wanna write a raw SQL?

“‘common-lisp
(import ’integral:retrieve-by-sql)

(retrieve-by-sql "SELECT * FROM user")
;=> ((:%oid 1 :name "深町英太郎"
; :profile "I love Common Lisp and beer")
; (:%oid 2 :name "Tomohiro Matsuyama"
; :profile NIL))
“‘

‘retrieve-by-sql‘ takes ‘:as‘ keyword argument to specify a class of the result record.

“‘common-lisp
(retrieve-sql "SELECT * FROM user" :as ’user)
;=> (#<USER %oid: 1> #<USER %oid: 2>)
“‘

## Symbols

### Connections

* connect-toplevel (driver-name &rest args &key database-name &allow-other-keys)
* disconnect-toplevel ()

### Classes

* &lt;dao-class&gt;
* &lt;dao-table-class&gt;
* table-name (class)
* table-definition (class &key (yield t) if-not-exists)
* inflate (object slot-name value)
* deflate (object slot-name value)
* migrate-table (class)
* ensure-table-exists (class)
* recreate-table (class)
* \*auto-migration-mode\*

### SQL

* select-dao ((class &lt;dao-table-class&gt;) &rest expressions)
* insert-dao ((obj &lt;dao-class&gt;))
* create-dao ((class &lt;dao-table-class&gt;) &rest initargs)
* update-dao ((obj &lt;dao-class&gt;))
* delete-dao ((obj &lt;dao-class&gt;))
* execute-sql ((sql string) &optional binds)
* retrieve-by-sql ((sql string) &key binds as)
* save-dao ((obj &lt;dao-class&gt;))
* where
* order-by
* group-by
* limit

### Data types

* serial
* tinyint
* smallint
* mediumint
* bigint
* text
* varchar
* enum
* datetime
* date
* timestamp

### Errors

* &lt;integral-error&gt;
* &lt;connection-not-established-error&gt;
* &lt;unknown-primary-key-error&gt;
* &lt;type-missing-error&gt;
* &lt;migration-error&gt;

## See Also

* [CL-DBI](http://8arrow.org/cl-dbi/) - Database independent interface library.
* [SxQL](http://8arrow.org/sxql/) - SQL builder library.

## Author

* Eitaro Fukamachi (e.arrows@gmail.com)

## Copyright

Copyright (c) 2014 Eitaro Fukamachi (e.arrows@gmail.com)

# License

Licensed under the BSD 3-Clause License.

Version

0.0.1

Dependencies
  • cl-syntax-annot (system).
  • sxql (system).
  • dbi (system).
  • cl-ppcre (system).
  • closer-mop (system).
  • clos-fixtures (system).
  • split-sequence (system).
  • group-by (system).
  • iterate (system).
  • alexandria (system).
  • trivial-types (system).
Source

integral.asd.

Child Component

src (module).


3 Modules

Modules are listed depth-first from the system components tree.


3.1 integral/src

Source

integral.asd.

Parent Component

integral (system).

Child Components

3.2 integral/src/connection-drivers

Dependencies
Source

integral.asd.

Parent Component

src (module).

Child Components

4 Files

Files are sorted by type and then listed depth-first from the systems components trees.


4.1 Lisp


4.1.1 integral/integral.asd

Source

integral.asd.

Parent Component

integral (system).

ASDF Systems

integral.

Packages

integral-asd.


4.1.2 integral/src/integral.lisp

Dependencies
Source

integral.asd.

Parent Component

src (module).

Packages

integral.

Public Interface
Internals

4.1.3 integral/src/table.lisp

Dependencies
Source

integral.asd.

Parent Component

src (module).

Packages

integral.table.

Public Interface
Internals

4.1.4 integral/src/column.lisp

Dependencies
Source

integral.asd.

Parent Component

src (module).

Packages

integral.column.

Public Interface
Internals

4.1.5 integral/src/connection.lisp

Dependencies
Source

integral.asd.

Parent Component

src (module).

Packages

integral.connection.

Public Interface
Internals

4.1.6 integral/src/connection-drivers/mysql.lisp

Source

integral.asd.

Parent Component

connection-drivers (module).

Packages

integral.connection.mysql.

Public Interface

4.1.7 integral/src/connection-drivers/postgres.lisp

Source

integral.asd.

Parent Component

connection-drivers (module).

Packages

integral.connection.postgres.

Public Interface
Internals

get-serial-keys (function).


4.1.8 integral/src/connection-drivers/sqlite3.lisp

Source

integral.asd.

Parent Component

connection-drivers (module).

Packages

integral.connection.sqlite3.

Public Interface
Internals

4.1.9 integral/src/database.lisp

Dependency

connection.lisp (file).

Source

integral.asd.

Parent Component

src (module).

Packages

integral.database.

Public Interface

4.1.10 integral/src/migration.lisp

Dependencies
Source

integral.asd.

Parent Component

src (module).

Packages

integral.migration.

Public Interface
Internals

4.1.11 integral/src/fixture.lisp

Dependencies
Source

integral.asd.

Parent Component

src (module).

Packages

integral.fixture.

Public Interface

register-fixture (method).


4.1.12 integral/src/type.lisp

Dependency

util.lisp (file).

Source

integral.asd.

Parent Component

src (module).

Packages

integral.type.

Public Interface
Internals

4.1.13 integral/src/error.lisp

Source

integral.asd.

Parent Component

src (module).

Packages

integral.error.

Public Interface

4.1.14 integral/src/variable.lisp

Source

integral.asd.

Parent Component

src (module).

Packages

integral.variable.

Public Interface

*auto-migration-mode* (special variable).


4.1.15 integral/src/util.lisp

Source

integral.asd.

Parent Component

src (module).

Packages

integral.util.

Public Interface
Internals

%list-diff (function).


5 Packages

Packages are listed by definition order.


5.1 integral.error

Source

error.lisp.

Use List

common-lisp.

Public Interface

5.2 integral.table

Source

table.lisp.

Use List
  • common-lisp.
  • iterate.
Public Interface
Internals

5.3 integral.connection.mysql

Source

mysql.lisp.

Use List
  • common-lisp.
  • sxql.
Public Interface

5.4 integral.database

Source

database.lisp.

Use List

common-lisp.

Public Interface

5.5 integral.connection.sqlite3

Source

sqlite3.lisp.

Use List

common-lisp.

Public Interface
Internals

5.6 integral

Source

integral.lisp.

Use List
  • common-lisp.
  • iterate.
  • sxql.
Public Interface
Internals

5.7 integral.column

Source

column.lisp.

Use List
  • cl-annot.class.
  • common-lisp.
Public Interface
Internals

5.8 integral.type

Source

type.lisp.

Use List

common-lisp.

Public Interface
Internals

5.9 integral.variable

Source

variable.lisp.

Use List

common-lisp.

Public Interface

*auto-migration-mode* (special variable).


5.10 integral.migration

Source

migration.lisp.

Use List

common-lisp.

Public Interface
Internals

5.11 integral.util

Source

util.lisp.

Use List

common-lisp.

Public Interface
Internals

%list-diff (function).


5.12 integral.connection

Source

connection.lisp.

Use List

common-lisp.

Public Interface
Internals

5.13 integral.connection.postgres

Source

postgres.lisp.

Use List
  • common-lisp.
  • sxql.
Public Interface
Internals

get-serial-keys (function).


5.14 integral-asd

Source

integral.asd.

Use List
  • asdf/interface.
  • common-lisp.

5.15 integral.fixture

Source

fixture.lisp.

Use List

common-lisp.


6 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


6.1 Public Interface


6.1.1 Special variables

Special Variable: *auto-migration-mode*

Whether use auto-migration mode or not.

Package

integral.variable.

Source

variable.lisp.

Special Variable: *db*

Current connection object.

Package

integral.connection.

Source

connection.lisp.

Special Variable: *sql-log-stream*
Package

integral.database.

Source

database.lisp.


6.1.2 Macros

Macro: define-column-type (type-symbol lambda-list &body body)
Package

integral.type.

Source

type.lisp.

Macro: with-quote-char (&body body)
Package

integral.connection.

Source

connection.lisp.


6.1.3 Ordinary functions

Function: class-inherit-p (target parent)
Package

integral.util.

Source

util.lisp.

Function: class-slot-names (class)
Package

integral.util.

Source

util.lisp.

Function: column-definitions (conn table-name)
Package

integral.connection.mysql.

Source

mysql.lisp.

Function: column-definitions (conn table-name)
Package

integral.connection.sqlite3.

Source

sqlite3.lisp.

Function: column-definitions (conn table-name)
Package

integral.connection.postgres.

Source

postgres.lisp.

Function: connect-toplevel (driver-name &rest args &key database-name &allow-other-keys)

Connect to the database with given ‘ARGS’.
Same as DBI:CONNECT except this has a simple cache mechanizm.

Package

integral.connection.

Source

connection.lisp.

Function: connected-p ()

Return whether already connected to a database.

Package

integral.connection.

Source

connection.lisp.

Function: connection-quote-character (&optional conn)
Package

integral.connection.

Source

connection.lisp.

Function: database-type ()

Return the database type of the current connection. It is one of :mysql, :postgres and :sqlite3. If no connections are established, NIL will be returned.

Package

integral.connection.

Source

connection.lisp.

Function: disconnect-toplevel ()

Disconnect the current connection.
If no connections established, this do nothing.

Package

integral.connection.

Source

connection.lisp.

Function: escaped-symbol-p (symbol)
Package

integral.util.

Source

util.lisp.

Function: finalize-class-if-necessary (class)
Package

integral.util.

Source

util.lisp.

Function: get-connection ()

Return the current established connection handle.

Package

integral.connection.

Source

connection.lisp.

Function: get-slot-by-slot-name (obj slot-name)
Package

integral.util.

Source

util.lisp.

Function: group-by-plist-key (plist &key key test)
Package

integral.util.

Source

util.lisp.

Function: is-type-equal (a b)
Package

integral.type.

Source

type.lisp.

Function: last-insert-id (conn table-name serial-key-name)
Package

integral.connection.mysql.

Source

mysql.lisp.

Function: last-insert-id (conn table-name)
Package

integral.connection.sqlite3.

Source

sqlite3.lisp.

Function: last-insert-id (conn table-name serial-key-name)

Return the last value of a serial column.

Package

integral.connection.

Source

connection.lisp.

Function: last-insert-id (conn table-name serial-key-name)
Package

integral.connection.postgres.

Source

postgres.lisp.

Function: lispify (object)
Package

integral.util.

Source

util.lisp.

Function: list-diff (a b &key sort-key sort-key-a sort-key-b sort-fn key test)

Compute differences two lists.
Note this can be applied for a list of string-designators.

Package

integral.util.

Source

util.lisp.

Function: make-connection (driver-name &rest args &key database-name &allow-other-keys)
Package

integral.connection.

Source

connection.lisp.

Function: retrieve-table-column-definitions-by-name (conn table-name)

Retrieve column definitions of ‘TABLE-NAME’ from ‘CONN’.

Package

integral.connection.

Source

connection.lisp.

Function: retrieve-table-indices (conn table-name)
Package

integral.connection.

Source

connection.lisp.

Function: string-to-dbtype (type)
Package

integral.type.

Source

type.lisp.

Function: symbol-name-literally (symbol)
Package

integral.util.

Source

util.lisp.

Function: table-class-indices (class)
Package

integral.table.

Source

table.lisp.

Function: table-indices (conn table-name)
Package

integral.connection.mysql.

Source

mysql.lisp.

Function: table-indices (conn table-name)
Package

integral.connection.sqlite3.

Source

sqlite3.lisp.

Function: table-indices (conn table-name)
Package

integral.connection.postgres.

Source

postgres.lisp.

Function: type-alias (type)
Package

integral.type.

Source

type.lisp.

Function: (setf type-alias) (type)
Package

integral.type.

Source

type.lisp.

Function: unlispify (object)
Package

integral.util.

Source

util.lisp.


6.1.4 Generic functions

Generic Reader: auto-increment-p (object)
Package

integral.column.

Methods
Reader Method: auto-increment-p ((table-column-definition table-column-definition))

automatically generated reader method

Source

column.lisp.

Target Slot

auto-increment.

Generic Writer: (setf auto-increment-p) (object)
Package

integral.column.

Methods
Writer Method: (setf auto-increment-p) ((table-column-definition table-column-definition))

automatically generated writer method

Source

column.lisp.

Target Slot

auto-increment.

Generic Function: cltype-to-dbtype (type &rest args)
Package

integral.type.

Source

type.lisp.

Methods
Method: cltype-to-dbtype ((type0 (eql integral.type:enum)) &rest args1)
Method: cltype-to-dbtype ((type0 (eql integral.type:bigserial)) &rest args1)
Method: cltype-to-dbtype ((type0 (eql integral.type:serial)) &rest args1)
Method: cltype-to-dbtype ((type0 (eql string)) &rest args1)
Method: cltype-to-dbtype (type &rest args)
Method: cltype-to-dbtype ((type list) &rest args)
Generic Function: column-info-for-create-table (column)
Package

integral.column.

Source

column.lisp.

Methods
Method: column-info-for-create-table ((column table-column-definition))
Generic Function: create-dao (class &rest initargs)
Package

integral.

Methods
Method: create-dao ((class symbol) &rest initargs)
Source

integral.lisp.

Method: create-dao ((class <dao-table-class>) &rest initargs)
Source

integral.lisp.

Generic Function: database-column-slot-names (class)
Package

integral.table.

Source

table.lisp.

Methods
Method: database-column-slot-names ((class <dao-table-class>))
Generic Function: database-column-slots (class)

Same as C2MOP:CLASS-DIRECT-SLOTS except to remove ghost columns.

Package

integral.table.

Source

table.lisp.

Methods
Method: database-column-slots ((class <dao-table-class>))
Generic Function: deflate (object slot-name value)
Package

integral.table.

Source

table.lisp.

Methods
Method: deflate ((object <dao-class>) slot-name value)
Generic Function: delete-dao (obj)
Package

integral.

Methods
Method: delete-dao ((obj <dao-class>))
Source

integral.lisp.

Generic Function: ensure-table-exists (class)
Package

integral.table.

Source

table.lisp.

Methods
Method: ensure-table-exists ((class symbol))
Method: ensure-table-exists ((class <dao-table-class>))
Generic Function: execute-sql (sql &optional binds)
Package

integral.database.

Methods
Method: execute-sql ((sql sql-statement) &optional binds)
Source

database.lisp.

Method: execute-sql ((sql string) &optional binds)
Source

database.lisp.

Generic Function: find-dao (class &rest pk-values)
Package

integral.

Methods
Method: find-dao ((class symbol) &rest pk-values)
Source

integral.lisp.

Method: find-dao ((class <dao-table-class>) &rest pk-values)
Source

integral.lisp.

Generic Function: generate-defclass (class &key table-name)
Package

integral.table.

Source

table.lisp.

Methods
Method: generate-defclass ((class <dao-table-class>) &key table-name)
Method: generate-defclass ((class symbol) &key table-name)
Generic Reader: ghost-slot-p (object)
Generic Writer: (setf ghost-slot-p) (object)
Package

integral.column.

Methods
Reader Method: ghost-slot-p ((table-column-definition table-column-definition))
Writer Method: (setf ghost-slot-p) ((table-column-definition table-column-definition))

Option to specify slots as ghost slots. Ghost slots do not depend on a database.

Source

column.lisp.

Target Slot

ghost.

Generic Function: inflate (object slot-name value)
Package

integral.table.

Source

table.lisp.

Methods
Method: inflate ((object <dao-class>) slot-name value)
Generic Function: initialize-dao-table-class (class)
Package

integral.table.

Source

table.lisp.

Methods
Method: initialize-dao-table-class ((class <dao-table-class>))
Generic Function: insert-dao (obj)
Package

integral.

Methods
Method: insert-dao ((obj <dao-class>))
Source

integral.lisp.

Generic Function: make-dao-instance (class &rest initargs)
Package

integral.table.

Source

table.lisp.

Methods
Method: make-dao-instance ((class symbol) &rest initargs)
Method: make-dao-instance ((class <dao-table-class>) &rest initargs)
Generic Function: make-migration-sql (class &key yield)
Package

integral.migration.

Source

migration.lisp.

Methods
Method: make-migration-sql ((class symbol) &key yield)
Method: make-migration-sql ((class <dao-table-class>) &key yield)
Generic Function: migrate-table (class)
Package

integral.migration.

Source

migration.lisp.

Methods
Method: migrate-table ((class symbol))
Method: migrate-table ((class <dao-table-class>))
Generic Reader: primary-key-p (object)
Package

integral.column.

Methods
Reader Method: primary-key-p ((table-column-definition table-column-definition))

automatically generated reader method

Source

column.lisp.

Target Slot

primary-key.

Generic Writer: (setf primary-key-p) (object)
Package

integral.column.

Methods
Writer Method: (setf primary-key-p) ((table-column-definition table-column-definition))

automatically generated writer method

Source

column.lisp.

Target Slot

primary-key.

Generic Function: recreate-table (class)
Package

integral.table.

Source

table.lisp.

Methods
Method: recreate-table ((class symbol))
Method: recreate-table ((class <dao-table-class>))
Generic Function: retrieve-by-raw-sql (sql &optional binds)
Package

integral.database.

Methods
Method: retrieve-by-raw-sql ((sql sql-statement) &optional binds)
Source

database.lisp.

Method: retrieve-by-raw-sql ((sql string) &optional binds)
Source

database.lisp.

Generic Function: retrieve-by-sql (sql &key binds as)
Package

integral.

Methods
Method: retrieve-by-sql ((sql sql-statement) &key binds as)
Source

integral.lisp.

Method: retrieve-by-sql ((sql string) &key binds as)
Source

integral.lisp.

Generic Function: save-dao (obj)
Package

integral.

Methods
Method: save-dao ((obj <dao-class>))
Source

integral.lisp.

Generic Function: select-dao (class &rest expressions)
Package

integral.

Methods
Method: select-dao ((class symbol) &rest expressions)
Source

integral.lisp.

Method: select-dao ((class <dao-table-class>) &rest expressions)
Source

integral.lisp.

Generic Function: slot-definition-to-plist (slot)
Package

integral.column.

Source

column.lisp.

Methods
Method: slot-definition-to-plist ((slot standard-slot-definition))
Generic Function: table-column-deflate (column)
Package

integral.column.

Source

column.lisp.

Methods
Method: table-column-deflate ((column table-column-definition))
Generic Function: table-column-inflate (column)
Package

integral.column.

Source

column.lisp.

Methods
Method: table-column-inflate ((column table-column-definition))
Generic Function: table-column-satisfies (column)
Package

integral.column.

Source

column.lisp.

Methods
Method: table-column-satisfies ((column table-column-definition))
Generic Function: table-definition (class &key yield if-not-exists)
Package

integral.table.

Source

table.lisp.

Methods
Method: table-definition ((class symbol) &key yield if-not-exists)
Method: table-definition ((class <dao-table-class>) &key yield if-not-exists)
Generic Function: table-name (class)

Return the table name of ‘CLASS’ as a string.

Package

integral.table.

Source

table.lisp.

Methods
Method: table-name ((class <dao-table-class>))
Method: table-name ((obj <dao-class>))
Method: table-name ((class symbol))
Generic Function: table-primary-key (class)

Return the primary key as a list.

Package

integral.table.

Source

table.lisp.

Methods
Method: table-primary-key ((class <dao-table-class>))
Generic Function: table-serial-key (class)

Return the serial key as a symbol or NIL if there’s no serial keys.

Package

integral.table.

Source

table.lisp.

Methods
Method: table-serial-key ((class <dao-table-class>))
Generic Function: type-deflate (type value)
Package

integral.table.

Source

table.lisp.

Methods
Method: type-deflate ((type (eql boolean)) value)
Generic Function: type-inflate (type value)
Package

integral.table.

Source

table.lisp.

Methods
Method: type-inflate ((type (eql boolean)) value)
Generic Function: update-dao (obj)
Package

integral.

Methods
Method: update-dao ((obj <dao-class>))
Source

integral.lisp.

Generic Function: valid-p (object)
Package

integral.table.

Source

table.lisp.

Methods
Method: valid-p ((object <dao-class>))

6.1.5 Standalone methods

Method: direct-slot-definition-class ((class <dao-table-class>) &key)
Package

sb-mop.

Source

table.lisp.

Method: ensure-class-using-class :around ((class <dao-table-class>) name &rest keys &key direct-superclasses &allow-other-keys)
Package

sb-mop.

Source

table.lisp.

Method: initialize-instance :after ((class <dao-table-class>) &key)
Source

table.lisp.

Method: initialize-instance :around ((class <dao-table-class>) &rest initargs &key direct-superclasses &allow-other-keys)
Source

table.lisp.

Method: initialize-instance :after ((column table-column-definition) &key)
Source

column.lisp.

Method: initialize-instance :around ((column table-column-definition) &rest initargs)
Source

column.lisp.

Method: make-instance :before ((class <dao-table-class>) &key &allow-other-keys)
Source

table.lisp.

Method: print-object ((object <dao-class>) stream)
Source

table.lisp.

Method: register-fixture ((obj <dao-class>))
Package

clos-fixtures.

Source

fixture.lisp.

Method: reinitialize-instance :around ((class <dao-table-class>) &rest initargs)
Source

table.lisp.

Method: validate-superclass ((class <dao-table-class>) (super standard-class))
Package

sb-mop.

Source

table.lisp.


6.1.6 Conditions

Condition: <connection-not-established-error>
Package

integral.error.

Source

error.lisp.

Direct superclasses

<integral-error>.

Condition: <integral-error>
Package

integral.error.

Source

error.lisp.

Direct superclasses

simple-error.

Direct subclasses
Condition: <migration-error>
Package

integral.error.

Source

error.lisp.

Direct superclasses

<integral-error>.

Condition: <type-missing-error>
Package

integral.error.

Source

error.lisp.

Direct superclasses

<integral-error>.

Direct slots
Slot: slot-name
Initargs

:slot-name

Condition: <unknown-primary-key-error>
Package

integral.error.

Source

error.lisp.

Direct superclasses

<integral-error>.

Direct slots
Slot: table-name
Initargs

:table-name


6.1.7 Classes

Class: <dao-class>

Base class of classes whose metaclass is <DAO-TABLE-CLASS>. The inheritance will be done implicitly. If you want to use another class, specify it as a superclass in the usual way.

Package

integral.table.

Source

table.lisp.

Direct methods
Class: <dao-table-class>

Metaclass to define classes for your database-access objects as regular CLOS classes.

Package

integral.table.

Source

table.lisp.

Direct superclasses

standard-class.

Direct methods
Direct slots
Slot: primary-key
Package

sxql.

Initargs

:primary-key

Slot: unique-keys
Initargs

:unique-keys

Slot: keys
Type

list

Initargs

:keys

Slot: table-name
Type

(trivial-types:proper-list (quote string))

Initargs

:table-name

Slot: generate-slots
Type

(trivial-types:proper-list (quote boolean))

Initargs

:generate-slots

Slot: auto-pk
Type

(trivial-types:proper-list (quote boolean))

Initform

(quote (t))

Initargs

:auto-pk

Slot: %initialized
Type

boolean

Readers

initializedp.

Writers

(setf initializedp).

Class: table-column-definition
Package

integral.column.

Source

column.lisp.

Direct superclasses

standard-direct-slot-definition.

Direct methods
Direct slots
Slot: col-type
Type

(or symbol cons)

Initargs

:col-type

Slot: primary-key
Type

boolean

Initargs

:primary-key

Readers

primary-key-p.

Writers

(setf primary-key-p).

Slot: auto-increment
Type

boolean

Initargs

:auto-increment

Readers

auto-increment-p.

Writers

(setf auto-increment-p).

Slot: not-null
Type

boolean

Initargs

:not-null

Slot: inflate
Type

(or function null)

Initargs

:inflate

Slot: deflate
Type

(or function null)

Initargs

:deflate

Slot: satisfies
Package

common-lisp.

Type

(or function null)

Initargs

:satisfies

Slot: ghost

Option to specify slots as ghost slots. Ghost slots do not depend on a database.

Type

boolean

Initargs

:ghost

Readers

ghost-slot-p.

Writers

(setf ghost-slot-p).


6.1.8 Types

Type: bigint (&optional width)
Package

integral.type.

Source

type.lisp.

Type: bigserial ()
Package

integral.type.

Source

type.lisp.

Type: date ()
Package

integral.type.

Source

type.lisp.

Type: datetime ()
Package

integral.type.

Source

type.lisp.

Type: enum (&rest candidates)
Package

integral.type.

Source

type.lisp.

Type: mediumint (&optional width)
Package

integral.type.

Source

type.lisp.

Type: serial ()
Package

integral.type.

Source

type.lisp.

Type: smallint (&optional width)
Package

integral.type.

Source

type.lisp.

Type: text ()
Package

integral.type.

Source

type.lisp.

Type: timestamp (&optional length)
Package

integral.type.

Source

type.lisp.

Type: tinyint (&optional width)
Package

integral.type.

Source

type.lisp.

Type: varchar (length)
Package

integral.type.

Source

type.lisp.


6.2 Internals


6.2.1 Special variables

Special Variable: *oid-slot-definition*
Package

integral.table.

Source

table.lisp.

Special Variable: *synced-slot-definition*
Package

integral.table.

Source

table.lisp.

Special Variable: *table-column-definition-slots*
Package

integral.column.

Source

column.lisp.

Special Variable: *type-alias-map*
Package

integral.type.

Source

type.lisp.


6.2.2 Ordinary functions

Function: %generate-migration-sql-for-sqlite3 (class)
Package

integral.migration.

Source

migration.lisp.

Function: %generate-migration-sql-for-table-columns-others (class)
Package

integral.migration.

Source

migration.lisp.

Function: %list-diff (a b &key key test)
Package

integral.util.

Source

util.lisp.

Function: %make-connection (&key connect-args driver-name handle)
Package

integral.connection.

Source

connection.lisp.

Function: arranged-migration-sql (class)
Package

integral.migration.

Source

migration.lisp.

Function: compute-migrate-table-columns (class)
Package

integral.migration.

Source

migration.lisp.

Reader: connection-connect-args (instance)
Writer: (setf connection-connect-args) (instance)
Package

integral.connection.

Source

connection.lisp.

Target Slot

connect-args.

Reader: connection-driver-name (instance)
Writer: (setf connection-driver-name) (instance)
Package

integral.connection.

Source

connection.lisp.

Target Slot

driver-name.

Reader: connection-handle (instance)
Writer: (setf connection-handle) (instance)
Package

integral.connection.

Source

connection.lisp.

Target Slot

handle.

Function: connection-p (object)
Package

integral.connection.

Source

connection.lisp.

Function: contains-class-or-subclasses (class target-classes)
Package

integral.table.

Source

table.lisp.

Function: copy-connection (instance)
Package

integral.connection.

Source

connection.lisp.

Function: find-type-deflate (type)
Package

integral.table.

Source

table.lisp.

Function: find-type-inflate (type)
Package

integral.table.

Source

table.lisp.

Function: generate-migration-sql-for-table-indices (class)
Package

integral.migration.

Source

migration.lisp.

Function: get-serial-keys (conn table-name)
Package

integral.connection.postgres.

Source

postgres.lisp.

Function: initargs-contains-primary-key (initargs)
Package

integral.table.

Source

table.lisp.

Function: make-connection-handle (connection)
Package

integral.connection.

Source

connection.lisp.

Function: make-set-clause (obj)
Package

integral.

Source

integral.lisp.

Function: parse-type-vars (vars)
Package

integral.type.

Source

type.lisp.

Function: table-info (conn table-name)
Package

integral.connection.sqlite3.

Source

sqlite3.lisp.

Function: table-primary-keys (conn table-name)
Package

integral.connection.sqlite3.

Source

sqlite3.lisp.


6.2.3 Generic functions

Generic Reader: initializedp (object)
Package

integral.table.

Methods
Reader Method: initializedp ((<dao-table-class> <dao-table-class>))

automatically generated reader method

Source

table.lisp.

Target Slot

%initialized.

Generic Writer: (setf initializedp) (object)
Package

integral.table.

Methods
Writer Method: (setf initializedp) ((<dao-table-class> <dao-table-class>))

automatically generated writer method

Source

table.lisp.

Target Slot

%initialized.

Generic Function: make-delete-sql (obj)
Package

integral.

Methods
Method: make-delete-sql ((obj <dao-class>))
Source

integral.lisp.

Generic Function: make-find-sql (class &rest pk-values)
Package

integral.

Methods
Method: make-find-sql ((class <dao-table-class>) &rest pk-values)
Source

integral.lisp.

Generic Function: make-insert-sql (obj)
Package

integral.

Methods
Method: make-insert-sql ((obj <dao-class>))
Source

integral.lisp.

Generic Function: make-update-sql (obj)
Package

integral.

Methods
Method: make-update-sql ((obj <dao-class>))
Source

integral.lisp.

Generic Function: table-column-name (column)
Package

integral.column.

Source

column.lisp.

Methods
Method: table-column-name ((column table-column-definition))
Generic Function: table-column-type (column)
Package

integral.column.

Source

column.lisp.

Methods
Method: table-column-type ((column table-column-definition))

6.2.4 Structures

Structure: connection

Class of database connection

Package

integral.connection.

Source

connection.lisp.

Direct superclasses

structure-object.

Direct slots
Slot: connect-args
Type

list

Readers

connection-connect-args.

Writers

(setf connection-connect-args).

Slot: driver-name
Type

keyword

Readers

connection-driver-name.

Writers

(setf connection-driver-name).

Slot: handle
Type

(or dbi.driver:<dbi-connection> null)

Readers

connection-handle.

Writers

(setf connection-handle).


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   %   (  
A   C   D   E   F   G   I   L   M   P   R   S   T   U   V   W  
Index Entry  Section

%
%generate-migration-sql-for-sqlite3: Private ordinary functions
%generate-migration-sql-for-table-columns-others: Private ordinary functions
%list-diff: Private ordinary functions
%make-connection: Private ordinary functions

(
(setf auto-increment-p): Public generic functions
(setf auto-increment-p): Public generic functions
(setf connection-connect-args): Private ordinary functions
(setf connection-driver-name): Private ordinary functions
(setf connection-handle): Private ordinary functions
(setf ghost-slot-p): Public generic functions
(setf ghost-slot-p): Public generic functions
(setf initializedp): Private generic functions
(setf initializedp): Private generic functions
(setf primary-key-p): Public generic functions
(setf primary-key-p): Public generic functions
(setf type-alias): Public ordinary functions

A
arranged-migration-sql: Private ordinary functions
auto-increment-p: Public generic functions
auto-increment-p: Public generic functions

C
class-inherit-p: Public ordinary functions
class-slot-names: Public ordinary functions
cltype-to-dbtype: Public generic functions
cltype-to-dbtype: Public generic functions
cltype-to-dbtype: Public generic functions
cltype-to-dbtype: Public generic functions
cltype-to-dbtype: Public generic functions
cltype-to-dbtype: Public generic functions
cltype-to-dbtype: Public generic functions
column-definitions: Public ordinary functions
column-definitions: Public ordinary functions
column-definitions: Public ordinary functions
column-info-for-create-table: Public generic functions
column-info-for-create-table: Public generic functions
compute-migrate-table-columns: Private ordinary functions
connect-toplevel: Public ordinary functions
connected-p: Public ordinary functions
connection-connect-args: Private ordinary functions
connection-driver-name: Private ordinary functions
connection-handle: Private ordinary functions
connection-p: Private ordinary functions
connection-quote-character: Public ordinary functions
contains-class-or-subclasses: Private ordinary functions
copy-connection: Private ordinary functions
create-dao: Public generic functions
create-dao: Public generic functions
create-dao: Public generic functions

D
database-column-slot-names: Public generic functions
database-column-slot-names: Public generic functions
database-column-slots: Public generic functions
database-column-slots: Public generic functions
database-type: Public ordinary functions
define-column-type: Public macros
deflate: Public generic functions
deflate: Public generic functions
delete-dao: Public generic functions
delete-dao: Public generic functions
direct-slot-definition-class: Public standalone methods
disconnect-toplevel: Public ordinary functions

E
ensure-class-using-class: Public standalone methods
ensure-table-exists: Public generic functions
ensure-table-exists: Public generic functions
ensure-table-exists: Public generic functions
escaped-symbol-p: Public ordinary functions
execute-sql: Public generic functions
execute-sql: Public generic functions
execute-sql: Public generic functions

F
finalize-class-if-necessary: Public ordinary functions
find-dao: Public generic functions
find-dao: Public generic functions
find-dao: Public generic functions
find-type-deflate: Private ordinary functions
find-type-inflate: Private ordinary functions
Function, %generate-migration-sql-for-sqlite3: Private ordinary functions
Function, %generate-migration-sql-for-table-columns-others: Private ordinary functions
Function, %list-diff: Private ordinary functions
Function, %make-connection: Private ordinary functions
Function, (setf connection-connect-args): Private ordinary functions
Function, (setf connection-driver-name): Private ordinary functions
Function, (setf connection-handle): Private ordinary functions
Function, (setf type-alias): Public ordinary functions
Function, arranged-migration-sql: Private ordinary functions
Function, class-inherit-p: Public ordinary functions
Function, class-slot-names: Public ordinary functions
Function, column-definitions: Public ordinary functions
Function, column-definitions: Public ordinary functions
Function, column-definitions: Public ordinary functions
Function, compute-migrate-table-columns: Private ordinary functions
Function, connect-toplevel: Public ordinary functions
Function, connected-p: Public ordinary functions
Function, connection-connect-args: Private ordinary functions
Function, connection-driver-name: Private ordinary functions
Function, connection-handle: Private ordinary functions
Function, connection-p: Private ordinary functions
Function, connection-quote-character: Public ordinary functions
Function, contains-class-or-subclasses: Private ordinary functions
Function, copy-connection: Private ordinary functions
Function, database-type: Public ordinary functions
Function, disconnect-toplevel: Public ordinary functions
Function, escaped-symbol-p: Public ordinary functions
Function, finalize-class-if-necessary: Public ordinary functions
Function, find-type-deflate: Private ordinary functions
Function, find-type-inflate: Private ordinary functions
Function, generate-migration-sql-for-table-indices: Private ordinary functions
Function, get-connection: Public ordinary functions
Function, get-serial-keys: Private ordinary functions
Function, get-slot-by-slot-name: Public ordinary functions
Function, group-by-plist-key: Public ordinary functions
Function, initargs-contains-primary-key: Private ordinary functions
Function, is-type-equal: Public ordinary functions
Function, last-insert-id: Public ordinary functions
Function, last-insert-id: Public ordinary functions
Function, last-insert-id: Public ordinary functions
Function, last-insert-id: Public ordinary functions
Function, lispify: Public ordinary functions
Function, list-diff: Public ordinary functions
Function, make-connection: Public ordinary functions
Function, make-connection-handle: Private ordinary functions
Function, make-set-clause: Private ordinary functions
Function, parse-type-vars: Private ordinary functions
Function, retrieve-table-column-definitions-by-name: Public ordinary functions
Function, retrieve-table-indices: Public ordinary functions
Function, string-to-dbtype: Public ordinary functions
Function, symbol-name-literally: Public ordinary functions
Function, table-class-indices: Public ordinary functions
Function, table-indices: Public ordinary functions
Function, table-indices: Public ordinary functions
Function, table-indices: Public ordinary functions
Function, table-info: Private ordinary functions
Function, table-primary-keys: Private ordinary functions
Function, type-alias: Public ordinary functions
Function, unlispify: Public ordinary functions

G
generate-defclass: Public generic functions
generate-defclass: Public generic functions
generate-defclass: Public generic functions
generate-migration-sql-for-table-indices: Private ordinary functions
Generic Function, (setf auto-increment-p): Public generic functions
Generic Function, (setf ghost-slot-p): Public generic functions
Generic Function, (setf initializedp): Private generic functions
Generic Function, (setf primary-key-p): Public generic functions
Generic Function, auto-increment-p: Public generic functions
Generic Function, cltype-to-dbtype: Public generic functions
Generic Function, column-info-for-create-table: Public generic functions
Generic Function, create-dao: Public generic functions
Generic Function, database-column-slot-names: Public generic functions
Generic Function, database-column-slots: Public generic functions
Generic Function, deflate: Public generic functions
Generic Function, delete-dao: Public generic functions
Generic Function, ensure-table-exists: Public generic functions
Generic Function, execute-sql: Public generic functions
Generic Function, find-dao: Public generic functions
Generic Function, generate-defclass: Public generic functions
Generic Function, ghost-slot-p: Public generic functions
Generic Function, inflate: Public generic functions
Generic Function, initialize-dao-table-class: Public generic functions
Generic Function, initializedp: Private generic functions
Generic Function, insert-dao: Public generic functions
Generic Function, make-dao-instance: Public generic functions
Generic Function, make-delete-sql: Private generic functions
Generic Function, make-find-sql: Private generic functions
Generic Function, make-insert-sql: Private generic functions
Generic Function, make-migration-sql: Public generic functions
Generic Function, make-update-sql: Private generic functions
Generic Function, migrate-table: Public generic functions
Generic Function, primary-key-p: Public generic functions
Generic Function, recreate-table: Public generic functions
Generic Function, retrieve-by-raw-sql: Public generic functions
Generic Function, retrieve-by-sql: Public generic functions
Generic Function, save-dao: Public generic functions
Generic Function, select-dao: Public generic functions
Generic Function, slot-definition-to-plist: Public generic functions
Generic Function, table-column-deflate: Public generic functions
Generic Function, table-column-inflate: Public generic functions
Generic Function, table-column-name: Private generic functions
Generic Function, table-column-satisfies: Public generic functions
Generic Function, table-column-type: Private generic functions
Generic Function, table-definition: Public generic functions
Generic Function, table-name: Public generic functions
Generic Function, table-primary-key: Public generic functions
Generic Function, table-serial-key: Public generic functions
Generic Function, type-deflate: Public generic functions
Generic Function, type-inflate: Public generic functions
Generic Function, update-dao: Public generic functions
Generic Function, valid-p: Public generic functions
get-connection: Public ordinary functions
get-serial-keys: Private ordinary functions
get-slot-by-slot-name: Public ordinary functions
ghost-slot-p: Public generic functions
ghost-slot-p: Public generic functions
group-by-plist-key: Public ordinary functions

I
inflate: Public generic functions
inflate: Public generic functions
initargs-contains-primary-key: Private ordinary functions
initialize-dao-table-class: Public generic functions
initialize-dao-table-class: Public generic functions
initialize-instance: Public standalone methods
initialize-instance: Public standalone methods
initialize-instance: Public standalone methods
initialize-instance: Public standalone methods
initializedp: Private generic functions
initializedp: Private generic functions
insert-dao: Public generic functions
insert-dao: Public generic functions
is-type-equal: Public ordinary functions

L
last-insert-id: Public ordinary functions
last-insert-id: Public ordinary functions
last-insert-id: Public ordinary functions
last-insert-id: Public ordinary functions
lispify: Public ordinary functions
list-diff: Public ordinary functions

M
Macro, define-column-type: Public macros
Macro, with-quote-char: Public macros
make-connection: Public ordinary functions
make-connection-handle: Private ordinary functions
make-dao-instance: Public generic functions
make-dao-instance: Public generic functions
make-dao-instance: Public generic functions
make-delete-sql: Private generic functions
make-delete-sql: Private generic functions
make-find-sql: Private generic functions
make-find-sql: Private generic functions
make-insert-sql: Private generic functions
make-insert-sql: Private generic functions
make-instance: Public standalone methods
make-migration-sql: Public generic functions
make-migration-sql: Public generic functions
make-migration-sql: Public generic functions
make-set-clause: Private ordinary functions
make-update-sql: Private generic functions
make-update-sql: Private generic functions
Method, (setf auto-increment-p): Public generic functions
Method, (setf ghost-slot-p): Public generic functions
Method, (setf initializedp): Private generic functions
Method, (setf primary-key-p): Public generic functions
Method, auto-increment-p: Public generic functions
Method, cltype-to-dbtype: Public generic functions
Method, cltype-to-dbtype: Public generic functions
Method, cltype-to-dbtype: Public generic functions
Method, cltype-to-dbtype: Public generic functions
Method, cltype-to-dbtype: Public generic functions
Method, cltype-to-dbtype: Public generic functions
Method, column-info-for-create-table: Public generic functions
Method, create-dao: Public generic functions
Method, create-dao: Public generic functions
Method, database-column-slot-names: Public generic functions
Method, database-column-slots: Public generic functions
Method, deflate: Public generic functions
Method, delete-dao: Public generic functions
Method, direct-slot-definition-class: Public standalone methods
Method, ensure-class-using-class: Public standalone methods
Method, ensure-table-exists: Public generic functions
Method, ensure-table-exists: Public generic functions
Method, execute-sql: Public generic functions
Method, execute-sql: Public generic functions
Method, find-dao: Public generic functions
Method, find-dao: Public generic functions
Method, generate-defclass: Public generic functions
Method, generate-defclass: Public generic functions
Method, ghost-slot-p: Public generic functions
Method, inflate: Public generic functions
Method, initialize-dao-table-class: Public generic functions
Method, initialize-instance: Public standalone methods
Method, initialize-instance: Public standalone methods
Method, initialize-instance: Public standalone methods
Method, initialize-instance: Public standalone methods
Method, initializedp: Private generic functions
Method, insert-dao: Public generic functions
Method, make-dao-instance: Public generic functions
Method, make-dao-instance: Public generic functions
Method, make-delete-sql: Private generic functions
Method, make-find-sql: Private generic functions
Method, make-insert-sql: Private generic functions
Method, make-instance: Public standalone methods
Method, make-migration-sql: Public generic functions
Method, make-migration-sql: Public generic functions
Method, make-update-sql: Private generic functions
Method, migrate-table: Public generic functions
Method, migrate-table: Public generic functions
Method, primary-key-p: Public generic functions
Method, print-object: Public standalone methods
Method, recreate-table: Public generic functions
Method, recreate-table: Public generic functions
Method, register-fixture: Public standalone methods
Method, reinitialize-instance: Public standalone methods
Method, retrieve-by-raw-sql: Public generic functions
Method, retrieve-by-raw-sql: Public generic functions
Method, retrieve-by-sql: Public generic functions
Method, retrieve-by-sql: Public generic functions
Method, save-dao: Public generic functions
Method, select-dao: Public generic functions
Method, select-dao: Public generic functions
Method, slot-definition-to-plist: Public generic functions
Method, table-column-deflate: Public generic functions
Method, table-column-inflate: Public generic functions
Method, table-column-name: Private generic functions
Method, table-column-satisfies: Public generic functions
Method, table-column-type: Private generic functions
Method, table-definition: Public generic functions
Method, table-definition: Public generic functions
Method, table-name: Public generic functions
Method, table-name: Public generic functions
Method, table-name: Public generic functions
Method, table-primary-key: Public generic functions
Method, table-serial-key: Public generic functions
Method, type-deflate: Public generic functions
Method, type-inflate: Public generic functions
Method, update-dao: Public generic functions
Method, valid-p: Public generic functions
Method, validate-superclass: Public standalone methods
migrate-table: Public generic functions
migrate-table: Public generic functions
migrate-table: Public generic functions

P
parse-type-vars: Private ordinary functions
primary-key-p: Public generic functions
primary-key-p: Public generic functions
print-object: Public standalone methods

R
recreate-table: Public generic functions
recreate-table: Public generic functions
recreate-table: Public generic functions
register-fixture: Public standalone methods
reinitialize-instance: Public standalone methods
retrieve-by-raw-sql: Public generic functions
retrieve-by-raw-sql: Public generic functions
retrieve-by-raw-sql: Public generic functions
retrieve-by-sql: Public generic functions
retrieve-by-sql: Public generic functions
retrieve-by-sql: Public generic functions
retrieve-table-column-definitions-by-name: Public ordinary functions
retrieve-table-indices: Public ordinary functions

S
save-dao: Public generic functions
save-dao: Public generic functions
select-dao: Public generic functions
select-dao: Public generic functions
select-dao: Public generic functions
slot-definition-to-plist: Public generic functions
slot-definition-to-plist: Public generic functions
string-to-dbtype: Public ordinary functions
symbol-name-literally: Public ordinary functions

T
table-class-indices: Public ordinary functions
table-column-deflate: Public generic functions
table-column-deflate: Public generic functions
table-column-inflate: Public generic functions
table-column-inflate: Public generic functions
table-column-name: Private generic functions
table-column-name: Private generic functions
table-column-satisfies: Public generic functions
table-column-satisfies: Public generic functions
table-column-type: Private generic functions
table-column-type: Private generic functions
table-definition: Public generic functions
table-definition: Public generic functions
table-definition: Public generic functions
table-indices: Public ordinary functions
table-indices: Public ordinary functions
table-indices: Public ordinary functions
table-info: Private ordinary functions
table-name: Public generic functions
table-name: Public generic functions
table-name: Public generic functions
table-name: Public generic functions
table-primary-key: Public generic functions
table-primary-key: Public generic functions
table-primary-keys: Private ordinary functions
table-serial-key: Public generic functions
table-serial-key: Public generic functions
type-alias: Public ordinary functions
type-deflate: Public generic functions
type-deflate: Public generic functions
type-inflate: Public generic functions
type-inflate: Public generic functions

U
unlispify: Public ordinary functions
update-dao: Public generic functions
update-dao: Public generic functions

V
valid-p: Public generic functions
valid-p: Public generic functions
validate-superclass: Public standalone methods

W
with-quote-char: Public macros


A.3 Variables

Jump to:   %   *  
A   C   D   G   H   I   K   N   P   S   T   U  
Index Entry  Section

%
%initialized: Public classes

*
*auto-migration-mode*: Public special variables
*db*: Public special variables
*oid-slot-definition*: Private special variables
*sql-log-stream*: Public special variables
*synced-slot-definition*: Private special variables
*table-column-definition-slots*: Private special variables
*type-alias-map*: Private special variables

A
auto-increment: Public classes
auto-pk: Public classes

C
col-type: Public classes
connect-args: Private structures

D
deflate: Public classes
driver-name: Private structures

G
generate-slots: Public classes
ghost: Public classes

H
handle: Private structures

I
inflate: Public classes

K
keys: Public classes

N
not-null: Public classes

P
primary-key: Public classes
primary-key: Public classes

S
satisfies: Public classes
Slot, %initialized: Public classes
Slot, auto-increment: Public classes
Slot, auto-pk: Public classes
Slot, col-type: Public classes
Slot, connect-args: Private structures
Slot, deflate: Public classes
Slot, driver-name: Private structures
Slot, generate-slots: Public classes
Slot, ghost: Public classes
Slot, handle: Private structures
Slot, inflate: Public classes
Slot, keys: Public classes
Slot, not-null: Public classes
Slot, primary-key: Public classes
Slot, primary-key: Public classes
Slot, satisfies: Public classes
Slot, slot-name: Public conditions
Slot, table-name: Public conditions
Slot, table-name: Public classes
Slot, unique-keys: Public classes
slot-name: Public conditions
Special Variable, *auto-migration-mode*: Public special variables
Special Variable, *db*: Public special variables
Special Variable, *oid-slot-definition*: Private special variables
Special Variable, *sql-log-stream*: Public special variables
Special Variable, *synced-slot-definition*: Private special variables
Special Variable, *table-column-definition-slots*: Private special variables
Special Variable, *type-alias-map*: Private special variables

T
table-name: Public conditions
table-name: Public classes

U
unique-keys: Public classes


A.4 Data types

Jump to:   <  
B   C   D   E   F   I   M   P   S   T   U   V  
Index Entry  Section

<
<connection-not-established-error>: Public conditions
<dao-class>: Public classes
<dao-table-class>: Public classes
<integral-error>: Public conditions
<migration-error>: Public conditions
<type-missing-error>: Public conditions
<unknown-primary-key-error>: Public conditions

B
bigint: Public types
bigserial: Public types

C
Class, <dao-class>: Public classes
Class, <dao-table-class>: Public classes
Class, table-column-definition: Public classes
column.lisp: The integral/src/column․lisp file
Condition, <connection-not-established-error>: Public conditions
Condition, <integral-error>: Public conditions
Condition, <migration-error>: Public conditions
Condition, <type-missing-error>: Public conditions
Condition, <unknown-primary-key-error>: Public conditions
connection: Private structures
connection-drivers: The integral/src/connection-drivers module
connection.lisp: The integral/src/connection․lisp file

D
database.lisp: The integral/src/database․lisp file
date: Public types
datetime: Public types

E
enum: Public types
error.lisp: The integral/src/error․lisp file

F
File, column.lisp: The integral/src/column․lisp file
File, connection.lisp: The integral/src/connection․lisp file
File, database.lisp: The integral/src/database․lisp file
File, error.lisp: The integral/src/error․lisp file
File, fixture.lisp: The integral/src/fixture․lisp file
File, integral.asd: The integral/integral․asd file
File, integral.lisp: The integral/src/integral․lisp file
File, migration.lisp: The integral/src/migration․lisp file
File, mysql.lisp: The integral/src/connection-drivers/mysql․lisp file
File, postgres.lisp: The integral/src/connection-drivers/postgres․lisp file
File, sqlite3.lisp: The integral/src/connection-drivers/sqlite3․lisp file
File, table.lisp: The integral/src/table․lisp file
File, type.lisp: The integral/src/type․lisp file
File, util.lisp: The integral/src/util․lisp file
File, variable.lisp: The integral/src/variable․lisp file
fixture.lisp: The integral/src/fixture․lisp file

I
integral: The integral system
integral: The integral package
integral-asd: The integral-asd package
integral.asd: The integral/integral․asd file
integral.column: The integral․column package
integral.connection: The integral․connection package
integral.connection.mysql: The integral․connection․mysql package
integral.connection.postgres: The integral․connection․postgres package
integral.connection.sqlite3: The integral․connection․sqlite3 package
integral.database: The integral․database package
integral.error: The integral․error package
integral.fixture: The integral․fixture package
integral.lisp: The integral/src/integral․lisp file
integral.migration: The integral․migration package
integral.table: The integral․table package
integral.type: The integral․type package
integral.util: The integral․util package
integral.variable: The integral․variable package

M
mediumint: Public types
migration.lisp: The integral/src/migration․lisp file
Module, connection-drivers: The integral/src/connection-drivers module
Module, src: The integral/src module
mysql.lisp: The integral/src/connection-drivers/mysql․lisp file

P
Package, integral: The integral package
Package, integral-asd: The integral-asd package
Package, integral.column: The integral․column package
Package, integral.connection: The integral․connection package
Package, integral.connection.mysql: The integral․connection․mysql package
Package, integral.connection.postgres: The integral․connection․postgres package
Package, integral.connection.sqlite3: The integral․connection․sqlite3 package
Package, integral.database: The integral․database package
Package, integral.error: The integral․error package
Package, integral.fixture: The integral․fixture package
Package, integral.migration: The integral․migration package
Package, integral.table: The integral․table package
Package, integral.type: The integral․type package
Package, integral.util: The integral․util package
Package, integral.variable: The integral․variable package
postgres.lisp: The integral/src/connection-drivers/postgres․lisp file

S
serial: Public types
smallint: Public types
sqlite3.lisp: The integral/src/connection-drivers/sqlite3․lisp file
src: The integral/src module
Structure, connection: Private structures
System, integral: The integral system

T
table-column-definition: Public classes
table.lisp: The integral/src/table․lisp file
text: Public types
timestamp: Public types
tinyint: Public types
Type, bigint: Public types
Type, bigserial: Public types
Type, date: Public types
Type, datetime: Public types
Type, enum: Public types
Type, mediumint: Public types
Type, serial: Public types
Type, smallint: Public types
Type, text: Public types
Type, timestamp: Public types
Type, tinyint: Public types
Type, varchar: Public types
type.lisp: The integral/src/type․lisp file

U
util.lisp: The integral/src/util․lisp file

V
varchar: Public types
variable.lisp: The integral/src/variable․lisp file