The mito Reference Manual

Next: , Previous: , Up: (dir)   [Contents][Index]

The mito Reference Manual

This is the mito Reference Manual, version 0.1, generated automatically by Declt version 4.0 beta 2 "William Riker" on Thu Sep 15 05:40:01 2022 GMT+0.

Table of Contents


1 Introduction

Mito

Build Status Quicklisp dist

Mito is yet another object relational mapper, and it aims to be a successor of Integral.

Warning

This software is still ALPHA quality. The APIs likely change.

This software should work fine with MySQL, PostgreSQL and SQLite3 on SBCL/Clozure CL.

Usage

(mito:connect-toplevel :mysql :database-name "myapp" :username "fukamachi" :password "c0mon-1isp")
;=> #<DBD.MYSQL:<DBD-MYSQL-CONNECTION> {100691BFF3}>

(mito:deftable user ()
  ((name :col-type (:varchar 64))
   (email :col-type (or (:varchar 128) :null))))
;=> #<MITO.DAO.TABLE:DAO-TABLE-CLASS COMMON-LISP-USER::USER>

(mito:table-definition 'user)
;=> (#<SXQL-STATEMENT: CREATE TABLE user (id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(64) NOT NULL, email VARCHAR(128))>)

(mito:deftable tweet ()
  ((status :col-type :text)
   (user :col-type user)))
;=> #<MITO.DAO.TABLE:DAO-TABLE-CLASS COMMON-LISP-USER::TWEET>

(mito:table-definition 'tweet)
;=> (#<SXQL-STATEMENT: CREATE TABLE tweet (id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, status TEXT NOT NULL, user_id BIGINT UNSIGNED NOT NULL, created_at TIMESTAMP, updated_at TIMESTAMP)>)

Connecting to DB

Mito provides the functions connect-toplevel and disconnect-toplevel to establish and sever a connection to RDBMS.

connect-toplevel takes the same arguments as dbi:connect: typically the driver-type, the database name to connect, user name and password.

(mito:connect-toplevel :mysql :database-name "myapp" :username "fukamachi" :password "c0mon-1isp")

connect-toplevel sets *connection* to a new connection and returns it.

To use a connection lexically, just bind it:

(let ((mito:*connection* (dbi:connect :sqlite3 :database-name #P"/tmp/myapp.db")))
  (unwind-protect (progn ...)
    ;; Ensure that the connection is closed.
    (dbi:disconnect mito:*connection*)))

In most cases dbi:connect-cached is a better option, since it reuses a connection for multiple threads.

(let ((mito:*connection* (dbi:connect-cached :sqlite3 :database-name #P"/tmp/myapp.db")))
  (unwind-protect (progn ...)
    ;; Ensure that the connection is closed.
    ))

Use connection-database-name to get the name of the current connection, or of one named via parameter.

deftable macro

As Mito's dao table class is defined as a CLOS metaclass, a table class can be defined like this:

(defclass user ()
  ((name :col-type (:varchar 64)
         :accessor user-name)
   (email :col-type (or (:varchar 128) :null)
          :accessor user-email))
  (:metaclass mito:dao-table-class))

deftable's syntax is the same as that of cl:defclass. However, the definition is a little bit redundant.

mito:deftable is a thin macro, to allow definion of a table class with less typing.

For example, the above example can be rewritten, using deftable as follows.

(mito:deftable user ()
  ((name :col-type (:varchar 64))
   (email :col-type (or (:varchar 128) :null))))

It adds :metaclass mito:dao-table-class, and adds default accessors that start with <class-name>- by default, like defstruct does.

The prefix for accessors can be changed with the :conc-name class option:

(mito:deftable user ()
  ((name :col-type (:varchar 64))
   (email :col-type (or (:varchar 128) :null)))
  (:conc-name my-))

(my-name (make-instance 'user :name "fukamachi"))
;=> "fukamachi"

If :conc-name is NIL, default accessors will NOT be defined.

Class Definitions

In Mito, a class corresponding to a database table is defined by specifying (:metaclass mito:dao-table-class).

(defclass user ()
  ((name :col-type (:varchar 64)
         :accessor user-name)
   (email :col-type (or (:varchar 128) :null)
          :accessor user-email))
  (:metaclass mito:dao-table-class))

The above defines a Common Lisp normal class, except that it allows additional options.

(defclass {class-name} ()
  ({column-definition}*)
  (:metaclass mito:dao-table-class)
  [[class-option]])

column-definition ::= (slot-name [[column-option]])
column-option ::= {:col-type col-type} |
                  {:primary-key boolean} |
                  {:inflate inflation-function} |
                  {:deflate deflation-function} |
                  {:references {class-name | (class-name slot-name)}} |
                  {:ghost boolean}
col-type ::= { keyword |
              (keyword . args) |
              (or keyword :null) |
              (or :null keyword) }
class-option ::= {:primary-key symbol*} |
                 {:unique-keys {symbol | (symbol*)}*} |
                 {:keys {symbol | (symbol*)}*} |
                 {:table-name table-name} |
                 {:auto-pk auto-pk-mixin-class-name} |
                 {:record-timestamps boolean} |
                 {:conc-name conc-name}
auto-pk-mixin-class-name ::= {:serial | :uuid}
conc-name ::= {null | string-designator}

Note: the class automatically adds some slots -- a primary key named id if there is no primary key, created_at and updated_at for recording timestamps. To disable these behaviors, specify :auto-pk nil or :record-timestamps nil to defclass forms.

(mito.class:table-column-slots (find-class 'user))
;=> (#<MITO.DAO.COLUMN:DAO-TABLE-COLUMN-CLASS MITO.DAO.MIXIN::ID>
;    #<MITO.DAO.COLUMN:DAO-TABLE-COLUMN-CLASS COMMON-LISP-USER::NAME>
;    #<MITO.DAO.COLUMN:DAO-TABLE-COLUMN-CLASS COMMON-LISP-USER::EMAIL>
;    #<MITO.DAO.COLUMN:DAO-TABLE-COLUMN-CLASS MITO.DAO.MIXIN::CREATED-AT>
;    #<MITO.DAO.COLUMN:DAO-TABLE-COLUMN-CLASS MITO.DAO.MIXIN::UPDATED-AT>)

This class inherits mito:dao-class implicitly.

(find-class 'user)
;=> #<MITO.DAO.TABLE:DAO-TABLE-CLASS COMMON-LISP-USER::USER>

(c2mop:class-direct-superclasses *)
;=> (#<STANDARD-CLASS MITO.DAO.TABLE:DAO-CLASS>)

This may be useful to define methods that can be applied for many or all table classes.

:col-type Options

The following are valid keywords for :col-type in the deftable definition above.

:serial
:bigserial
:timestamptz
:integer
:bytea
:timestamp
:bigint
:unsigned
:int
:binary
:datetime

Besides the above keywords, there are other keywords that are valid, however they are dependent on the RDS and its version.

An example of this is that :json and :jsonb work for PostgreSQL but don't work on an old version of MySQL which doesn't support those types.

A complete list of valid :col-type options is dependent on the database system. Here's a link for the current Data Types for:

The symbols are not defined directly in the system, rather they are the symbol equivalent of the string which is the name for the data type. Therefore, for any data type name, just preprend a colon to the name :data-type in order to use it as a col-type.

Generating Table Definitions

(mito:table-definition 'user)
;=> (#<SXQL-STATEMENT: CREATE TABLE user (id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(64) NOT NULL, email VARCHAR(128), created_at TIMESTAMP, updated_at TIMESTAMP)>)

(sxql:yield *)
;=> "CREATE TABLE user (id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(64) NOT NULL, email VARCHAR(128), created_at TIMESTAMP, updated_at TIMESTAMP)"
;   NIL

Creating DB tables

(mapc #'mito:execute-sql (mito:table-definition 'user))

(mito:ensure-table-exists 'user)

CRUD

(defvar me
  (make-instance 'user :name "Eitaro Fukamachi" :email "e.arrows@gmail.com"))
;=> USER

(mito:insert-dao me)
;-> ;; INSERT INTO `user` (`name`, `email`, `created_at`, `updated_at`) VALUES (?, ?, ?, ?) ("Eitaro Fukamachi", "e.arrows@gmail.com", "2016-02-04T19:55:16.365543Z", "2016-02-04T19:55:16.365543Z") [0 rows] | MITO.DAO:INSERT-DAO
;=> #<USER {10053C4453}>

;; Same as above
(mito:create-dao 'user :name "Eitaro Fukamachi" :email "e.arrows@gmail.com")

;; Getting the primary key value
(mito:object-id me)
;=> 1

;; Retrieving from the DB
(mito:find-dao 'user :id 1)
;-> ;; SELECT * FROM `user` WHERE (`id` = ?) LIMIT 1 (1) [1 row] | MITO.DB:RETRIEVE-BY-SQL
;=> #<USER {10077C6073}>

(mito:retrieve-dao 'user)
;=> (#<USER {10077C6073}>)

;; Updating
(setf (slot-value me 'name) "nitro_idiot")
;=> "nitro_idiot"

(mito:save-dao me)
;-> ;; UPDATE `user` SET `id` = ?, `name` = ?, `email` = ?, `created_at` = ?, `updated_at` = ? WHERE (`id` = ?) (2, "nitro_idiot", "e.arrows@gmail.com", "2016-02-04T19:56:11.408927Z", "2016-02-04T19:56:19.006020Z", 2) [0 rows] | MITO.DAO:UPDATE-DAO

;; Deleting
(mito:delete-dao me)
;-> ;; DELETE FROM `user` WHERE (`id` = ?) (1) [0 rows] | MITO.DAO:DELETE-DAO
(mito:delete-by-values 'user :id 1)
;-> ;; DELETE FROM `user` WHERE (`id` = ?) (1) [0 rows] | MITO.DAO:DELETE-DAO

;; Counting
(mito:count-dao 'user)
;-> 1

Use select-dao to build custom queries with sxql (examples below).

Relationship

To define a relationship, use :references on the slot:

(mito:deftable user ()
  ((id :col-type (:varchar 36)
       :primary-key t)
   (name :col-type (:varchar 64))
   (email :col-type (or (:varchar 128) :null))))

(mito:deftable tweet ()
  ((status :col-type :text)
   ;; This slot refers to USER class
   (user-id :references (user id))))

;; The :col-type of USER-ID column is retrieved from the foreign class.
(mito:table-definition (find-class 'tweet))
;=> (#<SXQL-STATEMENT: CREATE TABLE tweet (
;       id BIGSERIAL NOT NULL PRIMARY KEY,
;       status TEXT NOT NULL,
;       user_id VARCHAR(36) NOT NULL,
;       created_at TIMESTAMPTZ,
;       updated_at TIMESTAMPTZ
;   )>)

You can also specify another foreign class at :col-type to define a relationship:

(mito:deftable tweet ()
  ((status :col-type :text)
   ;; This slot refers to USER class
   (user :col-type user)))

(mito:table-definition (find-class 'tweet))
;=> (#<SXQL-STATEMENT: CREATE TABLE tweet (
;        id BIGSERIAL NOT NULL PRIMARY KEY,
;        status TEXT NOT NULL,
;        user_id VARCHAR(36) NOT NULL,
;        created_at TIMESTAMP,
;        updated_at TIMESTAMP
;    )>)

;; You can specify :USER arg, instead of :USER-ID.
(defvar *user* (mito:create-dao 'user :name "Eitaro Fukamachi"))
(mito:create-dao 'tweet :user *user*)

(mito:find-dao 'tweet :user *user*)

The latter example allows you to create/retrieve TWEET by a USER object, not a USER-ID.

Mito doesn't add foreign key constraints for referring tables, since I'm not sure it's still handful while using with ORMs.

Inflation/Deflation

Inflation/Deflation is a function to convert values between Mito and RDBMS.

(mito:deftable user-report ()
  ((title :col-type (:varchar 100))
   (body :col-type :text
         :initform "")
   (reported-at :col-type :timestamp
                :initform (local-time:now)
                :inflate #'local-time:universal-to-timestamp
                :deflate #'local-time:timestamp-to-universal))
  (:conc-name report-))

Eager loading

One of the pains in the neck to use ORMs is the "N+1 query" problem.

;; BAD EXAMPLE

(use-package '(:mito :sxql))

(defvar *tweets-contain-japan*
  (select-dao 'tweet
    (where (:like :status "%Japan%"))))

;; Getting names of tweeted users.
(mapcar (lambda (tweet)
          (user-name (tweet-user tweet)))
        *tweets-contain-japan*)

This example sends a query to retrieve a user, like "SELECT * FROM user WHERE id = ?" for each iteration.

To prevent this performance issue, add includes to the above query, which sends only a single WHERE IN query instead of N queries:

;; GOOD EXAMPLE with eager loading

(use-package '(:mito :sxql))

(defvar *tweets-contain-japan*
  (select-dao 'tweet
    (includes 'user)
    (where (:like :status "%Japan%"))))
;-> ;; SELECT * FROM `tweet` WHERE (`status` LIKE ?) ("%Japan%") [3 row] | MITO.DB:RETRIEVE-BY-SQL
;-> ;; SELECT * FROM `user` WHERE (`id` IN (?, ?, ?)) (1, 3, 12) [3 row] | MITO.DB:RETRIEVE-BY-SQL
;=> (#<TWEET {1003513EC3}> #<TWEET {1007BABEF3}> #<TWEET {1007BB9D63}>)

;; No additional SQLs will be executed.
(tweet-user (first *))
;=> #<USER {100361E813}>

Migrations

(ensure-table-exists 'user)
;-> ;; CREATE TABLE IF NOT EXISTS "user" (
;       "id" BIGSERIAL NOT NULL PRIMARY KEY,
;       "name" VARCHAR(64) NOT NULL,
;       "email" VARCHAR(128),
;       "created_at" TIMESTAMP,
;       "updated_at" TIMESTAMP
;   ) () [0 rows] | MITO.DAO:ENSURE-TABLE-EXISTS

;; No changes
(mito:migration-expressions 'user)
;=> NIL

(mito:deftable user ()
  ((name :col-type (:varchar 64))
   (email :col-type (:varchar 128)))
  (:unique-keys email))

(mito:migration-expressions 'user)
;=> (#<SXQL-STATEMENT: ALTER TABLE user ALTER COLUMN email TYPE character varying(128), ALTER COLUMN email SET NOT NULL>
;    #<SXQL-STATEMENT: CREATE UNIQUE INDEX unique_user_email ON user (email)>)

(mito:migrate-table 'user)
;-> ;; ALTER TABLE "user" ALTER COLUMN "email" TYPE character varying(128), ALTER COLUMN "email" SET NOT NULL () [0 rows] | MITO.MIGRATION.TABLE:MIGRATE-TABLE
;   ;; CREATE UNIQUE INDEX "unique_user_email" ON "user" ("email") () [0 rows] | MITO.MIGRATION.TABLE:MIGRATE-TABLE
;-> (#<SXQL-STATEMENT: ALTER TABLE user ALTER COLUMN email TYPE character varying(128), ALTER COLUMN email SET NOT NULL>
;    #<SXQL-STATEMENT: CREATE UNIQUE INDEX unique_user_email ON user (email)>)

SQLite3 migration creates temporary tables with pre-migration data. To delete them after migration is complete set mito:*migration-keep-temp-tables* to nil. It has no effect on other drivers.

Auto migrations

If mito:*auto-migration-mode* is set to t, and you are connected to a database, Mito will run migrations after each change to model definitions.

Schema versioning

$ ros install mito
$ mito
Usage: mito command [option...]

Commands:
    generate-migrations
    migrate
    migration-status

Options:
    -t, --type DRIVER-TYPE          DBI driver type (one of "mysql", "postgres" or "sqlite3")
    -d, --database DATABASE-NAME    Database name to use
    -u, --username USERNAME         Username for RDBMS
    -p, --password PASSWORD         Password for RDBMS
    -s, --system SYSTEM             ASDF system to load (several -s's allowed)
    -D, --directory DIRECTORY       Directory path to keep migration SQL files (default: "/Users/nitro_idiot/Programs/lib/mito/db/")
    --dry-run                       List SQL expressions to migrate
    -f, --force                     Create a new empty migration file even when it's unnecessary.

Example

mito --database postgres --username fukamachi --pasword c0mmon-l1sp

Inheritance and Mixin

A subclass of DAO-CLASS is allowed to be inherited. This may be useful when you need classes that have similar columns:

(mito:deftable user ()
  ((name :col-type (:varchar 64))
   (email :col-type (:varchar 128)))
  (:unique-keys email))

(mito:deftable temporary-user (user)
  ((registered-at :col-type :timestamp)))

(mito:table-definition 'temporary-user)
;=> (#<SXQL-STATEMENT: CREATE TABLE temporary_user (
;        id BIGSERIAL NOT NULL PRIMARY KEY,
;        name VARCHAR(64) NOT NULL,
;        email VARCHAR(128) NOT NULL,
;        registered_at TIMESTAMP NOT NULL,
;        created_at TIMESTAMP,
;        updated_at TIMESTAMP,
;        UNIQUE (email)
;    )>)

If you need a 'template' for tables, not related to any specific database table, you can use DAO-TABLE-MIXIN:

(defclass has-email ()
  ((email :col-type (:varchar 128)
          :accessor object-email))
  (:metaclass mito:dao-table-mixin)
  (:unique-keys email))
;=> #<MITO.DAO.MIXIN:DAO-TABLE-MIXIN COMMON-LISP-USER::HAS-EMAIL>

(mito:deftable user (has-email)
  ((name :col-type (:varchar 64))))
;=> #<MITO.DAO.TABLE:DAO-TABLE-CLASS COMMON-LISP-USER::USER>

(mito:table-definition 'user)
;=> (#<SXQL-STATEMENT: CREATE TABLE user (
;       id BIGSERIAL NOT NULL PRIMARY KEY,
;       name VARCHAR(64) NOT NULL,
;       email VARCHAR(128) NOT NULL,
;       created_at TIMESTAMP,
;       updated_at TIMESTAMP,
;       UNIQUE (email)
;   )>)

Triggers

Since insert-dao, update-dao and delete-dao are defined as generic functions, you can define :before, :after or :around methods on those.

(defmethod mito:insert-dao :before ((object user))
  (format t "~&Adding ~S...~%" (user-name object)))

(mito:create-dao 'user :name "Eitaro Fukamachi" :email "e.arrows@gmail.com")
;-> Adding "Eitaro Fukamachi"...
;   ;; INSERT INTO "user" ("name", "email", "created_at", "updated_at") VALUES (?, ?, ?, ?) ("Eitaro Fukamachi", "e.arrows@gmail.com", "2016-02-16 21:13:47", "2016-02-16 21:13:47") [0 rows] | MITO.DAO:INSERT-DAO
;=> #<USER {100835FB33}>

Installation

(ql:quickload :mito)

Or, with Roswell:

ros install mito

See Also

Author

Copyright

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

License

Licensed under the LLGPL License.


2 Systems

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


Next: , Previous: , Up: Systems   [Contents][Index]

2.1 mito

Abstraction layer for DB schema

Author

Eitaro Fukamachi

License

LLGPL

Long Description

# Mito

[![Build Status](https://github.com/fukamachi/mito/workflows/CI/badge.svg)](https://github.com/fukamachi/mito/actions?query=workflow%3ACI)
[![Quicklisp dist](http://quickdocs.org/badge/mito.svg)](http://quickdocs.org/mito/)

Mito is yet another object relational mapper, and it aims to be a successor of [Integral](https://github.com/fukamachi/integral).

* Supports MySQL, PostgreSQL and SQLite3
* Adds ‘id‘ (serial/uuid primary key), ‘created_at‘ and ‘updated_at‘ by default like Ruby’s ActiveRecord
* Migrations
* DB schema versioning

## Warning

This software is still ALPHA quality. The APIs likely change.

This software should work fine with MySQL, PostgreSQL and SQLite3 on SBCL/Clozure CL.

## Usage

“‘common-lisp
(mito:connect-toplevel :mysql :database-name "myapp" :username "fukamachi" :password "c0mon-1isp")
;=> #<DBD.MYSQL:<DBD-MYSQL-CONNECTION> {100691BFF3}>

(mito:deftable user ()
((name :col-type (:varchar 64))
(email :col-type (or (:varchar 128) :null))))
;=> #<MITO.DAO.TABLE:DAO-TABLE-CLASS COMMON-LISP-USER::USER>

(mito:table-definition ’user)
;=> (#<SXQL-STATEMENT: CREATE TABLE user (id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(64) NOT NULL, email VARCHAR(128))>)

(mito:deftable tweet ()
((status :col-type :text)
(user :col-type user)))
;=> #<MITO.DAO.TABLE:DAO-TABLE-CLASS COMMON-LISP-USER::TWEET>

(mito:table-definition ’tweet)
;=> (#<SXQL-STATEMENT: CREATE TABLE tweet (id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, status TEXT NOT NULL, user_id BIGINT UNSIGNED NOT NULL, created_at TIMESTAMP, updated_at TIMESTAMP)>)
“‘

### Connecting to DB

Mito provides the functions ‘connect-toplevel‘ and ‘disconnect-toplevel‘ to establish and sever a connection to RDBMS.

‘connect-toplevel‘ takes the same arguments as ‘dbi:connect‘: typically the driver-type, the database name to connect, user name and password.

“‘common-lisp
(mito:connect-toplevel :mysql :database-name "myapp" :username "fukamachi" :password "c0mon-1isp")
“‘

‘connect-toplevel‘ sets ‘*connection*‘ to a new connection and returns it.

To use a connection lexically, just bind it:

“‘common-lisp
(let ((mito:*connection* (dbi:connect :sqlite3 :database-name #P"/tmp/myapp.db")))
(unwind-protect (progn ...)
;; Ensure that the connection is closed.
(dbi:disconnect mito:*connection*)))
“‘

In most cases ‘dbi:connect-cached‘ is a better option, since it reuses a connection for multiple threads.

“‘common-lisp
(let ((mito:*connection* (dbi:connect-cached :sqlite3 :database-name #P"/tmp/myapp.db")))
(unwind-protect (progn ...)
;; Ensure that the connection is closed.
))
“‘

Use ‘connection-database-name‘ to get the name of the current connection, or of one named via parameter.

### deftable macro

As Mito’s dao table class is defined as a CLOS metaclass, a table class can be defined like this:

“‘common-lisp
(defclass user ()
((name :col-type (:varchar 64)
:accessor user-name)
(email :col-type (or (:varchar 128) :null)
:accessor user-email))
(:metaclass mito:dao-table-class))
“‘

‘deftable‘’s syntax is the same as that of ‘cl:defclass‘. However, the definition is a little bit redundant.

‘mito:deftable‘ is a thin macro, to allow definion of a table class with less typing.

For example, the above example can be rewritten, using ‘deftable‘ as follows.

“‘common-lisp
(mito:deftable user ()
((name :col-type (:varchar 64))
(email :col-type (or (:varchar 128) :null))))
“‘

It adds ‘:metaclass mito:dao-table-class‘, and adds default accessors that start with ‘<class-name>-‘ by default, like ‘defstruct‘ does.

The prefix for accessors can be changed with the ‘:conc-name‘ class option:

“‘common-lisp
(mito:deftable user ()
((name :col-type (:varchar 64))
(email :col-type (or (:varchar 128) :null)))
(:conc-name my-))

(my-name (make-instance ’user :name "fukamachi"))
;=> "fukamachi"
“‘

If ‘:conc-name‘ is NIL, default accessors will NOT be defined.

### Class Definitions

In Mito, a class corresponding to a database table is defined by specifying ‘(:metaclass mito:dao-table-class)‘.

“‘common-lisp
(defclass user ()
((name :col-type (:varchar 64)
:accessor user-name)
(email :col-type (or (:varchar 128) :null)
:accessor user-email))
(:metaclass mito:dao-table-class))
“‘

The above defines a Common Lisp normal class, except that it allows additional options.

“‘
(defclass {class-name} ()
({column-definition}*)
(:metaclass mito:dao-table-class)
[[class-option]])

column-definition ::= (slot-name [[column-option]])
column-option ::= {:col-type col-type} |
{:primary-key boolean} |
{:inflate inflation-function} |
{:deflate deflation-function} |
{:references {class-name | (class-name slot-name)}} |
{:ghost boolean}
col-type ::= { keyword |
(keyword . args) |
(or keyword :null) |
(or :null keyword) }
class-option ::= {:primary-key symbol*} |
{:unique-keys {symbol | (symbol*)}*} |
{:keys {symbol | (symbol*)}*} |
{:table-name table-name} |
{:auto-pk auto-pk-mixin-class-name} |
{:record-timestamps boolean} |
{:conc-name conc-name}
auto-pk-mixin-class-name ::= {:serial | :uuid}
conc-name ::= {null | string-designator}
“‘

Note: the class automatically adds some slots – a primary key named ‘id‘ if there is no primary key, ‘created_at‘ and ‘updated_at‘ for recording timestamps. To disable these behaviors, specify ‘:auto-pk nil‘ or ‘:record-timestamps nil‘ to defclass forms.

“‘common-lisp
(mito.class:table-column-slots (find-class ’user))
;=> (#<MITO.DAO.COLUMN:DAO-TABLE-COLUMN-CLASS MITO.DAO.MIXIN::ID>
; #<MITO.DAO.COLUMN:DAO-TABLE-COLUMN-CLASS COMMON-LISP-USER::NAME>
; #<MITO.DAO.COLUMN:DAO-TABLE-COLUMN-CLASS COMMON-LISP-USER::EMAIL>
; #<MITO.DAO.COLUMN:DAO-TABLE-COLUMN-CLASS MITO.DAO.MIXIN::CREATED-AT>
; #<MITO.DAO.COLUMN:DAO-TABLE-COLUMN-CLASS MITO.DAO.MIXIN::UPDATED-AT>)
“‘

This class inherits ‘mito:dao-class‘ implicitly.

“‘common-lisp
(find-class ’user)
;=> #<MITO.DAO.TABLE:DAO-TABLE-CLASS COMMON-LISP-USER::USER>

(c2mop:class-direct-superclasses *)
;=> (#<STANDARD-CLASS MITO.DAO.TABLE:DAO-CLASS>)
“‘

This may be useful to define methods that can be applied for many or all table classes.

#### :col-type Options

The following are valid keywords for :col-type in the ‘deftable‘ definition above.

“‘common-lisp
:serial
:bigserial
:timestamptz
:integer
:bytea
:timestamp
:bigint
:unsigned
:int
:binary
:datetime
“‘

Besides the above keywords, there are other keywords that are valid, however they are dependent on the RDS and its version.

An example of this is that ‘:json‘ and ‘:jsonb‘ work for PostgreSQL but don’t work on an old version of MySQL which doesn’t support those types.

A complete list of valid ‘:col-type‘ options is dependent on the database system. Here’s a link for the current Data Types for:
- [PostgreSQL Data Types](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#links)
- [MySQL Data Types](https://dev.mysql.com/doc/refman/8.0/en/data-types.html)
- [SQLite3 Data Types](https://www.sqlite.org/datatype3.html)

The symbols are not defined directly in the system, rather they are the symbol equivalent of the string which is the name for the data type. Therefore, for any data type name, just preprend a colon to the name ‘:data-type‘ in order to use it as a ‘col-type‘.

### Generating Table Definitions

“‘common-lisp
(mito:table-definition ’user)
;=> (#<SXQL-STATEMENT: CREATE TABLE user (id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(64) NOT NULL, email VARCHAR(128), created_at TIMESTAMP, updated_at TIMESTAMP)>)

(sxql:yield *)
;=> "CREATE TABLE user (id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(64) NOT NULL, email VARCHAR(128), created_at TIMESTAMP, updated_at TIMESTAMP)"
; NIL
“‘

### Creating DB tables

“‘common-lisp
(mapc #’mito:execute-sql (mito:table-definition ’user))

(mito:ensure-table-exists ’user)
“‘

### CRUD

“‘common-lisp
(defvar me
(make-instance ’user :name "Eitaro Fukamachi" :email "e.arrows@gmail.com"))
;=> USER

(mito:insert-dao me)
;-> ;; INSERT INTO ‘user‘ (‘name‘, ‘email‘, ‘created_at‘, ‘updated_at‘) VALUES (?, ?, ?, ?) ("Eitaro Fukamachi", "e.arrows@gmail.com", "2016-02-04T19:55:16.365543Z", "2016-02-04T19:55:16.365543Z") [0 rows] | MITO.DAO:INSERT-DAO
;=> #<USER {10053C4453}>

;; Same as above
(mito:create-dao ’user :name "Eitaro Fukamachi" :email "e.arrows@gmail.com")

;; Getting the primary key value
(mito:object-id me)
;=> 1

;; Retrieving from the DB
(mito:find-dao ’user :id 1)
;-> ;; SELECT * FROM ‘user‘ WHERE (‘id‘ = ?) LIMIT 1 (1) [1 row] | MITO.DB:RETRIEVE-BY-SQL
;=> #<USER {10077C6073}>

(mito:retrieve-dao ’user)
;=> (#<USER {10077C6073}>)

;; Updating
(setf (slot-value me ’name) "nitro_idiot")
;=> "nitro_idiot"

(mito:save-dao me)
;-> ;; UPDATE ‘user‘ SET ‘id‘ = ?, ‘name‘ = ?, ‘email‘ = ?, ‘created_at‘ = ?, ‘updated_at‘ = ? WHERE (‘id‘ = ?) (2, "nitro_idiot", "e.arrows@gmail.com", "2016-02-04T19:56:11.408927Z", "2016-02-04T19:56:19.006020Z", 2) [0 rows] | MITO.DAO:UPDATE-DAO

;; Deleting
(mito:delete-dao me)
;-> ;; DELETE FROM ‘user‘ WHERE (‘id‘ = ?) (1) [0 rows] | MITO.DAO:DELETE-DAO
(mito:delete-by-values ’user :id 1)
;-> ;; DELETE FROM ‘user‘ WHERE (‘id‘ = ?) (1) [0 rows] | MITO.DAO:DELETE-DAO

;; Counting
(mito:count-dao ’user)
;-> 1
“‘

Use ‘select-dao‘ to build custom queries with sxql (examples below).

### Relationship

To define a relationship, use ‘:references‘ on the slot:

“‘common-lisp
(mito:deftable user ()
((id :col-type (:varchar 36)
:primary-key t)
(name :col-type (:varchar 64))
(email :col-type (or (:varchar 128) :null))))

(mito:deftable tweet ()
((status :col-type :text)
;; This slot refers to USER class
(user-id :references (user id))))

;; The :col-type of USER-ID column is retrieved from the foreign class.
(mito:table-definition (find-class ’tweet))
;=> (#<SXQL-STATEMENT: CREATE TABLE tweet (
; id BIGSERIAL NOT NULL PRIMARY KEY,
; status TEXT NOT NULL,
; user_id VARCHAR(36) NOT NULL,
; created_at TIMESTAMPTZ,
; updated_at TIMESTAMPTZ
; )>)
“‘

You can also specify another foreign class at ‘:col-type‘ to define a relationship:

“‘common-lisp
(mito:deftable tweet ()
((status :col-type :text)
;; This slot refers to USER class
(user :col-type user)))

(mito:table-definition (find-class ’tweet))
;=> (#<SXQL-STATEMENT: CREATE TABLE tweet (
; id BIGSERIAL NOT NULL PRIMARY KEY,
; status TEXT NOT NULL,
; user_id VARCHAR(36) NOT NULL,
; created_at TIMESTAMP,
; updated_at TIMESTAMP
; )>)

;; You can specify :USER arg, instead of :USER-ID.
(defvar *user* (mito:create-dao ’user :name "Eitaro Fukamachi"))
(mito:create-dao ’tweet :user *user*)

(mito:find-dao ’tweet :user *user*)
“‘

The latter example allows you to create/retrieve ‘TWEET‘ by a ‘USER‘ object, not a ‘USER-ID‘.

Mito doesn’t add foreign key constraints for referring tables, since I’m not sure it’s still handful while using with ORMs.

### Inflation/Deflation

Inflation/Deflation is a function to convert values between Mito and RDBMS.

“‘common-lisp
(mito:deftable user-report ()
((title :col-type (:varchar 100))
(body :col-type :text
:initform "")
(reported-at :col-type :timestamp
:initform (local-time:now)
:inflate #’local-time:universal-to-timestamp
:deflate #’local-time:timestamp-to-universal))
(:conc-name report-))
“‘

### Eager loading

One of the pains in the neck to use ORMs is the "N+1 query" problem.

“‘common-lisp
;; BAD EXAMPLE

(use-package ’(:mito :sxql))

(defvar *tweets-contain-japan*
(select-dao ’tweet
(where (:like :status "%Japan%"))))

;; Getting names of tweeted users.
(mapcar (lambda (tweet)
(user-name (tweet-user tweet)))
*tweets-contain-japan*)
“‘

This example sends a query to retrieve a user, like "SELECT * FROM user WHERE id = ?" for each iteration.

To prevent this performance issue, add ‘includes‘ to the above query, which sends only a single WHERE IN query instead of N queries:

“‘common-lisp
;; GOOD EXAMPLE with eager loading

(use-package ’(:mito :sxql))

(defvar *tweets-contain-japan*
(select-dao ’tweet
(includes ’user)
(where (:like :status "%Japan%"))))
;-> ;; SELECT * FROM ‘tweet‘ WHERE (‘status‘ LIKE ?) ("%Japan%") [3 row] | MITO.DB:RETRIEVE-BY-SQL
;-> ;; SELECT * FROM ‘user‘ WHERE (‘id‘ IN (?, ?, ?)) (1, 3, 12) [3 row] | MITO.DB:RETRIEVE-BY-SQL
;=> (#<TWEET {1003513EC3}> #<TWEET {1007BABEF3}> #<TWEET {1007BB9D63}>)

;; No additional SQLs will be executed.
(tweet-user (first *))
;=> #<USER {100361E813}>
“‘

### Migrations

“‘common-lisp
(ensure-table-exists ’user)
;-> ;; CREATE TABLE IF NOT EXISTS "user" (
; "id" BIGSERIAL NOT NULL PRIMARY KEY,
; "name" VARCHAR(64) NOT NULL,
; "email" VARCHAR(128),
; "created_at" TIMESTAMP,
; "updated_at" TIMESTAMP
; ) () [0 rows] | MITO.DAO:ENSURE-TABLE-EXISTS

;; No changes
(mito:migration-expressions ’user)
;=> NIL

(mito:deftable user ()
((name :col-type (:varchar 64))
(email :col-type (:varchar 128)))
(:unique-keys email))

(mito:migration-expressions ’user)
;=> (#<SXQL-STATEMENT: ALTER TABLE user ALTER COLUMN email TYPE character varying(128), ALTER COLUMN email SET NOT NULL>
; #<SXQL-STATEMENT: CREATE UNIQUE INDEX unique_user_email ON user (email)>)

(mito:migrate-table ’user)
;-> ;; ALTER TABLE "user" ALTER COLUMN "email" TYPE character varying(128), ALTER COLUMN "email" SET NOT NULL () [0 rows] | MITO.MIGRATION.TABLE:MIGRATE-TABLE
; ;; CREATE UNIQUE INDEX "unique_user_email" ON "user" ("email") () [0 rows] | MITO.MIGRATION.TABLE:MIGRATE-TABLE
;-> (#<SXQL-STATEMENT: ALTER TABLE user ALTER COLUMN email TYPE character varying(128), ALTER COLUMN email SET NOT NULL>
; #<SXQL-STATEMENT: CREATE UNIQUE INDEX unique_user_email ON user (email)>)
“‘

SQLite3 migration creates temporary tables with pre-migration data. To delete them after migration is complete set
‘mito:*migration-keep-temp-tables*‘ to ‘nil‘. It has no effect on other drivers.

#### Auto migrations

If ‘mito:*auto-migration-mode*‘ is set to ‘t‘, and you are connected to a database, Mito will run migrations after
each change to model definitions.

### Schema versioning

“‘
$ ros install mito
$ mito
Usage: mito command [option...]

Commands:
generate-migrations
migrate
migration-status

Options:
-t, –type DRIVER-TYPE DBI driver type (one of "mysql", "postgres" or "sqlite3")
-d, –database DATABASE-NAME Database name to use
-u, –username USERNAME Username for RDBMS
-p, –password PASSWORD Password for RDBMS
-s, –system SYSTEM ASDF system to load (several -s’s allowed)
-D, –directory DIRECTORY Directory path to keep migration SQL files (default: "/Users/nitro_idiot/Programs/lib/mito/db/")
–dry-run List SQL expressions to migrate
-f, –force Create a new empty migration file even when it’s unnecessary.
“‘

#### Example

“‘
mito –database postgres –username fukamachi –pasword c0mmon-l1sp
“‘

### Inheritance and Mixin

A subclass of DAO-CLASS is allowed to be inherited. This may be useful when you need classes that have similar columns:

“‘common-lisp
(mito:deftable user ()
((name :col-type (:varchar 64))
(email :col-type (:varchar 128)))
(:unique-keys email))

(mito:deftable temporary-user (user)
((registered-at :col-type :timestamp)))

(mito:table-definition ’temporary-user)
;=> (#<SXQL-STATEMENT: CREATE TABLE temporary_user (
; id BIGSERIAL NOT NULL PRIMARY KEY,
; name VARCHAR(64) NOT NULL,
; email VARCHAR(128) NOT NULL,
; registered_at TIMESTAMP NOT NULL,
; created_at TIMESTAMP,
; updated_at TIMESTAMP,
; UNIQUE (email)
; )>)
“‘

If you need a ’template’ for tables, not related to any specific database table, you can use ‘DAO-TABLE-MIXIN‘:

“‘common-lisp
(defclass has-email ()
((email :col-type (:varchar 128)
:accessor object-email))
(:metaclass mito:dao-table-mixin)
(:unique-keys email))
;=> #<MITO.DAO.MIXIN:DAO-TABLE-MIXIN COMMON-LISP-USER::HAS-EMAIL>

(mito:deftable user (has-email)
((name :col-type (:varchar 64))))
;=> #<MITO.DAO.TABLE:DAO-TABLE-CLASS COMMON-LISP-USER::USER>

(mito:table-definition ’user)
;=> (#<SXQL-STATEMENT: CREATE TABLE user (
; id BIGSERIAL NOT NULL PRIMARY KEY,
; name VARCHAR(64) NOT NULL,
; email VARCHAR(128) NOT NULL,
; created_at TIMESTAMP,
; updated_at TIMESTAMP,
; UNIQUE (email)
; )>)
“‘

* [mito-attachment](https://github.com/fukamachi/mito-attachment)
* [mito-auth](https://github.com/fukamachi/mito-auth)

### Triggers

Since ‘insert-dao‘, ‘update-dao‘ and ‘delete-dao‘ are defined as generic functions, you can define ‘:before‘, ‘:after‘ or ‘:around‘ methods on those.

“‘common-lisp
(defmethod mito:insert-dao :before ((object user))
(format t "~&Adding ~S...~%" (user-name object)))

(mito:create-dao ’user :name "Eitaro Fukamachi" :email "e.arrows@gmail.com")
;-> Adding "Eitaro Fukamachi"...
; ;; INSERT INTO "user" ("name", "email", "created_at", "updated_at") VALUES (?, ?, ?, ?) ("Eitaro Fukamachi", "e.arrows@gmail.com", "2016-02-16 21:13:47", "2016-02-16 21:13:47") [0 rows] | MITO.DAO:INSERT-DAO
;=> #<USER {100835FB33}>
“‘

## Installation

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

Or, with Roswell:

“‘
ros install mito
“‘

## See Also

* [CL-DBI](https://github.com/fukamachi/cl-dbi)
* [SxQL](https://github.com/fukamachi/sxql)

## Author

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

## Copyright

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

## License

Licensed under the LLGPL License.

Version

0.1

Dependencies
Source

mito.asd.

Child Component

src/mito.lisp (file).


Next: , Previous: , Up: Systems   [Contents][Index]

2.2 mito-core

Author

Eitaro Fukamachi

License

LLGPL

Version

0.1

Dependencies
  • dbi (system)., at least version "0.9.5"
  • sxql (system).
  • cl-ppcre (system).
  • closer-mop (system).
  • dissect (system).
  • trivia (system).
  • cl-reexport (system).
  • local-time (system).
  • uuid (system).
  • alexandria (system).
Source

mito-core.asd.

Child Components

Next: , Previous: , Up: Systems   [Contents][Index]

2.3 mito-migration

Author

Eitaro Fukamachi

License

LLGPL

Version

0.1

Dependencies
  • mito-core (system).
  • sxql (system).
  • dbi (system).
  • closer-mop (system).
  • cl-reexport (system).
  • esrap (system).
  • alexandria (system).
  • uiop (system).
  • chipz (system).
Source

mito-migration.asd.

Child Components

Previous: , Up: Systems   [Contents][Index]

2.4 lack-middleware-mito

Author

Eitaro Fukamachi

License

LLGPL

Version

0.1

Dependencies
Source

lack-middleware-mito.asd.

Child Component

src (module).


Next: , Previous: , Up: The mito Reference Manual   [Contents][Index]

3 Modules

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


3.1 mito-core/core-components

Source

mito-core.asd.

Parent Component

mito-core (system).

Child Components

3.2 mito-core/core-components/dao-components

Dependencies
Source

mito-core.asd.

Parent Component

core-components (module).

Child Components

3.3 mito-core/core-components/class-components

Dependencies
Source

mito-core.asd.

Parent Component

core-components (module).

Child Components

3.4 mito-core/core-components/db-drivers

Dependencies
Source

mito-core.asd.

Parent Component

core-components (module).

Child Components

3.5 mito-migration/migration-components

Source

mito-migration.asd.

Parent Component

mito-migration (system).

Child Components

3.6 lack-middleware-mito/src

Source

lack-middleware-mito.asd.

Parent Component

lack-middleware-mito (system).

Child Component

middleware.lisp (file).


4 Files

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


Previous: , Up: Files   [Contents][Index]

4.1 Lisp


Next: , Previous: , Up: Lisp   [Contents][Index]

4.1.1 mito/mito.asd

Source

mito.asd.

Parent Component

mito (system).

ASDF Systems

mito.

Packages

mito-asd.


4.1.2 mito-core/mito-core.asd

Source

mito-core.asd.

Parent Component

mito-core (system).

ASDF Systems

mito-core.


4.1.3 mito-migration/mito-migration.asd

Source

mito-migration.asd.

Parent Component

mito-migration (system).

ASDF Systems

mito-migration.

Packages

mito-migration-asd.


4.1.4 lack-middleware-mito/lack-middleware-mito.asd

Source

lack-middleware-mito.asd.

Parent Component

lack-middleware-mito (system).

ASDF Systems

lack-middleware-mito.


4.1.5 mito/src/mito.lisp

Source

mito.asd.

Parent Component

mito (system).

Packages

mito.


4.1.6 mito-core/src/core.lisp

Dependency

core-components (module).

Source

mito-core.asd.

Parent Component

mito-core (system).

Packages

mito.core.


4.1.7 mito-core/core-components/dao.lisp

Dependency

dao-components (module).

Source

mito-core.asd.

Parent Component

core-components (module).

Packages

mito.dao.

Public Interface
Internals

4.1.8 mito-core/core-components/dao-components/table.lisp

Dependencies
Source

mito-core.asd.

Parent Component

dao-components (module).

Packages

mito.dao.table.

Public Interface
Internals

4.1.9 mito-core/core-components/dao-components/view.lisp

Dependency

column.lisp (file).

Source

mito-core.asd.

Parent Component

dao-components (module).

Packages

mito.dao.view.

Public Interface
Internals

4.1.10 mito-core/core-components/dao-components/mixin.lisp

Dependency

column.lisp (file).

Source

mito-core.asd.

Parent Component

dao-components (module).

Packages

mito.dao.mixin.

Public Interface
Internals

4.1.11 mito-core/core-components/dao-components/column.lisp

Source

mito-core.asd.

Parent Component

dao-components (module).

Packages

mito.dao.column.

Public Interface
Internals

4.1.12 mito-core/core-components/class.lisp

Dependency

class-components (module).

Source

mito-core.asd.

Parent Component

core-components (module).

Packages

mito.class.

Public Interface

4.1.13 mito-core/core-components/class-components/table.lisp

Dependency

column.lisp (file).

Source

mito-core.asd.

Parent Component

class-components (module).

Packages

mito.class.table.

Public Interface
Internals

4.1.14 mito-core/core-components/class-components/column.lisp

Source

mito-core.asd.

Parent Component

class-components (module).

Packages

mito.class.column.

Public Interface
Internals

4.1.15 mito-core/core-components/connection.lisp

Dependency

error.lisp (file).

Source

mito-core.asd.

Parent Component

core-components (module).

Packages

mito.connection.

Public Interface

4.1.16 mito-core/core-components/type.lisp

Dependency

db.lisp (file).

Source

mito-core.asd.

Parent Component

core-components (module).

Packages

mito.type.

Public Interface
Internals

4.1.17 mito-core/core-components/db.lisp

Dependencies
Source

mito-core.asd.

Parent Component

core-components (module).

Packages

mito.db.

Public Interface
Internals

4.1.18 mito-core/core-components/db-drivers/mysql.lisp

Source

mito-core.asd.

Parent Component

db-drivers (module).

Packages

mito.db.mysql.

Public Interface
Internals

ensure-string (function).


4.1.19 mito-core/core-components/db-drivers/postgres.lisp

Source

mito-core.asd.

Parent Component

db-drivers (module).

Packages

mito.db.postgres.

Public Interface
Internals

get-serial-keys (function).


4.1.20 mito-core/core-components/db-drivers/sqlite3.lisp

Source

mito-core.asd.

Parent Component

db-drivers (module).

Packages

mito.db.sqlite3.

Public Interface
Internals

4.1.21 mito-core/core-components/logger.lisp

Source

mito-core.asd.

Parent Component

core-components (module).

Packages

mito.logger.

Public Interface
Internals

4.1.22 mito-core/core-components/error.lisp

Source

mito-core.asd.

Parent Component

core-components (module).

Packages

mito.error.

Public Interface

4.1.23 mito-core/core-components/util.lisp

Source

mito-core.asd.

Parent Component

core-components (module).

Packages

mito.util.

Public Interface
Internals

4.1.24 mito-migration/src/migration.lisp

Dependency

migration-components (module).

Source

mito-migration.asd.

Parent Component

mito-migration (system).

Packages

mito.migration.


4.1.25 mito-migration/migration-components/table.lisp

Dependency

sxql.lisp (file).

Source

mito-migration.asd.

Parent Component

migration-components (module).

Packages

mito.migration.table.

Public Interface
Internals

4.1.26 mito-migration/migration-components/versions.lisp

Dependencies
Source

mito-migration.asd.

Parent Component

migration-components (module).

Packages

mito.migration.versions.

Public Interface
Internals

4.1.27 mito-migration/migration-components/sxql.lisp

Source

mito-migration.asd.

Parent Component

migration-components (module).

Packages

mito.migration.sxql.

Public Interface
Internals

4.1.28 mito-migration/migration-components/sql-parse.lisp

Source

mito-migration.asd.

Parent Component

migration-components (module).

Packages

mito.migration.sql-parse.

Public Interface

parse-statements (function).


4.1.29 mito-migration/migration-components/util.lisp

Source

mito-migration.asd.

Parent Component

migration-components (module).

Packages

mito.migration.util.

Public Interface

generate-advisory-lock-id (function).

Internals

4.1.30 lack-middleware-mito/src/middleware.lisp

Source

lack-middleware-mito.asd.

Parent Component

src (module).

Packages

mito.middleware.

Public Interface

*lack-middleware-mito* (special variable).


5 Packages

Packages are listed by definition order.


Next: , Previous: , Up: Packages   [Contents][Index]

5.1 mito.middleware

Source

middleware.lisp.

Nickname

lack.middleware.mito

Use List

common-lisp.

Public Interface

*lack-middleware-mito* (special variable).


Next: , Previous: , Up: Packages   [Contents][Index]

5.2 mito.class.table

Source

table.lisp.

Use List
Used By List

mito.class.

Public Interface
Internals

Next: , Previous: , Up: Packages   [Contents][Index]

5.3 mito.connection

Source

connection.lisp.

Use List
Public Interface

Next: , Previous: , Up: Packages   [Contents][Index]

5.4 mito.dao.view

Source

view.lisp.

Use List

common-lisp.

Public Interface
Internals

Next: , Previous: , Up: Packages   [Contents][Index]

5.5 mito.error

Source

error.lisp.

Use List

common-lisp.

Used By List
Public Interface

Next: , Previous: , Up: Packages   [Contents][Index]

5.6 mito.db

Source

db.lisp.

Use List

common-lisp.

Public Interface
Internals

Next: , Previous: , Up: Packages   [Contents][Index]

5.7 mito.migration.table

Source

table.lisp.

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

5.8 mito.class.column

Source

column.lisp.

Use List
Used By List

mito.class.

Public Interface
Internals

Next: , Previous: , Up: Packages   [Contents][Index]

5.9 mito.db.postgres

Source

postgres.lisp.

Use List
Public Interface
Internals

get-serial-keys (function).


Next: , Previous: , Up: Packages   [Contents][Index]

5.10 mito.core

Source

src/core.lisp.

Use List

common-lisp.


Next: , Previous: , Up: Packages   [Contents][Index]

5.11 mito.class

Source

class.lisp.

Use List
Used By List

mito.dao.

Public Interface

create-table-sxql (generic function).


Next: , Previous: , Up: Packages   [Contents][Index]

5.12 mito-migration-asd

Source

mito-migration.asd.

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

Next: , Previous: , Up: Packages   [Contents][Index]

5.13 mito.dao.column

Source

column.lisp.

Use List
Public Interface
Internals

Next: , Previous: , Up: Packages   [Contents][Index]

5.14 mito.dao

Source

dao.lisp.

Use List
Public Interface
Internals

5.15 mito.type

Source

type.lisp.

Use List

common-lisp.

Public Interface
Internals

Next: , Previous: , Up: Packages   [Contents][Index]

5.16 mito.migration.sql-parse

Source

sql-parse.lisp.

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

parse-statements (function).


5.17 mito.dao.mixin

Source

mixin.lisp.

Use List
Public Interface
Internals

Next: , Previous: , Up: Packages   [Contents][Index]

5.18 mito.migration

Source

src/migration.lisp.

Use List

common-lisp.


Next: , Previous: , Up: Packages   [Contents][Index]

5.19 mito-asd

Source

mito.asd.

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

Next: , Previous: , Up: Packages   [Contents][Index]

5.20 mito.util

Source

util.lisp.

Use List

common-lisp.

Used By List
Public Interface
Internals

Next: , Previous: , Up: Packages   [Contents][Index]

5.21 mito.db.mysql

Source

mysql.lisp.

Use List
Public Interface
Internals

ensure-string (function).


5.22 mito.migration.util

Source

util.lisp.

Use List

common-lisp.

Public Interface

generate-advisory-lock-id (function).

Internals

Next: , Previous: , Up: Packages   [Contents][Index]

5.23 mito.migration.versions

Source

versions.lisp.

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

5.24 mito.logger

Source

logger.lisp.

Use List

common-lisp.

Public Interface
Internals

5.26 mito.db.sqlite3

Source

sqlite3.lisp.

Use List
Public Interface
Internals

Next: , Previous: , Up: Packages   [Contents][Index]

5.27 mito.migration.sxql

Extansions of SxQL for Mito.Migration

Source

sxql.lisp.

Use List

common-lisp.

Internals

5.28 mito

Source

src/mito.lisp.

Use List

common-lisp.


6 Definitions

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


Next: , Previous: , Up: Definitions   [Contents][Index]

6.1 Public Interface


Next: , Previous: , Up: Public Interface   [Contents][Index]

6.1.1 Special variables

Special Variable: *auto-migration-mode*
Package

mito.migration.table.

Source

table.lisp.

Special Variable: *connection*
Package

mito.connection.

Source

connection.lisp.

Special Variable: *lack-middleware-mito*
Package

mito.middleware.

Source

middleware.lisp.

Special Variable: *migration-keep-temp-tables*

SQLite3 migration creates temporary tables with pre-migration data. If this variable is T they won’t be deleted after migration.

Package

mito.migration.table.

Source

table.lisp.

Special Variable: *mito-logger-stream*
Package

mito.logger.

Source

logger.lisp.

Special Variable: *mito-migration-logger-stream*

Stream to output sql generated during migrations.

Package

mito.logger.

Source

logger.lisp.

Special Variable: *trace-sql-hooks*
Package

mito.logger.

Source

logger.lisp.

Special Variable: *use-prepare-cached*

EXPERIMENTAL FEATURE: If this is T, Mito uses DBI:PREPARE-CACHED
to retrieve/execute SQLs instead of DBI:PREPARE. The default value is NIL. Note that DBI:PREPARE-CACHED is added CL-DBI v0.9.5.

Package

mito.db.

Source

db.lisp.


6.1.2 Macros

Macro: deftable (name direct-superclasses direct-slots &rest options)
Package

mito.dao.

Source

dao.lisp.

Macro: select-dao (class &body clauses)
Package

mito.dao.

Source

dao.lisp.

Macro: with-prepared-query (query (conn sql &key use-prepare-cached) &body body)
Package

mito.util.

Source

util.lisp.

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

mito.connection.

Source

connection.lisp.

Macro: with-sql-logging (&body body)
Package

mito.logger.

Source

logger.lisp.

Macro: with-trace-sql (&body body)
Package

mito.logger.

Source

logger.lisp.


6.1.3 Ordinary functions

Function: acquire-advisory-lock (conn id)
Package

mito.db.

Source

db.lisp.

Function: acquire-advisory-lock (conn id)
Package

mito.db.postgres.

Source

postgres.lisp.

Function: acquire-advisory-lock (conn id)
Package

mito.db.mysql.

Source

mysql.lisp.

Function: all-migration-expressions ()
Package

mito.migration.versions.

Source

versions.lisp.

Function: check-connected ()
Package

mito.connection.

Source

connection.lisp.

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

mito.db.

Source

db.lisp.

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

mito.db.postgres.

Source

postgres.lisp.

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

mito.db.mysql.

Source

mysql.lisp.

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

mito.db.sqlite3.

Source

sqlite3.lisp.

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

mito.connection.

Source

connection.lisp.

Function: connected-p ()
Package

mito.connection.

Source

connection.lisp.

Function: connection-database-name (&optional conn)

Return the name of the current connection, or the one given as argument.

Package

mito.connection.

Source

connection.lisp.

Function: connection-quote-character (conn)
Package

mito.connection.

Source

connection.lisp.

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

mito.util.

Source

util.lisp.

Function: count-dao (class &rest fields-and-values)
Package

mito.dao.

Source

dao.lisp.

Function: current-migration-version ()
Package

mito.migration.versions.

Source

versions.lisp.

Function: depending-table-classes (class)
Package

mito.dao.table.

Source

table.lisp.

Function: disconnect-toplevel ()
Package

mito.connection.

Source

connection.lisp.

Function: driver-type (&optional conn)
Package

mito.connection.

Source

connection.lisp.

Function: ensure-class (class-or-class-name)
Package

mito.util.

Source

util.lisp.

Function: ensure-table-exists (class)
Package

mito.dao.

Source

dao.lisp.

Function: execute-with-retry (query binds)

Same as DBI:EXECUTE except will recreate a prepared statement when getting DBI:DBI-DATABASE-ERROR.

Package

mito.util.

Source

util.lisp.

Function: find-child-columns (table slot)
Package

mito.class.table.

Source

table.lisp.

Function: find-dao (class &rest fields-and-values)
Package

mito.dao.

Source

dao.lisp.

Function: find-parent-column (table slot)
Package

mito.class.table.

Source

table.lisp.

Function: find-slot-by-name (class slot-name &key test)
Package

mito.class.table.

Source

table.lisp.

Function: generate-advisory-lock-id (database-name)
Package

mito.migration.util.

Source

util.lisp.

Function: generate-migrations (directory &key force)
Package

mito.migration.versions.

Source

versions.lisp.

Function: get-column-real-type (conn name)
Package

mito.type.

Source

type.lisp.

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

mito.util.

Source

util.lisp.

Function: include-foreign-objects (foreign-class records)
Package

mito.dao.

Source

dao.lisp.

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

mito.db.

Source

db.lisp.

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

mito.db.postgres.

Source

postgres.lisp.

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

mito.db.mysql.

Source

mysql.lisp.

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

mito.db.sqlite3.

Source

sqlite3.lisp.

Function: lispify (object)
Package

mito.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

mito.util.

Source

util.lisp.

Function: migrate (directory &key dry-run)
Package

mito.migration.versions.

Source

versions.lisp.

Function: migration-expressions (class &optional driver-type)
Package

mito.migration.table.

Source

table.lisp.

Function: migration-status (directory)
Package

mito.migration.versions.

Source

versions.lisp.

Function: mito-sql-logger (sql params row-count took-usec prev-stack)
Package

mito.logger.

Source

logger.lisp.

Function: parse-dbtype (dbtype)
Package

mito.type.

Source

type.lisp.

Function: parse-statements (content)
Package

mito.migration.sql-parse.

Source

sql-parse.lisp.

Function: recreate-table (class)
Package

mito.dao.

Source

dao.lisp.

Function: release-advisory-lock (conn id)
Package

mito.db.

Source

db.lisp.

Function: release-advisory-lock (conn id)
Package

mito.db.postgres.

Source

postgres.lisp.

Function: release-advisory-lock (conn id)
Package

mito.db.mysql.

Source

mysql.lisp.

Function: retrieve-dao (class &rest fields-and-values)
Package

mito.dao.

Source

dao.lisp.

Function: select-by-sql (class sql &key binds)
Package

mito.dao.

Source

dao.lisp.

Function: symbol-name-literally (symbol)
Package

mito.util.

Source

util.lisp.

Function: table-column-slots (class)
Package

mito.class.table.

Source

table.lisp.

Function: table-direct-column-slots (class)
Package

mito.class.table.

Source

table.lisp.

Function: table-exists-p (conn table-name)
Package

mito.db.

Source

db.lisp.

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

mito.db.

Source

db.lisp.

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

mito.db.postgres.

Source

postgres.lisp.

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

mito.db.mysql.

Source

mysql.lisp.

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

mito.db.sqlite3.

Source

sqlite3.lisp.

Function: table-view-query (conn table-name)
Package

mito.db.

Source

db.lisp.

Function: table-view-query (conn table-name)
Package

mito.db.postgres.

Source

postgres.lisp.

Function: table-view-query (conn table-name)
Package

mito.db.mysql.

Source

mysql.lisp.

Function: unlispify (object)
Package

mito.util.

Source

util.lisp.

Function: update-migration-version (version)
Package

mito.migration.versions.

Source

versions.lisp.


6.1.4 Generic functions

Generic Function: convert-for-driver-type (driver-type col-type value)
Package

mito.dao.

Source

dao.lisp.

Methods
Method: convert-for-driver-type (driver-type col-type value)
Method: convert-for-driver-type (driver-type col-type (value string))
Method: convert-for-driver-type ((driver-type (eql :mysql)) (col-type (eql :boolean)) value)
Method: convert-for-driver-type ((driver-type (eql :mysql)) (col-type (eql :datetime)) (value timestamp))
Method: convert-for-driver-type (driver-type (col-type (eql :datetime)) (value timestamp))
Method: convert-for-driver-type (driver-type (col-type (eql :date)) (value timestamp))
Method: convert-for-driver-type (driver-type (col-type (eql :timestamp)) value)
Method: convert-for-driver-type (driver-type (col-type (eql :timestamptz)) value)
Method: convert-for-driver-type ((driver-type (eql :sqlite3)) (col-type (eql :boolean)) value)
Method: convert-for-driver-type ((driver-type (eql :postgres)) (col-type (eql :boolean)) value)
Generic Function: create-dao (class &rest initargs)
Package

mito.dao.

Source

dao.lisp.

Methods
Method: create-dao ((class-name symbol) &rest initargs)
Method: create-dao ((class dao-table-class) &rest initargs)
Generic Function: create-table-sxql (class driver-type &key if-not-exists)
Package

mito.class.

Source

class.lisp.

Methods
Method: create-table-sxql (class driver-type &key if-not-exists)
Generic Reader: dao-synced (object)
Package

mito.dao.mixin.

Methods
Reader Method: dao-synced ((dao-class dao-class))

automatically generated reader method

Source

mixin.lisp.

Target Slot

synced.

Generic Writer: (setf dao-synced) (object)
Package

mito.dao.mixin.

Methods
Writer Method: (setf dao-synced) ((dao-class dao-class))

automatically generated writer method

Source

mixin.lisp.

Target Slot

synced.

Generic Function: dao-table-column-deflate (column value)
Package

mito.dao.column.

Source

column.lisp.

Methods
Method: dao-table-column-deflate ((column dao-table-column-class) value)
Generic Function: dao-table-column-inflate (column value)
Package

mito.dao.column.

Source

column.lisp.

Methods
Method: dao-table-column-inflate ((column dao-table-column-class) value)
Generic Reader: dao-table-view-as-query (object)
Package

mito.dao.view.

Methods
Reader Method: dao-table-view-as-query ((dao-table-view dao-table-view))

automatically generated reader method

Source

view.lisp.

Target Slot

as.

Generic Function: database-column-slots (class)
Package

mito.class.table.

Source

table.lisp.

Methods
Method: database-column-slots ((class table-class))
Generic Function: deflate-for-col-type (col-type value)
Package

mito.dao.column.

Source

column.lisp.

Methods
Method: deflate-for-col-type (col-type value)
Method: deflate-for-col-type ((col-type cons) value)
Method: deflate-for-col-type ((col-type (eql :datetime)) value)
Method: deflate-for-col-type ((col-type (eql :date)) value)
Method: deflate-for-col-type ((col-type (eql :timestamp)) value)
Method: deflate-for-col-type ((col-type (eql :timestamptz)) value)
Generic Function: delete-by-values (class &rest fields-and-values)
Package

mito.dao.

Source

dao.lisp.

Methods
Method: delete-by-values ((class symbol) &rest fields-and-values)
Method: delete-by-values ((class dao-table-class) &rest fields-and-values)
Generic Function: delete-dao (obj)
Package

mito.dao.

Source

dao.lisp.

Methods
Method: delete-dao ((obj dao-class))
Generic Function: execute-sql (sql &optional binds)
Package

mito.db.

Source

db.lisp.

Methods
Method: execute-sql :before (sql &optional binds)
Method: execute-sql ((sql string) &optional binds)
Method: execute-sql ((sql sql-statement) &optional binds)
Generic Reader: ghost-slot-p (object)
Generic Writer: (setf ghost-slot-p) (object)
Package

mito.class.column.

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

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

Source

column.lisp.

Target Slot

ghost.

Generic Function: inflate-for-col-type (col-type value)
Package

mito.dao.column.

Source

column.lisp.

Methods
Method: inflate-for-col-type (col-type value)
Method: inflate-for-col-type ((col-type cons) value)
Method: inflate-for-col-type ((col-type (eql :datetime)) value)
Method: inflate-for-col-type ((col-type (eql :date)) value)
Method: inflate-for-col-type ((col-type (eql :timestamp)) value)
Method: inflate-for-col-type ((col-type (eql :timestamptz)) value)
Method: inflate-for-col-type ((col-type (eql :time)) value)
Method: inflate-for-col-type ((col-type (eql :boolean)) value)
Generic Function: insert-dao (obj)
Package

mito.dao.

Source

dao.lisp.

Methods
Method: insert-dao ((obj dao-class))
Method: insert-dao :before ((obj record-timestamps-mixin))
Generic Function: make-dao-instance (class &rest initargs)
Package

mito.dao.mixin.

Source

mixin.lisp.

Methods
Method: make-dao-instance ((class-name symbol) &rest initargs)
Method: make-dao-instance ((class table-class) &rest initargs)
Generic Function: migrate-table (class)
Package

mito.migration.table.

Source

table.lisp.

Methods
Method: migrate-table ((class symbol))
Method: migrate-table ((class dao-table-class))
Generic Reader: object-created-at (object)
Package

mito.dao.mixin.

Methods
Reader Method: object-created-at ((record-timestamps-mixin record-timestamps-mixin))

automatically generated reader method

Source

mixin.lisp.

Target Slot

created-at.

Generic Writer: (setf object-created-at) (object)
Package

mito.dao.mixin.

Methods
Writer Method: (setf object-created-at) ((record-timestamps-mixin record-timestamps-mixin))

automatically generated writer method

Source

mixin.lisp.

Target Slot

created-at.

Generic Function: object-id (object)
Package

mito.dao.mixin.

Source

mixin.lisp.

Methods
Method: object-id ((object serial-pk-mixin))
Method: object-id ((object uuid-pk-mixin))
Generic Function: (setf object-id) (object)
Package

mito.dao.mixin.

Source

mixin.lisp.

Methods
Method: (setf object-id) ((object serial-pk-mixin))
Method: (setf object-id) ((object uuid-pk-mixin))
Generic Reader: object-updated-at (object)
Package

mito.dao.mixin.

Methods
Reader Method: object-updated-at ((record-timestamps-mixin record-timestamps-mixin))

automatically generated reader method

Source

mixin.lisp.

Target Slot

updated-at.

Generic Writer: (setf object-updated-at) (object)
Package

mito.dao.mixin.

Methods
Writer Method: (setf object-updated-at) ((record-timestamps-mixin record-timestamps-mixin))

automatically generated writer method

Source

mixin.lisp.

Target Slot

updated-at.

Generic Function: object= (object1 object2)
Package

mito.dao.mixin.

Source

mixin.lisp.

Methods
Method: object= (object1 object2)
Generic Reader: primary-key-p (object)
Package

mito.class.column.

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

automatically generated reader method

Source

column.lisp.

Target Slot

primary-key.

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

mito.class.column.

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

automatically generated writer method

Source

column.lisp.

Target Slot

primary-key.

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

mito.db.

Source

db.lisp.

Methods
Method: retrieve-by-sql :before (sql &key binds)
Method: retrieve-by-sql ((sql string) &key binds)
Method: retrieve-by-sql ((sql sql-statement) &key binds)
Method: retrieve-by-sql ((sql composed-statement) &key binds)
Method: retrieve-by-sql ((sql conjunctive-op) &key binds)
Generic Function: save-dao (obj)
Package

mito.dao.

Source

dao.lisp.

Methods
Method: save-dao ((obj dao-class))
Generic Function: table-column-info (column driver-type)
Package

mito.class.column.

Source

column.lisp.

Methods
Method: table-column-info (column (driver-type (eql :sqlite3)))
Method: table-column-info (column (driver-type (eql :mysql)))
Method: table-column-info (column (driver-type (eql :postgres)))
Method: table-column-info :around (column driver-type)
Generic Function: table-column-info-for-create-table (column driver-type)

Similar to table-column-info except the return value is for sxql:make-create-table.

Package

mito.class.column.

Source

column.lisp.

Methods
Method: table-column-info-for-create-table (column driver-type)
Method: table-column-info-for-create-table :around (column driver-type)
Method: table-column-info-for-create-table (column (driver-type (eql :mysql)))
Method: table-column-info-for-create-table (column (driver-type (eql :sqlite3)))
Method: table-column-info-for-create-table (column (driver-type (eql :postgres)))
Generic Function: table-column-name (column)
Package

mito.class.column.

Source

column.lisp.

Methods
Method: table-column-name ((column table-column-class))
Generic Function: table-column-not-null-p (column)
Package

mito.class.column.

Source

column.lisp.

Methods
Method: table-column-not-null-p ((column table-column-class))
Generic Reader: table-column-references (object)
Package

mito.class.column.

Methods
Reader Method: table-column-references ((table-column-class table-column-class))

automatically generated reader method

Source

column.lisp.

Target Slot

references.

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

mito.class.column.

Source

column.lisp.

Methods
Method: table-column-references-column ((column table-column-class))
Source

class.lisp.

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

mito.class.column.

Source

column.lisp.

Methods
Method: table-column-type ((column table-column-class))
Generic Function: table-definition (class &key if-not-exists or-replace &allow-other-keys)
Package

mito.dao.view.

Source

view.lisp.

Methods
Method: table-definition ((class dao-table-class) &key if-not-exists &allow-other-keys)
Source

table.lisp.

Method: table-definition ((class symbol) &rest args &key if-not-exists or-replace)
Method: table-definition ((class dao-table-view) &key or-replace &allow-other-keys)
Generic Function: table-indices-info (class driver-type)
Package

mito.class.table.

Source

table.lisp.

Methods
Method: table-indices-info (class driver-type)
Generic Function: table-name (class)
Package

mito.class.table.

Source

table.lisp.

Methods
Method: table-name ((class table-class))
Generic Function: table-primary-key (class)
Package

mito.class.table.

Source

table.lisp.

Methods
Method: table-primary-key ((class table-class))
Generic Function: table-serial-key (class)
Package

mito.class.table.

Source

table.lisp.

Methods
Method: table-serial-key ((class table-class))
Generic Function: update-dao (obj)
Package

mito.dao.

Source

dao.lisp.

Methods
Method: update-dao ((obj dao-class))
Method: update-dao :before ((obj record-timestamps-mixin))

6.1.5 Standalone methods

Method: direct-slot-definition-class ((class table-class) &key &allow-other-keys)
Package

sb-mop.

Source

table.lisp.

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

sb-mop.

Source

view.lisp.

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

sb-mop.

Source

mixin.lisp.

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 :around ((class table-class) &rest initargs)
Source

table.lisp.

Method: initialize-instance :around ((class table-column-class) &rest rest-initargs &key name initargs ghost &allow-other-keys)
Source

column.lisp.

Method: initialize-instance :around ((object dao-table-column-class) &rest rest-initargs &key name readers writers inflate deflate &allow-other-keys)
Source

column.lisp.

Method: initialize-instance :around ((class dao-table-mixin) &rest initargs &key conc-name &allow-other-keys)
Source

mixin.lisp.

Method: initialize-instance :after ((class dao-table-class) &rest initargs)
Source

table.lisp.

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

table.lisp.

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

table.lisp.

Method: reinitialize-instance :around ((class dao-table-mixin) &rest initargs &key conc-name &allow-other-keys)
Source

mixin.lisp.

Method: reinitialize-instance :after ((class dao-table-class) &rest initargs)
Source

table.lisp.

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

table.lisp.

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

sb-mop.

Source

table.lisp.

Method: yield ((statement create-view))
Package

sxql.sql-type.

Source

view.lisp.

Method: yield ((statement drop-sequence))
Package

sxql.sql-type.

Source

sxql.lisp.

Method: yield ((statement create-sequence))
Package

sxql.sql-type.

Source

sxql.lisp.


6.1.6 Conditions

Condition: col-type-required
Package

mito.error.

Source

error.lisp.

Direct superclasses

invalid-definition.

Direct slots
Slot: slot
Initargs

:slot

Condition: connection-not-established
Package

mito.error.

Source

error.lisp.

Direct superclasses

mito-error.

Condition: invalid-definition
Package

mito.error.

Source

error.lisp.

Direct superclasses

mito-error.

Direct subclasses

col-type-required.

Condition: mito-error
Package

mito.error.

Source

error.lisp.

Direct superclasses

error.

Direct subclasses
Condition: no-primary-keys
Package

mito.error.

Source

error.lisp.

Direct superclasses

mito-error.

Direct slots
Slot: table
Initargs

:table


Previous: , Up: Public Interface   [Contents][Index]

6.1.7 Classes

Class: dao-class
Package

mito.dao.mixin.

Source

mixin.lisp.

Direct methods
Direct slots
Slot: synced
Type

boolean

Readers

dao-synced.

Writers

(setf dao-synced).

Class: dao-table-class
Package

mito.dao.table.

Source

table.lisp.

Direct superclasses

dao-table-mixin.

Direct methods
Direct slots
Slot: auto-pk
Initform

(quote (:serial))

Initargs

:auto-pk

Slot: record-timestamps
Initform

(quote (t))

Initargs

:record-timestamps

Class: dao-table-column-class
Package

mito.dao.column.

Source

column.lisp.

Direct superclasses

table-column-class.

Direct methods
Direct slots
Slot: inflate
Type

(or function null)

Initargs

:inflate

Slot: deflate
Type

(or function null)

Initargs

:deflate

Class: dao-table-mixin
Package

mito.dao.mixin.

Source

mixin.lisp.

Direct superclasses

table-class.

Direct subclasses

dao-table-class.

Direct methods
Class: dao-table-view
Package

mito.dao.view.

Source

view.lisp.

Direct superclasses

table-class.

Direct methods
Direct slots
Slot: as
Initform

(error ":as query is required for dao-table-view")

Initargs

:as

Readers

dao-table-view-as-query.

Writers

This slot is read-only.

Class: record-timestamps-mixin
Package

mito.dao.mixin.

Source

mixin.lisp.

Direct methods
Direct slots
Slot: created-at
Initargs

:created-at

Readers

object-created-at.

Writers

(setf object-created-at).

Slot: updated-at
Initargs

:updated-at

Readers

object-updated-at.

Writers

(setf object-updated-at).

Class: serial-pk-mixin
Package

mito.dao.mixin.

Source

mixin.lisp.

Direct methods
Direct slots
Slot: id
Initargs

:id

Readers

%object-id.

Writers

(setf %object-id).

Class: table-class
Package

mito.class.table.

Source

table.lisp.

Direct superclasses

standard-class.

Direct subclasses
Direct methods
Direct slots
Slot: primary-key
Initargs

:primary-key

Slot: unique-keys
Initargs

:unique-keys

Slot: keys
Initargs

:keys

Slot: table-name
Initargs

:table-name

Slot: parent-column-map
Class: table-column-class
Package

mito.class.column.

Source

column.lisp.

Direct superclasses

standard-direct-slot-definition.

Direct subclasses

dao-table-column-class.

Direct methods
Direct slots
Slot: col-type
Type

(or symbol cons null)

Initargs

:col-type

Readers

%table-column-type.

Writers

(setf %table-column-type).

Slot: references
Type

mito.class.column::references

Initargs

:references

Readers

table-column-references.

Writers

This slot is read-only.

Slot: primary-key
Type

boolean

Initargs

:primary-key

Readers

primary-key-p.

Writers

(setf primary-key-p).

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).

Class: uuid-pk-mixin
Package

mito.dao.mixin.

Source

mixin.lisp.

Direct methods
Direct slots
Slot: id
Initform

(mito.dao.mixin::generate-uuid)

Initargs

:id

Readers

%object-uuid.

Writers

(setf %object-uuid).


6.2 Internals


Next: , Previous: , Up: Internals   [Contents][Index]

6.2.1 Special variables

Special Variable: *advisory-lock-drivers*
Package

mito.migration.versions.

Source

versions.lisp.

Special Variable: *conc-name*
Package

mito.dao.column.

Source

column.lisp.

Special Variable: *db-date-format*
Package

mito.dao.column.

Source

column.lisp.

Special Variable: *db-date-format*
Package

mito.dao.

Source

dao.lisp.

Special Variable: *db-datetime-format*
Package

mito.dao.column.

Source

column.lisp.

Special Variable: *db-datetime-format*
Package

mito.dao.

Source

dao.lisp.

Special Variable: *db-datetime-format-with-out-timezone*
Package

mito.dao.column.

Source

column.lisp.

Special Variable: *db-datetime-format-without-timezone*
Package

mito.dao.

Source

dao.lisp.

Special Variable: *real-type-cache*
Package

mito.type.

Source

type.lisp.

Special Variable: +migrator-salt+
Package

mito.migration.util.

Source

util.lisp.


6.2.2 Macros

Macro: with-advisory-lock ((connection) &body body)
Package

mito.migration.versions.

Source

versions.lisp.


Next: , Previous: , Up: Internals   [Contents][Index]

6.2.3 Ordinary functions

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

mito.util.

Source

util.lisp.

Function: %migration-status (directory)
Package

mito.migration.versions.

Source

versions.lisp.

Function: add-referencing-slots (initargs)
Package

mito.class.table.

Source

table.lisp.

Function: add-relational-readers (class initargs)
Package

mito.dao.mixin.

Source

mixin.lisp.

Function: all-dao-classes ()
Package

mito.migration.versions.

Source

versions.lisp.

Function: append-auto-pk-class-to-direct-superclasses-if-needed (initargs direct-superclasses)
Package

mito.dao.table.

Source

table.lisp.

Function: append-record-timestamp-mixin-to-direct-superclasses-if-needed (initargs direct-superclasses)
Package

mito.dao.table.

Source

table.lisp.

Function: array-convert-nulls-to-nils (results-array)
Package

mito.db.

Source

db.lisp.

Function: ascii-string-to-octets (value)
Package

mito.migration.util.

Source

util.lisp.

Function: call-with-prepared-query (conn sql thunk &key use-prepare-cached)
Package

mito.util.

Source

util.lisp.

Function: child-columns (column class)
Package

mito.dao.

Source

dao.lisp.

Function: copy-create-sequence (instance)
Package

mito.migration.sxql.

Source

sxql.lisp.

Function: copy-create-view (instance)
Package

mito.dao.view.

Source

view.lisp.

Function: copy-drop-sequence (instance)
Package

mito.migration.sxql.

Source

sxql.lisp.

Function: copy-set-default (instance)
Package

mito.migration.sxql.

Source

sxql.lisp.

Function: crc32 (string)
Package

mito.migration.util.

Source

util.lisp.

Reader: create-sequence-name (instance)
Writer: (setf create-sequence-name) (instance)
Package

mito.migration.sxql.

Source

sxql.lisp.

Target Slot

name.

Function: create-sequence-p (object)
Package

mito.migration.sxql.

Source

sxql.lisp.

Reader: create-sequence-sequence-name (instance)
Writer: (setf create-sequence-sequence-name) (instance)
Package

mito.migration.sxql.

Source

sxql.lisp.

Target Slot

sequence-name.

Reader: create-view-as (instance)
Writer: (setf create-view-as) (instance)
Package

mito.dao.view.

Source

view.lisp.

Target Slot

as.

Reader: create-view-name (instance)
Writer: (setf create-view-name) (instance)
Package

mito.dao.view.

Source

view.lisp.

Target Slot

name.

Reader: create-view-or-replace (instance)
Writer: (setf create-view-or-replace) (instance)
Package

mito.dao.view.

Source

view.lisp.

Target Slot

or-replace.

Function: create-view-p (object)
Package

mito.dao.view.

Source

view.lisp.

Reader: create-view-view-name (instance)
Writer: (setf create-view-view-name) (instance)
Package

mito.dao.view.

Source

view.lisp.

Target Slot

view-name.

Reader: drop-sequence-if-exists (instance)
Writer: (setf drop-sequence-if-exists) (instance)
Package

mito.migration.sxql.

Source

sxql.lisp.

Target Slot

if-exists.

Reader: drop-sequence-name (instance)
Writer: (setf drop-sequence-name) (instance)
Package

mito.migration.sxql.

Source

sxql.lisp.

Target Slot

name.

Function: drop-sequence-p (object)
Package

mito.migration.sxql.

Source

sxql.lisp.

Reader: drop-sequence-sequence-name (instance)
Writer: (setf drop-sequence-sequence-name) (instance)
Package

mito.migration.sxql.

Source

sxql.lisp.

Target Slot

sequence-name.

Function: ensure-string (val)
Package

mito.db.mysql.

Source

mysql.lisp.

Function: escaped-symbol-p (symbol)
Package

mito.util.

Source

util.lisp.

Function: expand-op (object class)

Expand relational columns if the operator is :=, :!= , :in or :not-in.

Package

mito.dao.

Source

dao.lisp.

Function: expand-relational-keys (class slot-name)
Package

mito.class.table.

Source

table.lisp.

Function: foreign-value (obj slot)
Package

mito.dao.

Source

dao.lisp.

Function: generate-uuid ()
Package

mito.dao.mixin.

Source

mixin.lisp.

Function: generate-version ()
Package

mito.migration.versions.

Source

versions.lisp.

Function: get-prev-stack ()
Package

mito.logger.

Source

logger.lisp.

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

mito.db.postgres.

Source

postgres.lisp.

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

mito.dao.table.

Source

table.lisp.

Function: initargs-enables-auto-pk (initargs)
Package

mito.dao.table.

Source

table.lisp.

Function: initargs-enables-record-timestamps (initargs)
Package

mito.dao.table.

Source

table.lisp.

Function: initialize-migrations-table ()
Package

mito.migration.versions.

Source

versions.lisp.

Function: list-convert-nulls-to-nils (results-list)
Package

mito.db.

Source

db.lisp.

Function: make-create-sequence (sequence-name)
Package

mito.migration.sxql.

Source

sxql.lisp.

Function: make-create-view (view-name &key or-replace as)
Package

mito.dao.view.

Source

view.lisp.

Function: make-drop-sequence (sequence-name &key if-exists)
Package

mito.migration.sxql.

Source

sxql.lisp.

Function: make-relational-reader-method (func-name class slot-name rel-class)
Package

mito.dao.mixin.

Source

mixin.lisp.

Function: make-set-clause (obj)
Package

mito.dao.

Source

dao.lisp.

Function: make-set-default (expression)
Package

mito.migration.sxql.

Source

sxql.lisp.

Function: map-all-superclasses (fn class &key key)
Package

mito.class.table.

Source

table.lisp.

Function: migration-expressions-for-others (class driver-type)
Package

mito.migration.table.

Source

table.lisp.

Function: migration-expressions-for-sqlite3 (class)
Package

mito.migration.table.

Source

table.lisp.

Function: migration-file-version (file)
Package

mito.migration.versions.

Source

versions.lisp.

Function: migration-files (base-directory &key sort-by)
Package

mito.migration.versions.

Source

versions.lisp.

Function: obsolete-prepared-statement-p (conn e)
Package

mito.util.

Source

util.lisp.

Function: parse-col-type (col-type)
Package

mito.class.column.

Source

column.lisp.

Function: parse-type-vars (vars)
Package

mito.type.

Source

type.lisp.

Function: rel-column-name (name pk-name)
Package

mito.class.table.

Source

table.lisp.

Function: schema-migrations-table-definition (&optional driver-type)
Package

mito.migration.versions.

Source

versions.lisp.

Function: set-default-expression (instance)
Package

mito.migration.sxql.

Source

sxql.lisp.

Function: (setf set-default-expression) (instance)
Package

mito.migration.sxql.

Source

sxql.lisp.

Reader: set-default-name (instance)
Writer: (setf set-default-name) (instance)
Package

mito.migration.sxql.

Source

sxql.lisp.

Target Slot

name.

Function: set-default-p (object)
Package

mito.migration.sxql.

Source

sxql.lisp.

Function: slot-defaults (class table-columns new-fields)
Package

mito.migration.table.

Source

table.lisp.

Function: slot-foreign-value (object class slot-name)
Package

mito.dao.

Source

dao.lisp.

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

mito.db.sqlite3.

Source

sqlite3.lisp.

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

mito.db.sqlite3.

Source

sqlite3.lisp.

Function: trace-sql (sql params row-count took-usec)
Package

mito.logger.

Source

logger.lisp.

Function: where-and (fields-and-values class)
Package

mito.dao.

Source

dao.lisp.


Next: , Previous: , Up: Internals   [Contents][Index]

6.2.4 Generic functions

Generic Reader: %object-id (object)
Package

mito.dao.mixin.

Methods
Reader Method: %object-id ((serial-pk-mixin serial-pk-mixin))

automatically generated reader method

Source

mixin.lisp.

Target Slot

id.

Generic Writer: (setf %object-id) (object)
Package

mito.dao.mixin.

Methods
Writer Method: (setf %object-id) ((serial-pk-mixin serial-pk-mixin))

automatically generated writer method

Source

mixin.lisp.

Target Slot

id.

Generic Reader: %object-uuid (object)
Package

mito.dao.mixin.

Methods
Reader Method: %object-uuid ((uuid-pk-mixin uuid-pk-mixin))

automatically generated reader method

Source

mixin.lisp.

Target Slot

id.

Generic Writer: (setf %object-uuid) (object)
Package

mito.dao.mixin.

Methods
Writer Method: (setf %object-uuid) ((uuid-pk-mixin uuid-pk-mixin))

automatically generated writer method

Source

mixin.lisp.

Target Slot

id.

Generic Reader: %table-column-type (object)
Package

mito.class.column.

Methods
Reader Method: %table-column-type ((table-column-class table-column-class))

automatically generated reader method

Source

column.lisp.

Target Slot

col-type.

Generic Writer: (setf %table-column-type) (object)
Package

mito.class.column.

Methods
Writer Method: (setf %table-column-type) ((table-column-class table-column-class))

automatically generated writer method

Source

column.lisp.

Target Slot

col-type.


Next: , Previous: , Up: Internals   [Contents][Index]

6.2.5 Structures

Structure: create-sequence
Package

mito.migration.sxql.

Source

sxql.lisp.

Direct superclasses

sql-statement.

Direct methods

yield.

Direct slots
Slot: name
Package

sxql.sql-type.

Type

string

Initform

"create sequence"

Readers

create-sequence-name.

Writers

(setf create-sequence-name).

Slot: sequence-name
Readers

create-sequence-sequence-name.

Writers

(setf create-sequence-sequence-name).

Structure: create-view
Package

mito.dao.view.

Source

view.lisp.

Direct superclasses

sql-statement.

Direct methods

yield.

Direct slots
Slot: name
Package

sxql.sql-type.

Type

string

Initform

"create view"

Readers

create-view-name.

Writers

(setf create-view-name).

Slot: view-name
Readers

create-view-view-name.

Writers

(setf create-view-view-name).

Slot: or-replace
Readers

create-view-or-replace.

Writers

(setf create-view-or-replace).

Slot: as
Readers

create-view-as.

Writers

(setf create-view-as).

Structure: drop-sequence
Package

mito.migration.sxql.

Source

sxql.lisp.

Direct superclasses

sql-statement.

Direct methods

yield.

Direct slots
Slot: name
Package

sxql.sql-type.

Type

string

Initform

"drop sequence"

Readers

drop-sequence-name.

Writers

(setf drop-sequence-name).

Slot: sequence-name
Readers

drop-sequence-sequence-name.

Writers

(setf drop-sequence-sequence-name).

Slot: if-exists
Readers

drop-sequence-if-exists.

Writers

(setf drop-sequence-if-exists).

Structure: set-default
Package

mito.migration.sxql.

Source

sxql.lisp.

Direct superclasses

expression-clause.

Direct slots
Slot: name
Package

sxql.sql-type.

Type

string

Initform

"set default"

Readers

set-default-name.

Writers

(setf set-default-name).


Previous: , Up: Internals   [Contents][Index]

6.2.6 Types

Type: references ()
Package

mito.class.column.

Source

column.lisp.


Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts


Next: , Previous: , Up: Indexes   [Contents][Index]

A.2 Functions

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

%
%list-diff: Private ordinary functions
%migration-status: Private ordinary functions
%object-id: Private generic functions
%object-id: Private generic functions
%object-uuid: Private generic functions
%object-uuid: Private generic functions
%table-column-type: Private generic functions
%table-column-type: Private generic functions

(
(setf %object-id): Private generic functions
(setf %object-id): Private generic functions
(setf %object-uuid): Private generic functions
(setf %object-uuid): Private generic functions
(setf %table-column-type): Private generic functions
(setf %table-column-type): Private generic functions
(setf create-sequence-name): Private ordinary functions
(setf create-sequence-sequence-name): Private ordinary functions
(setf create-view-as): Private ordinary functions
(setf create-view-name): Private ordinary functions
(setf create-view-or-replace): Private ordinary functions
(setf create-view-view-name): Private ordinary functions
(setf dao-synced): Public generic functions
(setf dao-synced): Public generic functions
(setf drop-sequence-if-exists): Private ordinary functions
(setf drop-sequence-name): Private ordinary functions
(setf drop-sequence-sequence-name): Private ordinary functions
(setf ghost-slot-p): Public generic functions
(setf ghost-slot-p): Public generic functions
(setf object-created-at): Public generic functions
(setf object-created-at): Public generic functions
(setf object-id): Public generic functions
(setf object-id): Public generic functions
(setf object-id): Public generic functions
(setf object-updated-at): Public generic functions
(setf object-updated-at): Public generic functions
(setf primary-key-p): Public generic functions
(setf primary-key-p): Public generic functions
(setf set-default-expression): Private ordinary functions
(setf set-default-name): Private ordinary functions

A
acquire-advisory-lock: Public ordinary functions
acquire-advisory-lock: Public ordinary functions
acquire-advisory-lock: Public ordinary functions
add-referencing-slots: Private ordinary functions
add-relational-readers: Private ordinary functions
all-dao-classes: Private ordinary functions
all-migration-expressions: Public ordinary functions
append-auto-pk-class-to-direct-superclasses-if-needed: Private ordinary functions
append-record-timestamp-mixin-to-direct-superclasses-if-needed: Private ordinary functions
array-convert-nulls-to-nils: Private ordinary functions
ascii-string-to-octets: Private ordinary functions

C
call-with-prepared-query: Private ordinary functions
check-connected: Public ordinary functions
child-columns: Private ordinary functions
column-definitions: Public ordinary functions
column-definitions: Public ordinary functions
column-definitions: Public ordinary functions
column-definitions: Public ordinary functions
connect-toplevel: Public ordinary functions
connected-p: Public ordinary functions
connection-database-name: Public ordinary functions
connection-quote-character: Public ordinary functions
contains-class-or-subclasses: Public ordinary functions
convert-for-driver-type: Public generic functions
convert-for-driver-type: Public generic functions
convert-for-driver-type: Public generic functions
convert-for-driver-type: Public generic functions
convert-for-driver-type: Public generic functions
convert-for-driver-type: Public generic functions
convert-for-driver-type: Public generic functions
convert-for-driver-type: Public generic functions
convert-for-driver-type: Public generic functions
convert-for-driver-type: Public generic functions
convert-for-driver-type: Public generic functions
copy-create-sequence: Private ordinary functions
copy-create-view: Private ordinary functions
copy-drop-sequence: Private ordinary functions
copy-set-default: Private ordinary functions
count-dao: Public ordinary functions
crc32: Private ordinary functions
create-dao: Public generic functions
create-dao: Public generic functions
create-dao: Public generic functions
create-sequence-name: Private ordinary functions
create-sequence-p: Private ordinary functions
create-sequence-sequence-name: Private ordinary functions
create-table-sxql: Public generic functions
create-table-sxql: Public generic functions
create-view-as: Private ordinary functions
create-view-name: Private ordinary functions
create-view-or-replace: Private ordinary functions
create-view-p: Private ordinary functions
create-view-view-name: Private ordinary functions
current-migration-version: Public ordinary functions

D
dao-synced: Public generic functions
dao-synced: Public generic functions
dao-table-column-deflate: Public generic functions
dao-table-column-deflate: Public generic functions
dao-table-column-inflate: Public generic functions
dao-table-column-inflate: Public generic functions
dao-table-view-as-query: Public generic functions
dao-table-view-as-query: Public generic functions
database-column-slots: Public generic functions
database-column-slots: Public generic functions
deflate-for-col-type: Public generic functions
deflate-for-col-type: Public generic functions
deflate-for-col-type: Public generic functions
deflate-for-col-type: Public generic functions
deflate-for-col-type: Public generic functions
deflate-for-col-type: Public generic functions
deflate-for-col-type: Public generic functions
deftable: Public macros
delete-by-values: Public generic functions
delete-by-values: Public generic functions
delete-by-values: Public generic functions
delete-dao: Public generic functions
delete-dao: Public generic functions
depending-table-classes: Public ordinary functions
direct-slot-definition-class: Public standalone methods
direct-slot-definition-class: Public standalone methods
direct-slot-definition-class: Public standalone methods
direct-slot-definition-class: Public standalone methods
disconnect-toplevel: Public ordinary functions
driver-type: Public ordinary functions
drop-sequence-if-exists: Private ordinary functions
drop-sequence-name: Private ordinary functions
drop-sequence-p: Private ordinary functions
drop-sequence-sequence-name: Private ordinary functions

E
ensure-class: Public ordinary functions
ensure-class-using-class: Public standalone methods
ensure-string: Private ordinary functions
ensure-table-exists: Public ordinary functions
escaped-symbol-p: Private ordinary functions
execute-sql: Public generic functions
execute-sql: Public generic functions
execute-sql: Public generic functions
execute-sql: Public generic functions
execute-with-retry: Public ordinary functions
expand-op: Private ordinary functions
expand-relational-keys: Private ordinary functions

F
find-child-columns: Public ordinary functions
find-dao: Public ordinary functions
find-parent-column: Public ordinary functions
find-slot-by-name: Public ordinary functions
foreign-value: Private ordinary functions
Function, %list-diff: Private ordinary functions
Function, %migration-status: Private ordinary functions
Function, (setf create-sequence-name): Private ordinary functions
Function, (setf create-sequence-sequence-name): Private ordinary functions
Function, (setf create-view-as): Private ordinary functions
Function, (setf create-view-name): Private ordinary functions
Function, (setf create-view-or-replace): Private ordinary functions
Function, (setf create-view-view-name): Private ordinary functions
Function, (setf drop-sequence-if-exists): Private ordinary functions
Function, (setf drop-sequence-name): Private ordinary functions
Function, (setf drop-sequence-sequence-name): Private ordinary functions
Function, (setf set-default-expression): Private ordinary functions
Function, (setf set-default-name): Private ordinary functions
Function, acquire-advisory-lock: Public ordinary functions
Function, acquire-advisory-lock: Public ordinary functions
Function, acquire-advisory-lock: Public ordinary functions
Function, add-referencing-slots: Private ordinary functions
Function, add-relational-readers: Private ordinary functions
Function, all-dao-classes: Private ordinary functions
Function, all-migration-expressions: Public ordinary functions
Function, append-auto-pk-class-to-direct-superclasses-if-needed: Private ordinary functions
Function, append-record-timestamp-mixin-to-direct-superclasses-if-needed: Private ordinary functions
Function, array-convert-nulls-to-nils: Private ordinary functions
Function, ascii-string-to-octets: Private ordinary functions
Function, call-with-prepared-query: Private ordinary functions
Function, check-connected: Public ordinary functions
Function, child-columns: Private ordinary functions
Function, column-definitions: Public ordinary functions
Function, column-definitions: Public ordinary functions
Function, column-definitions: Public ordinary functions
Function, column-definitions: Public ordinary functions
Function, connect-toplevel: Public ordinary functions
Function, connected-p: Public ordinary functions
Function, connection-database-name: Public ordinary functions
Function, connection-quote-character: Public ordinary functions
Function, contains-class-or-subclasses: Public ordinary functions
Function, copy-create-sequence: Private ordinary functions
Function, copy-create-view: Private ordinary functions
Function, copy-drop-sequence: Private ordinary functions
Function, copy-set-default: Private ordinary functions
Function, count-dao: Public ordinary functions
Function, crc32: Private ordinary functions
Function, create-sequence-name: Private ordinary functions
Function, create-sequence-p: Private ordinary functions
Function, create-sequence-sequence-name: Private ordinary functions
Function, create-view-as: Private ordinary functions
Function, create-view-name: Private ordinary functions
Function, create-view-or-replace: Private ordinary functions
Function, create-view-p: Private ordinary functions
Function, create-view-view-name: Private ordinary functions
Function, current-migration-version: Public ordinary functions
Function, depending-table-classes: Public ordinary functions
Function, disconnect-toplevel: Public ordinary functions
Function, driver-type: Public ordinary functions
Function, drop-sequence-if-exists: Private ordinary functions
Function, drop-sequence-name: Private ordinary functions
Function, drop-sequence-p: Private ordinary functions
Function, drop-sequence-sequence-name: Private ordinary functions
Function, ensure-class: Public ordinary functions
Function, ensure-string: Private ordinary functions
Function, ensure-table-exists: Public ordinary functions
Function, escaped-symbol-p: Private ordinary functions
Function, execute-with-retry: Public ordinary functions
Function, expand-op: Private ordinary functions
Function, expand-relational-keys: Private ordinary functions
Function, find-child-columns: Public ordinary functions
Function, find-dao: Public ordinary functions
Function, find-parent-column: Public ordinary functions
Function, find-slot-by-name: Public ordinary functions
Function, foreign-value: Private ordinary functions
Function, generate-advisory-lock-id: Public ordinary functions
Function, generate-migrations: Public ordinary functions
Function, generate-uuid: Private ordinary functions
Function, generate-version: Private ordinary functions
Function, get-column-real-type: Public ordinary functions
Function, get-prev-stack: Private ordinary functions
Function, get-serial-keys: Private ordinary functions
Function, group-by-plist: Public ordinary functions
Function, include-foreign-objects: Public ordinary functions
Function, initargs-contains-primary-key: Private ordinary functions
Function, initargs-enables-auto-pk: Private ordinary functions
Function, initargs-enables-record-timestamps: Private ordinary functions
Function, initialize-migrations-table: Private 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-convert-nulls-to-nils: Private ordinary functions
Function, list-diff: Public ordinary functions
Function, make-create-sequence: Private ordinary functions
Function, make-create-view: Private ordinary functions
Function, make-drop-sequence: Private ordinary functions
Function, make-relational-reader-method: Private ordinary functions
Function, make-set-clause: Private ordinary functions
Function, make-set-default: Private ordinary functions
Function, map-all-superclasses: Private ordinary functions
Function, migrate: Public ordinary functions
Function, migration-expressions: Public ordinary functions
Function, migration-expressions-for-others: Private ordinary functions
Function, migration-expressions-for-sqlite3: Private ordinary functions
Function, migration-file-version: Private ordinary functions
Function, migration-files: Private ordinary functions
Function, migration-status: Public ordinary functions
Function, mito-sql-logger: Public ordinary functions
Function, obsolete-prepared-statement-p: Private ordinary functions
Function, parse-col-type: Private ordinary functions
Function, parse-dbtype: Public ordinary functions
Function, parse-statements: Public ordinary functions
Function, parse-type-vars: Private ordinary functions
Function, recreate-table: Public ordinary functions
Function, rel-column-name: Private ordinary functions
Function, release-advisory-lock: Public ordinary functions
Function, release-advisory-lock: Public ordinary functions
Function, release-advisory-lock: Public ordinary functions
Function, retrieve-dao: Public ordinary functions
Function, schema-migrations-table-definition: Private ordinary functions
Function, select-by-sql: Public ordinary functions
Function, set-default-expression: Private ordinary functions
Function, set-default-name: Private ordinary functions
Function, set-default-p: Private ordinary functions
Function, slot-defaults: Private ordinary functions
Function, slot-foreign-value: Private ordinary functions
Function, symbol-name-literally: Public ordinary functions
Function, table-column-slots: Public ordinary functions
Function, table-direct-column-slots: Public ordinary functions
Function, table-exists-p: Public ordinary functions
Function, table-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, table-view-query: Public ordinary functions
Function, table-view-query: Public ordinary functions
Function, table-view-query: Public ordinary functions
Function, trace-sql: Private ordinary functions
Function, unlispify: Public ordinary functions
Function, update-migration-version: Public ordinary functions
Function, where-and: Private ordinary functions

G
generate-advisory-lock-id: Public ordinary functions
generate-migrations: Public ordinary functions
generate-uuid: Private ordinary functions
generate-version: Private ordinary functions
Generic Function, %object-id: Private generic functions
Generic Function, %object-uuid: Private generic functions
Generic Function, %table-column-type: Private generic functions
Generic Function, (setf %object-id): Private generic functions
Generic Function, (setf %object-uuid): Private generic functions
Generic Function, (setf %table-column-type): Private generic functions
Generic Function, (setf dao-synced): Public generic functions
Generic Function, (setf ghost-slot-p): Public generic functions
Generic Function, (setf object-created-at): Public generic functions
Generic Function, (setf object-id): Public generic functions
Generic Function, (setf object-updated-at): Public generic functions
Generic Function, (setf primary-key-p): Public generic functions
Generic Function, convert-for-driver-type: Public generic functions
Generic Function, create-dao: Public generic functions
Generic Function, create-table-sxql: Public generic functions
Generic Function, dao-synced: Public generic functions
Generic Function, dao-table-column-deflate: Public generic functions
Generic Function, dao-table-column-inflate: Public generic functions
Generic Function, dao-table-view-as-query: Public generic functions
Generic Function, database-column-slots: Public generic functions
Generic Function, deflate-for-col-type: Public generic functions
Generic Function, delete-by-values: Public generic functions
Generic Function, delete-dao: Public generic functions
Generic Function, execute-sql: Public generic functions
Generic Function, ghost-slot-p: Public generic functions
Generic Function, inflate-for-col-type: Public generic functions
Generic Function, insert-dao: Public generic functions
Generic Function, make-dao-instance: Public generic functions
Generic Function, migrate-table: Public generic functions
Generic Function, object-created-at: Public generic functions
Generic Function, object-id: Public generic functions
Generic Function, object-updated-at: Public generic functions
Generic Function, object=: Public generic functions
Generic Function, primary-key-p: Public generic functions
Generic Function, retrieve-by-sql: Public generic functions
Generic Function, save-dao: Public generic functions
Generic Function, table-column-info: Public generic functions
Generic Function, table-column-info-for-create-table: Public generic functions
Generic Function, table-column-name: Public generic functions
Generic Function, table-column-not-null-p: Public generic functions
Generic Function, table-column-references: Public generic functions
Generic Function, table-column-references-column: Public generic functions
Generic Function, table-column-type: Public generic functions
Generic Function, table-definition: Public generic functions
Generic Function, table-indices-info: 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, update-dao: Public generic functions
get-column-real-type: Public ordinary functions
get-prev-stack: Private ordinary functions
get-serial-keys: Private ordinary functions
ghost-slot-p: Public generic functions
ghost-slot-p: Public generic functions
group-by-plist: Public ordinary functions

I
include-foreign-objects: Public ordinary functions
inflate-for-col-type: Public generic functions
inflate-for-col-type: Public generic functions
inflate-for-col-type: Public generic functions
inflate-for-col-type: Public generic functions
inflate-for-col-type: Public generic functions
inflate-for-col-type: Public generic functions
inflate-for-col-type: Public generic functions
inflate-for-col-type: Public generic functions
inflate-for-col-type: Public generic functions
initargs-contains-primary-key: Private ordinary functions
initargs-enables-auto-pk: Private ordinary functions
initargs-enables-record-timestamps: Private ordinary functions
initialize-instance: Public standalone methods
initialize-instance: Public standalone methods
initialize-instance: Public standalone methods
initialize-instance: Public standalone methods
initialize-instance: Public standalone methods
initialize-instance: Public standalone methods
initialize-migrations-table: Private ordinary functions
insert-dao: Public generic functions
insert-dao: Public generic functions
insert-dao: Public generic 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-convert-nulls-to-nils: Private ordinary functions
list-diff: Public ordinary functions

M
Macro, deftable: Public macros
Macro, select-dao: Public macros
Macro, with-advisory-lock: Private macros
Macro, with-prepared-query: Public macros
Macro, with-quote-char: Public macros
Macro, with-sql-logging: Public macros
Macro, with-trace-sql: Public macros
make-create-sequence: Private ordinary functions
make-create-view: Private ordinary functions
make-dao-instance: Public generic functions
make-dao-instance: Public generic functions
make-dao-instance: Public generic functions
make-drop-sequence: Private ordinary functions
make-relational-reader-method: Private ordinary functions
make-set-clause: Private ordinary functions
make-set-default: Private ordinary functions
map-all-superclasses: Private ordinary functions
Method, %object-id: Private generic functions
Method, %object-uuid: Private generic functions
Method, %table-column-type: Private generic functions
Method, (setf %object-id): Private generic functions
Method, (setf %object-uuid): Private generic functions
Method, (setf %table-column-type): Private generic functions
Method, (setf dao-synced): Public generic functions
Method, (setf ghost-slot-p): Public generic functions
Method, (setf object-created-at): Public generic functions
Method, (setf object-id): Public generic functions
Method, (setf object-id): Public generic functions
Method, (setf object-updated-at): Public generic functions
Method, (setf primary-key-p): Public generic functions
Method, convert-for-driver-type: Public generic functions
Method, convert-for-driver-type: Public generic functions
Method, convert-for-driver-type: Public generic functions
Method, convert-for-driver-type: Public generic functions
Method, convert-for-driver-type: Public generic functions
Method, convert-for-driver-type: Public generic functions
Method, convert-for-driver-type: Public generic functions
Method, convert-for-driver-type: Public generic functions
Method, convert-for-driver-type: Public generic functions
Method, convert-for-driver-type: Public generic functions
Method, create-dao: Public generic functions
Method, create-dao: Public generic functions
Method, create-table-sxql: Public generic functions
Method, dao-synced: Public generic functions
Method, dao-table-column-deflate: Public generic functions
Method, dao-table-column-inflate: Public generic functions
Method, dao-table-view-as-query: Public generic functions
Method, database-column-slots: Public generic functions
Method, deflate-for-col-type: Public generic functions
Method, deflate-for-col-type: Public generic functions
Method, deflate-for-col-type: Public generic functions
Method, deflate-for-col-type: Public generic functions
Method, deflate-for-col-type: Public generic functions
Method, deflate-for-col-type: Public generic functions
Method, delete-by-values: Public generic functions
Method, delete-by-values: Public generic functions
Method, delete-dao: Public generic functions
Method, direct-slot-definition-class: Public standalone methods
Method, direct-slot-definition-class: Public standalone methods
Method, direct-slot-definition-class: Public standalone methods
Method, direct-slot-definition-class: Public standalone methods
Method, ensure-class-using-class: Public standalone methods
Method, execute-sql: Public generic functions
Method, execute-sql: Public generic functions
Method, execute-sql: Public generic functions
Method, ghost-slot-p: Public generic functions
Method, inflate-for-col-type: Public generic functions
Method, inflate-for-col-type: Public generic functions
Method, inflate-for-col-type: Public generic functions
Method, inflate-for-col-type: Public generic functions
Method, inflate-for-col-type: Public generic functions
Method, inflate-for-col-type: Public generic functions
Method, inflate-for-col-type: Public generic functions
Method, inflate-for-col-type: 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, initialize-instance: Public standalone methods
Method, initialize-instance: Public standalone methods
Method, insert-dao: Public generic functions
Method, insert-dao: Public generic functions
Method, make-dao-instance: Public generic functions
Method, make-dao-instance: Public generic functions
Method, migrate-table: Public generic functions
Method, migrate-table: Public generic functions
Method, object-created-at: Public generic functions
Method, object-id: Public generic functions
Method, object-id: Public generic functions
Method, object-updated-at: Public generic functions
Method, object=: Public generic functions
Method, primary-key-p: Public generic functions
Method, reinitialize-instance: Public standalone methods
Method, reinitialize-instance: Public standalone methods
Method, reinitialize-instance: Public standalone methods
Method, reinitialize-instance: Public standalone methods
Method, retrieve-by-sql: Public generic functions
Method, retrieve-by-sql: Public generic functions
Method, retrieve-by-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, table-column-info: Public generic functions
Method, table-column-info: Public generic functions
Method, table-column-info: Public generic functions
Method, table-column-info: Public generic functions
Method, table-column-info-for-create-table: Public generic functions
Method, table-column-info-for-create-table: Public generic functions
Method, table-column-info-for-create-table: Public generic functions
Method, table-column-info-for-create-table: Public generic functions
Method, table-column-info-for-create-table: Public generic functions
Method, table-column-name: Public generic functions
Method, table-column-not-null-p: Public generic functions
Method, table-column-references: Public generic functions
Method, table-column-references-column: Public generic functions
Method, table-column-type: Public generic functions
Method, table-definition: Public generic functions
Method, table-definition: Public generic functions
Method, table-definition: Public generic functions
Method, table-indices-info: Public generic functions
Method, table-name: Public generic functions
Method, table-primary-key: Public generic functions
Method, table-serial-key: Public generic functions
Method, update-dao: Public generic functions
Method, update-dao: Public generic functions
Method, validate-superclass: Public standalone methods
Method, yield: Public standalone methods
Method, yield: Public standalone methods
Method, yield: Public standalone methods
migrate: Public ordinary functions
migrate-table: Public generic functions
migrate-table: Public generic functions
migrate-table: Public generic functions
migration-expressions: Public ordinary functions
migration-expressions-for-others: Private ordinary functions
migration-expressions-for-sqlite3: Private ordinary functions
migration-file-version: Private ordinary functions
migration-files: Private ordinary functions
migration-status: Public ordinary functions
mito-sql-logger: Public ordinary functions

O
object-created-at: Public generic functions
object-created-at: Public generic functions
object-id: Public generic functions
object-id: Public generic functions
object-id: Public generic functions
object-updated-at: Public generic functions
object-updated-at: Public generic functions
object=: Public generic functions
object=: Public generic functions
obsolete-prepared-statement-p: Private ordinary functions

P
parse-col-type: Private ordinary functions
parse-dbtype: Public ordinary functions
parse-statements: Public ordinary functions
parse-type-vars: Private ordinary functions
primary-key-p: Public generic functions
primary-key-p: Public generic functions

R
recreate-table: Public ordinary functions
reinitialize-instance: Public standalone methods
reinitialize-instance: Public standalone methods
reinitialize-instance: Public standalone methods
reinitialize-instance: Public standalone methods
rel-column-name: Private ordinary functions
release-advisory-lock: Public ordinary functions
release-advisory-lock: Public ordinary functions
release-advisory-lock: Public ordinary functions
retrieve-by-sql: Public generic functions
retrieve-by-sql: Public generic functions
retrieve-by-sql: Public generic functions
retrieve-by-sql: Public generic functions
retrieve-by-sql: Public generic functions
retrieve-by-sql: Public generic functions
retrieve-dao: Public ordinary functions

S
save-dao: Public generic functions
save-dao: Public generic functions
schema-migrations-table-definition: Private ordinary functions
select-by-sql: Public ordinary functions
select-dao: Public macros
set-default-expression: Private ordinary functions
set-default-name: Private ordinary functions
set-default-p: Private ordinary functions
slot-defaults: Private ordinary functions
slot-foreign-value: Private ordinary functions
symbol-name-literally: Public ordinary functions

T
table-column-info: Public generic functions
table-column-info: Public generic functions
table-column-info: Public generic functions
table-column-info: Public generic functions
table-column-info: Public generic functions
table-column-info-for-create-table: Public generic functions
table-column-info-for-create-table: Public generic functions
table-column-info-for-create-table: Public generic functions
table-column-info-for-create-table: Public generic functions
table-column-info-for-create-table: Public generic functions
table-column-info-for-create-table: Public generic functions
table-column-name: Public generic functions
table-column-name: Public generic functions
table-column-not-null-p: Public generic functions
table-column-not-null-p: Public generic functions
table-column-references: Public generic functions
table-column-references: Public generic functions
table-column-references-column: Public generic functions
table-column-references-column: Public generic functions
table-column-slots: Public ordinary functions
table-column-type: Public generic functions
table-column-type: Public generic functions
table-definition: Public generic functions
table-definition: Public generic functions
table-definition: Public generic functions
table-definition: Public generic functions
table-direct-column-slots: Public ordinary functions
table-exists-p: Public ordinary functions
table-indices: Public ordinary functions
table-indices: Public ordinary functions
table-indices: Public ordinary functions
table-indices: Public ordinary functions
table-indices-info: Public generic functions
table-indices-info: Public generic functions
table-info: Private ordinary 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
table-view-query: Public ordinary functions
table-view-query: Public ordinary functions
table-view-query: Public ordinary functions
trace-sql: Private ordinary functions

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

V
validate-superclass: Public standalone methods

W
where-and: Private ordinary functions
with-advisory-lock: Private macros
with-prepared-query: Public macros
with-quote-char: Public macros
with-sql-logging: Public macros
with-trace-sql: Public macros

Y
yield: Public standalone methods
yield: Public standalone methods
yield: Public standalone methods

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

Next: , Previous: , Up: Indexes   [Contents][Index]

A.3 Variables

Jump to:   *   +  
A   C   D   G   I   K   N   O   P   R   S   T   U   V  
Index Entry  Section

*
*advisory-lock-drivers*: Private special variables
*auto-migration-mode*: Public special variables
*conc-name*: Private special variables
*connection*: Public special variables
*db-date-format*: Private special variables
*db-date-format*: Private special variables
*db-datetime-format*: Private special variables
*db-datetime-format*: Private special variables
*db-datetime-format-with-out-timezone*: Private special variables
*db-datetime-format-without-timezone*: Private special variables
*lack-middleware-mito*: Public special variables
*migration-keep-temp-tables*: Public special variables
*mito-logger-stream*: Public special variables
*mito-migration-logger-stream*: Public special variables
*real-type-cache*: Private special variables
*trace-sql-hooks*: Public special variables
*use-prepare-cached*: Public special variables

+
+migrator-salt+: Private special variables

A
as: Public classes
as: Private structures
auto-pk: Public classes

C
col-type: Public classes
created-at: Public classes

D
deflate: Public classes

G
ghost: Public classes

I
id: Public classes
id: Public classes
if-exists: Private structures
inflate: Public classes

K
keys: Public classes

N
name: Private structures
name: Private structures
name: Private structures
name: Private structures

O
or-replace: Private structures

P
parent-column-map: Public classes
primary-key: Public classes
primary-key: Public classes

R
record-timestamps: Public classes
references: Public classes

S
sequence-name: Private structures
sequence-name: Private structures
slot: Public conditions
Slot, as: Public classes
Slot, as: Private structures
Slot, auto-pk: Public classes
Slot, col-type: Public classes
Slot, created-at: Public classes
Slot, deflate: Public classes
Slot, ghost: Public classes
Slot, id: Public classes
Slot, id: Public classes
Slot, if-exists: Private structures
Slot, inflate: Public classes
Slot, keys: Public classes
Slot, name: Private structures
Slot, name: Private structures
Slot, name: Private structures
Slot, name: Private structures
Slot, or-replace: Private structures
Slot, parent-column-map: Public classes
Slot, primary-key: Public classes
Slot, primary-key: Public classes
Slot, record-timestamps: Public classes
Slot, references: Public classes
Slot, sequence-name: Private structures
Slot, sequence-name: Private structures
Slot, slot: Public conditions
Slot, synced: Public classes
Slot, table: Public conditions
Slot, table-name: Public classes
Slot, unique-keys: Public classes
Slot, updated-at: Public classes
Slot, view-name: Private structures
Special Variable, *advisory-lock-drivers*: Private special variables
Special Variable, *auto-migration-mode*: Public special variables
Special Variable, *conc-name*: Private special variables
Special Variable, *connection*: Public special variables
Special Variable, *db-date-format*: Private special variables
Special Variable, *db-date-format*: Private special variables
Special Variable, *db-datetime-format*: Private special variables
Special Variable, *db-datetime-format*: Private special variables
Special Variable, *db-datetime-format-with-out-timezone*: Private special variables
Special Variable, *db-datetime-format-without-timezone*: Private special variables
Special Variable, *lack-middleware-mito*: Public special variables
Special Variable, *migration-keep-temp-tables*: Public special variables
Special Variable, *mito-logger-stream*: Public special variables
Special Variable, *mito-migration-logger-stream*: Public special variables
Special Variable, *real-type-cache*: Private special variables
Special Variable, *trace-sql-hooks*: Public special variables
Special Variable, *use-prepare-cached*: Public special variables
Special Variable, +migrator-salt+: Private special variables
synced: Public classes

T
table: Public conditions
table-name: Public classes

U
unique-keys: Public classes
updated-at: Public classes

V
view-name: Private structures

Jump to:   *   +  
A   C   D   G   I   K   N   O   P   R   S   T   U   V  

Previous: , Up: Indexes   [Contents][Index]

A.4 Data types

Jump to:   C   D   E   F   I   L   M   N   P   R   S   T   U   V  
Index Entry  Section

C
Class, dao-class: Public classes
Class, dao-table-class: Public classes
Class, dao-table-column-class: Public classes
Class, dao-table-mixin: Public classes
Class, dao-table-view: Public classes
Class, record-timestamps-mixin: Public classes
Class, serial-pk-mixin: Public classes
Class, table-class: Public classes
Class, table-column-class: Public classes
Class, uuid-pk-mixin: Public classes
class-components: The mito-core/core-components/class-components module
class.lisp: The mito-core/core-components/class․lisp file
col-type-required: Public conditions
column.lisp: The mito-core/core-components/dao-components/column․lisp file
column.lisp: The mito-core/core-components/class-components/column․lisp file
Condition, col-type-required: Public conditions
Condition, connection-not-established: Public conditions
Condition, invalid-definition: Public conditions
Condition, mito-error: Public conditions
Condition, no-primary-keys: Public conditions
connection-not-established: Public conditions
connection.lisp: The mito-core/core-components/connection․lisp file
core-components: The mito-core/core-components module
create-sequence: Private structures
create-view: Private structures

D
dao-class: Public classes
dao-components: The mito-core/core-components/dao-components module
dao-table-class: Public classes
dao-table-column-class: Public classes
dao-table-mixin: Public classes
dao-table-view: Public classes
dao.lisp: The mito-core/core-components/dao․lisp file
db-drivers: The mito-core/core-components/db-drivers module
db.lisp: The mito-core/core-components/db․lisp file
drop-sequence: Private structures

E
error.lisp: The mito-core/core-components/error․lisp file

F
File, class.lisp: The mito-core/core-components/class․lisp file
File, column.lisp: The mito-core/core-components/dao-components/column․lisp file
File, column.lisp: The mito-core/core-components/class-components/column․lisp file
File, connection.lisp: The mito-core/core-components/connection․lisp file
File, dao.lisp: The mito-core/core-components/dao․lisp file
File, db.lisp: The mito-core/core-components/db․lisp file
File, error.lisp: The mito-core/core-components/error․lisp file
File, lack-middleware-mito.asd: The lack-middleware-mito/lack-middleware-mito․asd file
File, logger.lisp: The mito-core/core-components/logger․lisp file
File, middleware.lisp: The lack-middleware-mito/src/middleware․lisp file
File, mito-core.asd: The mito-core/mito-core․asd file
File, mito-migration.asd: The mito-migration/mito-migration․asd file
File, mito.asd: The mito/mito․asd file
File, mixin.lisp: The mito-core/core-components/dao-components/mixin․lisp file
File, mysql.lisp: The mito-core/core-components/db-drivers/mysql․lisp file
File, postgres.lisp: The mito-core/core-components/db-drivers/postgres․lisp file
File, sql-parse.lisp: The mito-migration/migration-components/sql-parse․lisp file
File, sqlite3.lisp: The mito-core/core-components/db-drivers/sqlite3․lisp file
File, src/core.lisp: The mito-core/src/core․lisp file
File, src/migration.lisp: The mito-migration/src/migration․lisp file
File, src/mito.lisp: The mito/src/mito․lisp file
File, sxql.lisp: The mito-migration/migration-components/sxql․lisp file
File, table.lisp: The mito-core/core-components/dao-components/table․lisp file
File, table.lisp: The mito-core/core-components/class-components/table․lisp file
File, table.lisp: The mito-migration/migration-components/table․lisp file
File, type.lisp: The mito-core/core-components/type․lisp file
File, util.lisp: The mito-core/core-components/util․lisp file
File, util.lisp: The mito-migration/migration-components/util․lisp file
File, versions.lisp: The mito-migration/migration-components/versions․lisp file
File, view.lisp: The mito-core/core-components/dao-components/view․lisp file

I
invalid-definition: Public conditions

L
lack-middleware-mito: The lack-middleware-mito system
lack-middleware-mito.asd: The lack-middleware-mito/lack-middleware-mito․asd file
logger.lisp: The mito-core/core-components/logger․lisp file

M
middleware.lisp: The lack-middleware-mito/src/middleware․lisp file
migration-components: The mito-migration/migration-components module
mito: The mito system
mito: The mito package
mito-asd: The mito-asd package
mito-core: The mito-core system
mito-core.asd: The mito-core/mito-core․asd file
mito-error: Public conditions
mito-migration: The mito-migration system
mito-migration-asd: The mito-migration-asd package
mito-migration.asd: The mito-migration/mito-migration․asd file
mito.asd: The mito/mito․asd file
mito.class: The mito․class package
mito.class.column: The mito․class․column package
mito.class.table: The mito․class․table package
mito.connection: The mito․connection package
mito.core: The mito․core package
mito.dao: The mito․dao package
mito.dao.column: The mito․dao․column package
mito.dao.mixin: The mito․dao․mixin package
mito.dao.table: The mito․dao․table package
mito.dao.view: The mito․dao․view package
mito.db: The mito․db package
mito.db.mysql: The mito․db․mysql package
mito.db.postgres: The mito․db․postgres package
mito.db.sqlite3: The mito․db․sqlite3 package
mito.error: The mito․error package
mito.logger: The mito․logger package
mito.middleware: The mito․middleware package
mito.migration: The mito․migration package
mito.migration.sql-parse: The mito․migration․sql-parse package
mito.migration.sxql: The mito․migration․sxql package
mito.migration.table: The mito․migration․table package
mito.migration.util: The mito․migration․util package
mito.migration.versions: The mito․migration․versions package
mito.type: The mito․type package
mito.util: The mito․util package
mixin.lisp: The mito-core/core-components/dao-components/mixin․lisp file
Module, class-components: The mito-core/core-components/class-components module
Module, core-components: The mito-core/core-components module
Module, dao-components: The mito-core/core-components/dao-components module
Module, db-drivers: The mito-core/core-components/db-drivers module
Module, migration-components: The mito-migration/migration-components module
Module, src: The lack-middleware-mito/src module
mysql.lisp: The mito-core/core-components/db-drivers/mysql․lisp file

N
no-primary-keys: Public conditions

P
Package, mito: The mito package
Package, mito-asd: The mito-asd package
Package, mito-migration-asd: The mito-migration-asd package
Package, mito.class: The mito․class package
Package, mito.class.column: The mito․class․column package
Package, mito.class.table: The mito․class․table package
Package, mito.connection: The mito․connection package
Package, mito.core: The mito․core package
Package, mito.dao: The mito․dao package
Package, mito.dao.column: The mito․dao․column package
Package, mito.dao.mixin: The mito․dao․mixin package
Package, mito.dao.table: The mito․dao․table package
Package, mito.dao.view: The mito․dao․view package
Package, mito.db: The mito․db package
Package, mito.db.mysql: The mito․db․mysql package
Package, mito.db.postgres: The mito․db․postgres package
Package, mito.db.sqlite3: The mito․db․sqlite3 package
Package, mito.error: The mito․error package
Package, mito.logger: The mito․logger package
Package, mito.middleware: The mito․middleware package
Package, mito.migration: The mito․migration package
Package, mito.migration.sql-parse: The mito․migration․sql-parse package
Package, mito.migration.sxql: The mito․migration․sxql package
Package, mito.migration.table: The mito․migration․table package
Package, mito.migration.util: The mito․migration․util package
Package, mito.migration.versions: The mito․migration․versions package
Package, mito.type: The mito․type package
Package, mito.util: The mito․util package
postgres.lisp: The mito-core/core-components/db-drivers/postgres․lisp file

R
record-timestamps-mixin: Public classes
references: Private types

S
serial-pk-mixin: Public classes
set-default: Private structures
sql-parse.lisp: The mito-migration/migration-components/sql-parse․lisp file
sqlite3.lisp: The mito-core/core-components/db-drivers/sqlite3․lisp file
src: The lack-middleware-mito/src module
src/core.lisp: The mito-core/src/core․lisp file
src/migration.lisp: The mito-migration/src/migration․lisp file
src/mito.lisp: The mito/src/mito․lisp file
Structure, create-sequence: Private structures
Structure, create-view: Private structures
Structure, drop-sequence: Private structures
Structure, set-default: Private structures
sxql.lisp: The mito-migration/migration-components/sxql․lisp file
System, lack-middleware-mito: The lack-middleware-mito system
System, mito: The mito system
System, mito-core: The mito-core system
System, mito-migration: The mito-migration system

T
table-class: Public classes
table-column-class: Public classes
table.lisp: The mito-core/core-components/dao-components/table․lisp file
table.lisp: The mito-core/core-components/class-components/table․lisp file
table.lisp: The mito-migration/migration-components/table․lisp file
Type, references: Private types
type.lisp: The mito-core/core-components/type․lisp file

U
util.lisp: The mito-core/core-components/util․lisp file
util.lisp: The mito-migration/migration-components/util․lisp file
uuid-pk-mixin: Public classes

V
versions.lisp: The mito-migration/migration-components/versions․lisp file
view.lisp: The mito-core/core-components/dao-components/view․lisp file

Jump to:   C   D   E   F   I   L   M   N   P   R   S   T   U   V