The mito Reference Manual

Table of Contents

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

The mito Reference Manual

This is the mito Reference Manual, version 0.1, generated automatically by Declt version 3.0 "Montgomery Scott" on Sun May 15 05:36:20 2022 GMT+0.


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

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.


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

2 Systems

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


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

2.1 mito

Author

Eitaro Fukamachi

License

LLGPL

Description

Abstraction layer for DB schema

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 (file)

Component

src/mito.lisp (file)


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

2.2 mito-migration

Author

Eitaro Fukamachi

License

LLGPL

Version

0.1

Dependencies
Source

mito-migration.asd (file)

Components

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

2.3 lack-middleware-mito

Author

Eitaro Fukamachi

License

LLGPL

Version

0.1

Dependencies
Source

lack-middleware-mito.asd (file)

Component

src (module)


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

2.4 mito-core

Author

Eitaro Fukamachi

License

LLGPL

Version

0.1

Dependencies
Source

mito-core.asd (file)

Components

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

3 Modules

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


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

3.1 mito-migration/migration-components

Parent

mito-migration (system)

Location

src/migration/

Components

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

3.2 lack-middleware-mito/src

Parent

lack-middleware-mito (system)

Location

src/

Component

middleware.lisp (file)


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

3.3 mito-core/core-components

Parent

mito-core (system)

Location

src/core/

Components

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

3.4 mito-core/core-components/dao-components

Dependencies
Parent

core-components (module)

Location

src/core/dao/

Components

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

3.5 mito-core/core-components/class-components

Dependencies
Parent

core-components (module)

Location

src/core/class/

Components

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

3.6 mito-core/core-components/db-drivers

Dependencies
Parent

core-components (module)

Location

src/core/db/

Components

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

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 files   [Contents][Index]

4.1.1 mito.asd

Location

mito.asd

Systems

mito (system)

Packages

mito-asd


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

4.1.2 mito-migration.asd

Location

mito-migration.asd

Systems

mito-migration (system)

Packages

mito-migration-asd


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

4.1.3 lack-middleware-mito.asd

Location

lack-middleware-mito.asd

Systems

lack-middleware-mito (system)


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

4.1.4 mito-core.asd

Location

mito-core.asd

Systems

mito-core (system)


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

4.1.5 mito/src/mito.lisp

Parent

mito (system)

Location

src/mito.lisp

Packages

mito


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

4.1.6 mito-migration/src/migration.lisp

Dependency

migration-components (module)

Parent

mito-migration (system)

Location

src/migration.lisp

Packages

mito.migration


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

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

Dependency

sxql.lisp (file)

Parent

migration-components (module)

Location

src/migration/table.lisp

Packages

mito.migration.table

Exported Definitions
Internal Definitions

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

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

Dependencies
Parent

migration-components (module)

Location

src/migration/versions.lisp

Packages

mito.migration.versions

Exported Definitions
Internal Definitions

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

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

Parent

migration-components (module)

Location

src/migration/sxql.lisp

Packages

mito.migration.sxql

Internal Definitions

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

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

Parent

migration-components (module)

Location

src/migration/sql-parse.lisp

Packages

mito.migration.sql-parse

Exported Definitions

parse-statements (function)


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

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

Parent

src (module)

Location

src/middleware.lisp

Packages

mito.middleware

Exported Definitions

*lack-middleware-mito* (special variable)


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

4.1.12 mito-core/src/core.lisp

Dependency

core-components (module)

Parent

mito-core (system)

Location

src/core.lisp

Packages

mito.core


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

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

Dependency

dao-components (module)

Parent

core-components (module)

Location

src/core/dao.lisp

Packages

mito.dao

Exported Definitions
Internal Definitions

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

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

Dependencies
Parent

dao-components (module)

Location

src/core/dao/table.lisp

Packages

mito.dao.table

Exported Definitions
Internal Definitions

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

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

Dependency

column.lisp (file)

Parent

dao-components (module)

Location

src/core/dao/view.lisp

Packages

mito.dao.view

Exported Definitions
Internal Definitions

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

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

Dependency

column.lisp (file)

Parent

dao-components (module)

Location

src/core/dao/mixin.lisp

Packages

mito.dao.mixin

Exported Definitions
Internal Definitions

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

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

Parent

dao-components (module)

Location

src/core/dao/column.lisp

Packages

mito.dao.column

Exported Definitions
Internal Definitions

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

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

Dependency

class-components (module)

Parent

core-components (module)

Location

src/core/class.lisp

Packages

mito.class

Exported Definitions

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

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

Dependency

column.lisp (file)

Parent

class-components (module)

Location

src/core/class/table.lisp

Packages

mito.class.table

Exported Definitions
Internal Definitions

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

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

Parent

class-components (module)

Location

src/core/class/column.lisp

Packages

mito.class.column

Exported Definitions
Internal Definitions

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

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

Dependency

error.lisp (file)

Parent

core-components (module)

Location

src/core/connection.lisp

Packages

mito.connection

Exported Definitions

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

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

Dependency

db.lisp (file)

Parent

core-components (module)

Location

src/core/type.lisp

Packages

mito.type

Exported Definitions
Internal Definitions

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

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

Dependencies
Parent

core-components (module)

Location

src/core/db.lisp

Packages

mito.db

Exported Definitions
Internal Definitions

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

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

Parent

db-drivers (module)

Location

src/core/db/mysql.lisp

Packages

mito.db.mysql

Exported Definitions
Internal Definitions

ensure-string (function)


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

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

Parent

db-drivers (module)

Location

src/core/db/postgres.lisp

Packages

mito.db.postgres

Exported Definitions
Internal Definitions

get-serial-keys (function)


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

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

Parent

db-drivers (module)

Location

src/core/db/sqlite3.lisp

Packages

mito.db.sqlite3

Exported Definitions
Internal Definitions

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

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

Parent

core-components (module)

Location

src/core/logger.lisp

Packages

mito.logger

Exported Definitions
Internal Definitions

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

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

Parent

core-components (module)

Location

src/core/error.lisp

Packages

mito.error

Exported Definitions

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

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

Parent

core-components (module)

Location

src/core/util.lisp

Packages

mito.util

Exported Definitions
Internal Definitions

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

5 Packages

Packages are listed by definition order.


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

5.1 mito-asd

Source

mito.asd

Use List

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

5.2 mito

Source

src/mito.lisp (file)

Use List

common-lisp


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

5.3 mito-migration-asd

Source

mito-migration.asd

Use List

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

5.4 mito.migration

Source

src/migration.lisp (file)

Use List

common-lisp


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

5.5 mito.migration.table

Source

table.lisp (file)

Use List
Exported Definitions
Internal Definitions

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

5.6 mito.migration.versions

Source

versions.lisp (file)

Use List
Exported Definitions
Internal Definitions

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

5.7 mito.migration.sxql

Extansions of SxQL for Mito.Migration

Source

sxql.lisp (file)

Use List

common-lisp

Internal Definitions

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

5.8 mito.migration.sql-parse

Source

sql-parse.lisp (file)

Use List
Exported Definitions

parse-statements (function)


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

5.9 mito.middleware

Source

middleware.lisp (file)

Nickname

lack.middleware.mito

Use List

common-lisp

Exported Definitions

*lack-middleware-mito* (special variable)


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

5.10 mito.core

Source

src/core.lisp (file)

Use List

common-lisp


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

5.11 mito.dao

Source

dao.lisp (file)

Use List
Exported Definitions
Internal Definitions

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

5.12 mito.dao.table

Source

table.lisp (file)

Use List
Exported Definitions
Internal Definitions

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

5.13 mito.dao.view

Source

view.lisp (file)

Use List

common-lisp

Exported Definitions
Internal Definitions

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

5.14 mito.dao.mixin

Source

mixin.lisp (file)

Use List
Exported Definitions
Internal Definitions

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

5.15 mito.dao.column

Source

column.lisp (file)

Use List
Exported Definitions
Internal Definitions

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

5.16 mito.class

Source

class.lisp (file)

Use List
Used By List

mito.dao

Exported Definitions

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

5.17 mito.class.table

Source

table.lisp (file)

Use List
Used By List

mito.class

Exported Definitions
Internal Definitions

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

5.18 mito.class.column

Source

column.lisp (file)

Use List
Used By List

mito.class

Exported Definitions
Internal Definitions

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

5.19 mito.connection

Source

connection.lisp (file)

Use List
Exported Definitions

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

5.20 mito.type

Source

type.lisp (file)

Use List

common-lisp

Exported Definitions
Internal Definitions

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

5.21 mito.db

Source

db.lisp (file)

Use List

common-lisp

Exported Definitions
Internal Definitions

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

5.22 mito.db.mysql

Source

mysql.lisp (file)

Use List
Exported Definitions
Internal Definitions

ensure-string (function)


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

5.23 mito.db.postgres

Source

postgres.lisp (file)

Use List
Exported Definitions
Internal Definitions

get-serial-keys (function)


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

5.24 mito.db.sqlite3

Source

sqlite3.lisp (file)

Use List
Exported Definitions
Internal Definitions

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

5.25 mito.logger

Source

logger.lisp (file)

Use List

common-lisp

Exported Definitions
Internal Definitions

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

5.26 mito.error

Source

error.lisp (file)

Use List

common-lisp

Used By List
Exported Definitions

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

5.27 mito.util

Source

util.lisp (file)

Use List

common-lisp

Used By List
Exported Definitions
Internal Definitions

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

6 Definitions

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


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

6.1 Exported definitions


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.1 Special variables

Special Variable: *auto-migration-mode*
Package

mito.migration.table

Source

table.lisp (file)

Special Variable: *connection*
Package

mito.connection

Source

connection.lisp (file)

Special Variable: *lack-middleware-mito*
Package

mito.middleware

Source

middleware.lisp (file)

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 (file)

Special Variable: *mito-logger-stream*
Package

mito.logger

Source

logger.lisp (file)

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

Stream to output sql generated during migrations.

Package

mito.logger

Source

logger.lisp (file)

Special Variable: *trace-sql-hooks*
Package

mito.logger

Source

logger.lisp (file)

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 (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.2 Macros

Macro: deftable NAME DIRECT-SUPERCLASSES DIRECT-SLOTS &rest OPTIONS
Package

mito.dao

Source

dao.lisp (file)

Macro: select-dao CLASS &body CLAUSES
Package

mito.dao

Source

dao.lisp (file)

Macro: with-prepared-query QUERY (CONN SQL &key USE-PREPARE-CACHED) &body BODY
Package

mito.util

Source

util.lisp (file)

Macro: with-quote-char &body BODY
Package

mito.connection

Source

connection.lisp (file)

Macro: with-sql-logging &body BODY
Package

mito.logger

Source

logger.lisp (file)

Macro: with-trace-sql &body BODY
Package

mito.logger

Source

logger.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.3 Functions

Function: all-migration-expressions ()
Package

mito.migration.versions

Source

versions.lisp (file)

Function: check-connected ()
Package

mito.connection

Source

connection.lisp (file)

Function: column-definitions CONN TABLE-NAME
Package

mito.db

Source

db.lisp (file)

Function: column-definitions CONN TABLE-NAME
Package

mito.db.mysql

Source

mysql.lisp (file)

Function: column-definitions CONN TABLE-NAME
Package

mito.db.postgres

Source

postgres.lisp (file)

Function: column-definitions CONN TABLE-NAME
Package

mito.db.sqlite3

Source

sqlite3.lisp (file)

Function: connect-toplevel DRIVER-NAME &rest ARGS &key DATABASE-NAME &allow-other-keys
Package

mito.connection

Source

connection.lisp (file)

Function: connected-p ()
Package

mito.connection

Source

connection.lisp (file)

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 (file)

Function: connection-quote-character CONN
Package

mito.connection

Source

connection.lisp (file)

Function: contains-class-or-subclasses CLASS TARGET-CLASSES
Package

mito.util

Source

util.lisp (file)

Function: count-dao CLASS &rest FIELDS-AND-VALUES
Package

mito.dao

Source

dao.lisp (file)

Function: current-migration-version ()
Package

mito.migration.versions

Source

versions.lisp (file)

Function: depending-table-classes CLASS
Package

mito.dao.table

Source

table.lisp (file)

Function: disconnect-toplevel ()
Package

mito.connection

Source

connection.lisp (file)

Function: driver-type &optional CONN
Package

mito.connection

Source

connection.lisp (file)

Function: ensure-class CLASS-OR-CLASS-NAME
Package

mito.util

Source

util.lisp (file)

Function: ensure-table-exists CLASS
Package

mito.dao

Source

dao.lisp (file)

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 (file)

Function: find-child-columns TABLE SLOT
Package

mito.class.table

Source

table.lisp (file)

Function: find-dao CLASS &rest FIELDS-AND-VALUES
Package

mito.dao

Source

dao.lisp (file)

Function: find-parent-column TABLE SLOT
Package

mito.class.table

Source

table.lisp (file)

Function: find-slot-by-name CLASS SLOT-NAME &key TEST
Package

mito.class.table

Source

table.lisp (file)

Function: generate-migrations DIRECTORY &key FORCE
Package

mito.migration.versions

Source

versions.lisp (file)

Function: get-column-real-type CONN NAME
Package

mito.type

Source

type.lisp (file)

Function: group-by-plist PLISTS &key KEY TEST
Package

mito.util

Source

util.lisp (file)

Function: include-foreign-objects FOREIGN-CLASS RECORDS
Package

mito.dao

Source

dao.lisp (file)

Function: last-insert-id CONN TABLE-NAME SERIAL-KEY-NAME
Package

mito.db

Source

db.lisp (file)

Function: last-insert-id CONN TABLE-NAME SERIAL-KEY-NAME
Package

mito.db.mysql

Source

mysql.lisp (file)

Function: last-insert-id CONN TABLE-NAME SERIAL-KEY-NAME
Package

mito.db.postgres

Source

postgres.lisp (file)

Function: last-insert-id CONN TABLE-NAME
Package

mito.db.sqlite3

Source

sqlite3.lisp (file)

Function: lispify OBJECT
Package

mito.util

Source

util.lisp (file)

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 (file)

Function: migrate DIRECTORY &key DRY-RUN
Package

mito.migration.versions

Source

versions.lisp (file)

Function: migration-expressions CLASS &optional DRIVER-TYPE
Package

mito.migration.table

Source

table.lisp (file)

Function: migration-status DIRECTORY
Package

mito.migration.versions

Source

versions.lisp (file)

Function: mito-sql-logger SQL PARAMS ROW-COUNT TOOK-USEC PREV-STACK
Package

mito.logger

Source

logger.lisp (file)

Function: parse-dbtype DBTYPE
Package

mito.type

Source

type.lisp (file)

Function: parse-statements CONTENT
Package

mito.migration.sql-parse

Source

sql-parse.lisp (file)

Function: recreate-table CLASS
Package

mito.dao

Source

dao.lisp (file)

Function: retrieve-dao CLASS &rest FIELDS-AND-VALUES
Package

mito.dao

Source

dao.lisp (file)

Function: select-by-sql CLASS SQL &key BINDS
Package

mito.dao

Source

dao.lisp (file)

Function: symbol-name-literally SYMBOL
Package

mito.util

Source

util.lisp (file)

Function: table-column-slots CLASS
Package

mito.class.table

Source

table.lisp (file)

Function: table-direct-column-slots CLASS
Package

mito.class.table

Source

table.lisp (file)

Function: table-exists-p CONN TABLE-NAME
Package

mito.db

Source

db.lisp (file)

Function: table-indices CONN TABLE-NAME
Package

mito.db

Source

db.lisp (file)

Function: table-indices CONN TABLE-NAME
Package

mito.db.mysql

Source

mysql.lisp (file)

Function: table-indices CONN TABLE-NAME
Package

mito.db.postgres

Source

postgres.lisp (file)

Function: table-indices CONN TABLE-NAME
Package

mito.db.sqlite3

Source

sqlite3.lisp (file)

Function: table-view-query CONN TABLE-NAME
Package

mito.db

Source

db.lisp (file)

Function: table-view-query CONN TABLE-NAME
Package

mito.db.mysql

Source

mysql.lisp (file)

Function: table-view-query CONN TABLE-NAME
Package

mito.db.postgres

Source

postgres.lisp (file)

Function: unlispify OBJECT
Package

mito.util

Source

util.lisp (file)

Function: update-migration-version VERSION
Package

mito.migration.versions

Source

versions.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.4 Generic functions

Generic Function: convert-for-driver-type DRIVER-TYPE COL-TYPE VALUE
Package

mito.dao

Source

dao.lisp (file)

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 (file)

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 (file)

Methods
Method: create-table-sxql CLASS DRIVER-TYPE &key IF-NOT-EXISTS
Generic Function: dao-synced OBJECT
Generic Function: (setf dao-synced) NEW-VALUE OBJECT
Package

mito.dao.mixin

Methods
Method: dao-synced (DAO-CLASS dao-class)

automatically generated reader method

Source

mixin.lisp (file)

Method: (setf dao-synced) NEW-VALUE (DAO-CLASS dao-class)

automatically generated writer method

Source

mixin.lisp (file)

Generic Function: dao-table-column-deflate COLUMN VALUE
Package

mito.dao.column

Source

column.lisp (file)

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 (file)

Methods
Method: dao-table-column-inflate (COLUMN dao-table-column-class) VALUE
Generic Function: dao-table-view-as-query OBJECT
Package

mito.dao.view

Methods
Method: dao-table-view-as-query (DAO-TABLE-VIEW dao-table-view)

automatically generated reader method

Source

view.lisp (file)

Generic Function: database-column-slots CLASS
Package

mito.class.table

Source

table.lisp (file)

Methods
Method: database-column-slots (CLASS table-class)
Generic Function: deflate-for-col-type COL-TYPE VALUE
Package

mito.dao.column

Source

column.lisp (file)

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 (file)

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 (file)

Methods
Method: delete-dao (OBJ dao-class)
Generic Function: execute-sql SQL &optional BINDS
Package

mito.db

Source

db.lisp (file)

Methods
Method: execute-sql SQL &optional BINDS before
Method: execute-sql (SQL string) &optional BINDS
Method: execute-sql (SQL sql-statement) &optional BINDS
Generic Function: ghost-slot-p OBJECT
Generic Function: (setf ghost-slot-p) NEW-VALUE OBJECT
Package

mito.class.column

Methods
Method: ghost-slot-p (TABLE-COLUMN-CLASS table-column-class)
Method: (setf ghost-slot-p) NEW-VALUE (TABLE-COLUMN-CLASS table-column-class)

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

Source

column.lisp (file)

Generic Function: inflate-for-col-type COL-TYPE VALUE
Package

mito.dao.column

Source

column.lisp (file)

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 (file)

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

mito.dao.mixin

Source

mixin.lisp (file)

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 (file)

Methods
Method: migrate-table (CLASS symbol)
Method: migrate-table (CLASS dao-table-class)
Generic Function: object-created-at OBJECT
Generic Function: (setf object-created-at) NEW-VALUE OBJECT
Package

mito.dao.mixin

Methods
Method: object-created-at (RECORD-TIMESTAMPS-MIXIN record-timestamps-mixin)

automatically generated reader method

Source

mixin.lisp (file)

Method: (setf object-created-at) NEW-VALUE (RECORD-TIMESTAMPS-MIXIN record-timestamps-mixin)

automatically generated writer method

Source

mixin.lisp (file)

Generic Function: object-id OBJECT
Generic Function: (setf object-id) ID OBJECT
Package

mito.dao.mixin

Source

mixin.lisp (file)

Methods
Method: object-id (OBJECT serial-pk-mixin)
Method: (setf object-id) ID (OBJECT serial-pk-mixin)
Method: object-id (OBJECT uuid-pk-mixin)
Method: (setf object-id) ID (OBJECT uuid-pk-mixin)
Generic Function: object-updated-at OBJECT
Generic Function: (setf object-updated-at) NEW-VALUE OBJECT
Package

mito.dao.mixin

Methods
Method: object-updated-at (RECORD-TIMESTAMPS-MIXIN record-timestamps-mixin)

automatically generated reader method

Source

mixin.lisp (file)

Method: (setf object-updated-at) NEW-VALUE (RECORD-TIMESTAMPS-MIXIN record-timestamps-mixin)

automatically generated writer method

Source

mixin.lisp (file)

Generic Function: object= OBJECT1 OBJECT2
Package

mito.dao.mixin

Source

mixin.lisp (file)

Methods
Method: object= OBJECT1 OBJECT2
Generic Function: primary-key-p OBJECT
Generic Function: (setf primary-key-p) NEW-VALUE OBJECT
Package

mito.class.column

Methods
Method: primary-key-p (TABLE-COLUMN-CLASS table-column-class)

automatically generated reader method

Source

column.lisp (file)

Method: (setf primary-key-p) NEW-VALUE (TABLE-COLUMN-CLASS table-column-class)

automatically generated writer method

Source

column.lisp (file)

Generic Function: retrieve-by-sql SQL &key BINDS
Package

mito.db

Source

db.lisp (file)

Methods
Method: retrieve-by-sql SQL &key BINDS before
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 (file)

Methods
Method: save-dao (OBJ dao-class)
Generic Function: table-column-info COLUMN DRIVER-TYPE
Package

mito.class.column

Source

column.lisp (file)

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 COLUMN DRIVER-TYPE around
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 (file)

Methods
Method: table-column-info-for-create-table COLUMN DRIVER-TYPE
Method: table-column-info-for-create-table COLUMN DRIVER-TYPE around
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 (file)

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

mito.class.column

Source

column.lisp (file)

Methods
Method: table-column-not-null-p (COLUMN table-column-class)
Generic Function: table-column-references OBJECT
Package

mito.class.column

Methods
Method: table-column-references (TABLE-COLUMN-CLASS table-column-class)

automatically generated reader method

Source

column.lisp (file)

Generic Function: table-column-references-column COLUMN
Package

mito.class.column

Source

column.lisp (file)

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

class.lisp (file)

Generic Function: table-column-type COLUMN
Package

mito.class.column

Source

column.lisp (file)

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 (file)

Methods
Method: table-definition (CLASS dao-table-class) &key IF-NOT-EXISTS &allow-other-keys
Source

table.lisp (file)

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 (file)

Methods
Method: table-indices-info CLASS DRIVER-TYPE
Generic Function: table-name CLASS
Package

mito.class.table

Source

table.lisp (file)

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

mito.class.table

Source

table.lisp (file)

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

mito.class.table

Source

table.lisp (file)

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

mito.dao

Source

dao.lisp (file)

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

Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.5 Conditions

Condition: col-type-required ()
Package

mito.error

Source

error.lisp (file)

Direct superclasses

invalid-definition (condition)

Direct slots
Slot: slot
Initargs

:slot

Condition: connection-not-established ()
Package

mito.error

Source

error.lisp (file)

Direct superclasses

mito-error (condition)

Condition: invalid-definition ()
Package

mito.error

Source

error.lisp (file)

Direct superclasses

mito-error (condition)

Direct subclasses

col-type-required (condition)

Condition: mito-error ()
Package

mito.error

Source

error.lisp (file)

Direct superclasses

error (condition)

Direct subclasses
Condition: no-primary-keys ()
Package

mito.error

Source

error.lisp (file)

Direct superclasses

mito-error (condition)

Direct slots
Slot: table
Initargs

:table


Previous: , Up: Exported definitions   [Contents][Index]

6.1.6 Classes

Class: dao-class ()
Package

mito.dao.mixin

Source

mixin.lisp (file)

Direct superclasses

standard-object (class)

Direct methods
Direct slots
Slot: synced
Type

boolean

Readers

dao-synced (generic function)

Writers

(setf dao-synced) (generic function)

Class: dao-table-class ()
Package

mito.dao.table

Source

table.lisp (file)

Direct superclasses

dao-table-mixin (class)

Direct methods
  • reinitialize-instance (method)
  • initialize-instance (method)
  • migrate-table (method)
  • delete-by-values (method)
  • create-dao (method)
  • table-definition (method)
  • ensure-class-using-class (method)
  • reinitialize-instance (method)
  • initialize-instance (method)
  • direct-slot-definition-class (method)
Direct slots
Slot: auto-pk
Initargs

:auto-pk

Initform

(quote (:serial))

Slot: record-timestamps
Initargs

:record-timestamps

Initform

(quote (t))

Class: dao-table-column-class ()
Package

mito.dao.column

Source

column.lisp (file)

Direct superclasses

table-column-class (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 (file)

Direct superclasses

table-class (class)

Direct subclasses

dao-table-class (class)

Direct methods
  • reinitialize-instance (method)
  • initialize-instance (method)
  • direct-slot-definition-class (method)
Class: dao-table-view ()
Package

mito.dao.view

Source

view.lisp (file)

Direct superclasses

table-class (class)

Direct methods
Direct slots
Slot: as
Initargs

:as

Initform

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

Readers

dao-table-view-as-query (generic function)

Class: record-timestamps-mixin ()
Package

mito.dao.mixin

Source

mixin.lisp (file)

Direct superclasses

standard-object (class)

Direct methods
Direct slots
Slot: created-at
Initargs

:created-at

Readers

object-created-at (generic function)

Writers

(setf object-created-at) (generic function)

Slot: updated-at
Initargs

:updated-at

Readers

object-updated-at (generic function)

Writers

(setf object-updated-at) (generic function)

Class: serial-pk-mixin ()
Package

mito.dao.mixin

Source

mixin.lisp (file)

Direct superclasses

standard-object (class)

Direct methods
Direct slots
Slot: id
Initargs

:id

Readers

%object-id (generic function)

Writers

(setf %object-id) (generic function)

Class: table-class ()
Package

mito.class.table

Source

table.lisp (file)

Direct superclasses

standard-class (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 (file)

Direct superclasses

standard-direct-slot-definition (class)

Direct subclasses

dao-table-column-class (class)

Direct methods
Direct slots
Slot: col-type
Type

(or symbol cons null)

Initargs

:col-type

Readers

%table-column-type (generic function)

Writers

(setf %table-column-type) (generic function)

Slot: references
Type

mito.class.column::references

Initargs

:references

Readers

table-column-references (generic function)

Slot: primary-key
Type

boolean

Initargs

:primary-key

Readers

primary-key-p (generic function)

Writers

(setf primary-key-p) (generic function)

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 (generic function)

Writers

(setf ghost-slot-p) (generic function)

Class: uuid-pk-mixin ()
Package

mito.dao.mixin

Source

mixin.lisp (file)

Direct superclasses

standard-object (class)

Direct methods
Direct slots
Slot: id
Initargs

:id

Initform

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

Readers

%object-uuid (generic function)

Writers

(setf %object-uuid) (generic function)


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

6.2 Internal definitions


Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.1 Special variables

Special Variable: *conc-name*
Package

mito.dao.column

Source

column.lisp (file)

Special Variable: *db-date-format*
Package

mito.dao

Source

dao.lisp (file)

Special Variable: *db-date-format*
Package

mito.dao.column

Source

column.lisp (file)

Special Variable: *db-datetime-format*
Package

mito.dao

Source

dao.lisp (file)

Special Variable: *db-datetime-format*
Package

mito.dao.column

Source

column.lisp (file)

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

mito.dao.column

Source

column.lisp (file)

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

mito.dao

Source

dao.lisp (file)

Special Variable: *real-type-cache*
Package

mito.type

Source

type.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.2 Functions

Function: %list-diff A B &key KEY TEST
Package

mito.util

Source

util.lisp (file)

Function: %migration-status DIRECTORY
Package

mito.migration.versions

Source

versions.lisp (file)

Function: add-referencing-slots INITARGS
Package

mito.class.table

Source

table.lisp (file)

Function: add-relational-readers CLASS INITARGS
Package

mito.dao.mixin

Source

mixin.lisp (file)

Function: all-dao-classes ()
Package

mito.migration.versions

Source

versions.lisp (file)

Function: append-auto-pk-class-to-direct-superclasses-if-needed INITARGS DIRECT-SUPERCLASSES
Package

mito.dao.table

Source

table.lisp (file)

Function: append-record-timestamp-mixin-to-direct-superclasses-if-needed INITARGS DIRECT-SUPERCLASSES
Package

mito.dao.table

Source

table.lisp (file)

Function: array-convert-nulls-to-nils RESULTS-ARRAY
Package

mito.db

Source

db.lisp (file)

Function: call-with-prepared-query CONN SQL THUNK &key USE-PREPARE-CACHED
Package

mito.util

Source

util.lisp (file)

Function: child-columns COLUMN CLASS
Package

mito.dao

Source

dao.lisp (file)

Function: copy-create-sequence INSTANCE
Package

mito.migration.sxql

Source

sxql.lisp (file)

Function: copy-create-view INSTANCE
Package

mito.dao.view

Source

view.lisp (file)

Function: copy-drop-sequence INSTANCE
Package

mito.migration.sxql

Source

sxql.lisp (file)

Function: copy-set-default INSTANCE
Package

mito.migration.sxql

Source

sxql.lisp (file)

Function: create-sequence-name INSTANCE
Function: (setf create-sequence-name) VALUE INSTANCE
Package

mito.migration.sxql

Source

sxql.lisp (file)

Function: create-sequence-p OBJECT
Package

mito.migration.sxql

Source

sxql.lisp (file)

Function: create-sequence-sequence-name INSTANCE
Function: (setf create-sequence-sequence-name) VALUE INSTANCE
Package

mito.migration.sxql

Source

sxql.lisp (file)

Function: create-view-as INSTANCE
Function: (setf create-view-as) VALUE INSTANCE
Package

mito.dao.view

Source

view.lisp (file)

Function: create-view-name INSTANCE
Function: (setf create-view-name) VALUE INSTANCE
Package

mito.dao.view

Source

view.lisp (file)

Function: create-view-or-replace INSTANCE
Function: (setf create-view-or-replace) VALUE INSTANCE
Package

mito.dao.view

Source

view.lisp (file)

Function: create-view-p OBJECT
Package

mito.dao.view

Source

view.lisp (file)

Function: create-view-view-name INSTANCE
Function: (setf create-view-view-name) VALUE INSTANCE
Package

mito.dao.view

Source

view.lisp (file)

Function: drop-sequence-if-exists INSTANCE
Function: (setf drop-sequence-if-exists) VALUE INSTANCE
Package

mito.migration.sxql

Source

sxql.lisp (file)

Function: drop-sequence-name INSTANCE
Function: (setf drop-sequence-name) VALUE INSTANCE
Package

mito.migration.sxql

Source

sxql.lisp (file)

Function: drop-sequence-p OBJECT
Package

mito.migration.sxql

Source

sxql.lisp (file)

Function: drop-sequence-sequence-name INSTANCE
Function: (setf drop-sequence-sequence-name) VALUE INSTANCE
Package

mito.migration.sxql

Source

sxql.lisp (file)

Function: ensure-string VAL
Package

mito.db.mysql

Source

mysql.lisp (file)

Function: escaped-symbol-p SYMBOL
Package

mito.util

Source

util.lisp (file)

Function: expand-op OBJECT CLASS

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

Package

mito.dao

Source

dao.lisp (file)

Function: expand-relational-keys CLASS SLOT-NAME
Package

mito.class.table

Source

table.lisp (file)

Function: foreign-value OBJ SLOT
Package

mito.dao

Source

dao.lisp (file)

Function: generate-uuid ()
Package

mito.dao.mixin

Source

mixin.lisp (file)

Function: generate-version ()
Package

mito.migration.versions

Source

versions.lisp (file)

Function: get-prev-stack ()
Package

mito.logger

Source

logger.lisp (file)

Function: get-serial-keys CONN TABLE-NAME
Package

mito.db.postgres

Source

postgres.lisp (file)

Function: initargs-contains-primary-key INITARGS
Package

mito.dao.table

Source

table.lisp (file)

Function: initargs-enables-auto-pk INITARGS
Package

mito.dao.table

Source

table.lisp (file)

Function: initargs-enables-record-timestamps INITARGS
Package

mito.dao.table

Source

table.lisp (file)

Function: initialize-migrations-table ()
Package

mito.migration.versions

Source

versions.lisp (file)

Function: list-convert-nulls-to-nils RESULTS-LIST
Package

mito.db

Source

db.lisp (file)

Function: make-create-sequence SEQUENCE-NAME
Package

mito.migration.sxql

Source

sxql.lisp (file)

Function: make-create-view VIEW-NAME &key OR-REPLACE AS
Package

mito.dao.view

Source

view.lisp (file)

Function: make-drop-sequence SEQUENCE-NAME &key IF-EXISTS
Package

mito.migration.sxql

Source

sxql.lisp (file)

Function: make-relational-reader-method FUNC-NAME CLASS SLOT-NAME REL-CLASS
Package

mito.dao.mixin

Source

mixin.lisp (file)

Function: make-set-clause OBJ
Package

mito.dao

Source

dao.lisp (file)

Function: make-set-default EXPRESSION
Package

mito.migration.sxql

Source

sxql.lisp (file)

Function: map-all-superclasses FN CLASS &key KEY
Package

mito.class.table

Source

table.lisp (file)

Function: migration-expressions-for-others CLASS DRIVER-TYPE
Package

mito.migration.table

Source

table.lisp (file)

Function: migration-expressions-for-sqlite3 CLASS
Package

mito.migration.table

Source

table.lisp (file)

Function: migration-file-version FILE
Package

mito.migration.versions

Source

versions.lisp (file)

Function: migration-files BASE-DIRECTORY &key SORT-BY
Package

mito.migration.versions

Source

versions.lisp (file)

Function: obsolete-prepared-statement-p CONN E
Package

mito.util

Source

util.lisp (file)

Function: parse-col-type COL-TYPE
Package

mito.class.column

Source

column.lisp (file)

Function: parse-type-vars VARS
Package

mito.type

Source

type.lisp (file)

Function: rel-column-name NAME PK-NAME
Package

mito.class.table

Source

table.lisp (file)

Function: schema-migrations-table-definition &optional DRIVER-TYPE
Package

mito.migration.versions

Source

versions.lisp (file)

Function: set-default-expression INSTANCE
Function: (setf set-default-expression) VALUE INSTANCE
Package

mito.migration.sxql

Source

sxql.lisp (file)

Function: set-default-name INSTANCE
Function: (setf set-default-name) VALUE INSTANCE
Package

mito.migration.sxql

Source

sxql.lisp (file)

Function: set-default-p OBJECT
Package

mito.migration.sxql

Source

sxql.lisp (file)

Function: slot-defaults CLASS TABLE-COLUMNS NEW-FIELDS
Package

mito.migration.table

Source

table.lisp (file)

Function: slot-foreign-value OBJECT CLASS SLOT-NAME
Package

mito.dao

Source

dao.lisp (file)

Function: table-info CONN TABLE-NAME
Package

mito.db.sqlite3

Source

sqlite3.lisp (file)

Function: table-primary-keys CONN TABLE-NAME
Package

mito.db.sqlite3

Source

sqlite3.lisp (file)

Function: trace-sql SQL PARAMS ROW-COUNT TOOK-USEC
Package

mito.logger

Source

logger.lisp (file)

Function: where-and FIELDS-AND-VALUES CLASS
Package

mito.dao

Source

dao.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.3 Generic functions

Generic Function: %object-id OBJECT
Generic Function: (setf %object-id) NEW-VALUE OBJECT
Package

mito.dao.mixin

Methods
Method: %object-id (SERIAL-PK-MIXIN serial-pk-mixin)

automatically generated reader method

Source

mixin.lisp (file)

Method: (setf %object-id) NEW-VALUE (SERIAL-PK-MIXIN serial-pk-mixin)

automatically generated writer method

Source

mixin.lisp (file)

Generic Function: %object-uuid OBJECT
Generic Function: (setf %object-uuid) NEW-VALUE OBJECT
Package

mito.dao.mixin

Methods
Method: %object-uuid (UUID-PK-MIXIN uuid-pk-mixin)

automatically generated reader method

Source

mixin.lisp (file)

Method: (setf %object-uuid) NEW-VALUE (UUID-PK-MIXIN uuid-pk-mixin)

automatically generated writer method

Source

mixin.lisp (file)

Generic Function: %table-column-type OBJECT
Generic Function: (setf %table-column-type) NEW-VALUE OBJECT
Package

mito.class.column

Methods
Method: %table-column-type (TABLE-COLUMN-CLASS table-column-class)

automatically generated reader method

Source

column.lisp (file)

Method: (setf %table-column-type) NEW-VALUE (TABLE-COLUMN-CLASS table-column-class)

automatically generated writer method

Source

column.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.4 Structures

Structure: create-sequence ()
Package

mito.migration.sxql

Source

sxql.lisp (file)

Direct superclasses

sql-statement (structure)

Direct methods

yield (method)

Direct slots
Slot: name
Type

string

Initform

"create sequence"

Readers

create-sequence-name (function)

Writers

(setf create-sequence-name) (function)

Slot: sequence-name
Readers

create-sequence-sequence-name (function)

Writers

(setf create-sequence-sequence-name) (function)

Structure: create-view ()
Package

mito.dao.view

Source

view.lisp (file)

Direct superclasses

sql-statement (structure)

Direct methods

yield (method)

Direct slots
Slot: name
Type

string

Initform

"create view"

Readers

create-view-name (function)

Writers

(setf create-view-name) (function)

Slot: view-name
Readers

create-view-view-name (function)

Writers

(setf create-view-view-name) (function)

Slot: or-replace
Readers

create-view-or-replace (function)

Writers

(setf create-view-or-replace) (function)

Slot: as
Readers

create-view-as (function)

Writers

(setf create-view-as) (function)

Structure: drop-sequence ()
Package

mito.migration.sxql

Source

sxql.lisp (file)

Direct superclasses

sql-statement (structure)

Direct methods

yield (method)

Direct slots
Slot: name
Type

string

Initform

"drop sequence"

Readers

drop-sequence-name (function)

Writers

(setf drop-sequence-name) (function)

Slot: sequence-name
Readers

drop-sequence-sequence-name (function)

Writers

(setf drop-sequence-sequence-name) (function)

Slot: if-exists
Readers

drop-sequence-if-exists (function)

Writers

(setf drop-sequence-if-exists) (function)

Structure: set-default ()
Package

mito.migration.sxql

Source

sxql.lisp (file)

Direct superclasses

expression-clause (structure)

Direct slots
Slot: name
Type

string

Initform

"set default"

Readers

set-default-name (function)

Writers

(setf set-default-name) (function)


Previous: , Up: Internal definitions   [Contents][Index]

6.2.5 Types

Type: references ()
Package

mito.class.column

Source

column.lisp (file)


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

Appendix A Indexes


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

A.1 Concepts

Jump to:   F   L   M  
Index Entry  Section

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

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

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

Jump to:   F   L   M  

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   W  
Index Entry  Section

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

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

A
add-referencing-slots: Internal functions
add-relational-readers: Internal functions
all-dao-classes: Internal functions
all-migration-expressions: Exported functions
append-auto-pk-class-to-direct-superclasses-if-needed: Internal functions
append-record-timestamp-mixin-to-direct-superclasses-if-needed: Internal functions
array-convert-nulls-to-nils: Internal functions

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

D
dao-synced: Exported generic functions
dao-synced: Exported generic functions
dao-table-column-deflate: Exported generic functions
dao-table-column-deflate: Exported generic functions
dao-table-column-inflate: Exported generic functions
dao-table-column-inflate: Exported generic functions
dao-table-view-as-query: Exported generic functions
dao-table-view-as-query: Exported generic functions
database-column-slots: Exported generic functions
database-column-slots: Exported generic functions
deflate-for-col-type: Exported generic functions
deflate-for-col-type: Exported generic functions
deflate-for-col-type: Exported generic functions
deflate-for-col-type: Exported generic functions
deflate-for-col-type: Exported generic functions
deflate-for-col-type: Exported generic functions
deflate-for-col-type: Exported generic functions
deftable: Exported macros
delete-by-values: Exported generic functions
delete-by-values: Exported generic functions
delete-by-values: Exported generic functions
delete-dao: Exported generic functions
delete-dao: Exported generic functions
depending-table-classes: Exported functions
disconnect-toplevel: Exported functions
driver-type: Exported functions
drop-sequence-if-exists: Internal functions
drop-sequence-name: Internal functions
drop-sequence-p: Internal functions
drop-sequence-sequence-name: Internal functions

E
ensure-class: Exported functions
ensure-string: Internal functions
ensure-table-exists: Exported functions
escaped-symbol-p: Internal functions
execute-sql: Exported generic functions
execute-sql: Exported generic functions
execute-sql: Exported generic functions
execute-sql: Exported generic functions
execute-with-retry: Exported functions
expand-op: Internal functions
expand-relational-keys: Internal functions

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

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

I
include-foreign-objects: Exported functions
inflate-for-col-type: Exported generic functions
inflate-for-col-type: Exported generic functions
inflate-for-col-type: Exported generic functions
inflate-for-col-type: Exported generic functions
inflate-for-col-type: Exported generic functions
inflate-for-col-type: Exported generic functions
inflate-for-col-type: Exported generic functions
inflate-for-col-type: Exported generic functions
inflate-for-col-type: Exported generic functions
initargs-contains-primary-key: Internal functions
initargs-enables-auto-pk: Internal functions
initargs-enables-record-timestamps: Internal functions
initialize-migrations-table: Internal functions
insert-dao: Exported generic functions
insert-dao: Exported generic functions
insert-dao: Exported generic functions

L
last-insert-id: Exported functions
last-insert-id: Exported functions
last-insert-id: Exported functions
last-insert-id: Exported functions
lispify: Exported functions
list-convert-nulls-to-nils: Internal functions
list-diff: Exported functions

M
Macro, deftable: Exported macros
Macro, select-dao: Exported macros
Macro, with-prepared-query: Exported macros
Macro, with-quote-char: Exported macros
Macro, with-sql-logging: Exported macros
Macro, with-trace-sql: Exported macros
make-create-sequence: Internal functions
make-create-view: Internal functions
make-dao-instance: Exported generic functions
make-dao-instance: Exported generic functions
make-dao-instance: Exported generic functions
make-drop-sequence: Internal functions
make-relational-reader-method: Internal functions
make-set-clause: Internal functions
make-set-default: Internal functions
map-all-superclasses: Internal functions
Method, %object-id: Internal generic functions
Method, %object-uuid: Internal generic functions
Method, %table-column-type: Internal generic functions
Method, (setf %object-id): Internal generic functions
Method, (setf %object-uuid): Internal generic functions
Method, (setf %table-column-type): Internal generic functions
Method, (setf dao-synced): Exported generic functions
Method, (setf ghost-slot-p): Exported generic functions
Method, (setf object-created-at): Exported generic functions
Method, (setf object-id): Exported generic functions
Method, (setf object-id): Exported generic functions
Method, (setf object-updated-at): Exported generic functions
Method, (setf primary-key-p): Exported generic functions
Method, convert-for-driver-type: Exported generic functions
Method, convert-for-driver-type: Exported generic functions
Method, convert-for-driver-type: Exported generic functions
Method, convert-for-driver-type: Exported generic functions
Method, convert-for-driver-type: Exported generic functions
Method, convert-for-driver-type: Exported generic functions
Method, convert-for-driver-type: Exported generic functions
Method, convert-for-driver-type: Exported generic functions
Method, convert-for-driver-type: Exported generic functions
Method, convert-for-driver-type: Exported generic functions
Method, create-dao: Exported generic functions
Method, create-dao: Exported generic functions
Method, create-table-sxql: Exported generic functions
Method, dao-synced: Exported generic functions
Method, dao-table-column-deflate: Exported generic functions
Method, dao-table-column-inflate: Exported generic functions
Method, dao-table-view-as-query: Exported generic functions
Method, database-column-slots: Exported generic functions
Method, deflate-for-col-type: Exported generic functions
Method, deflate-for-col-type: Exported generic functions
Method, deflate-for-col-type: Exported generic functions
Method, deflate-for-col-type: Exported generic functions
Method, deflate-for-col-type: Exported generic functions
Method, deflate-for-col-type: Exported generic functions
Method, delete-by-values: Exported generic functions
Method, delete-by-values: Exported generic functions
Method, delete-dao: Exported generic functions
Method, execute-sql: Exported generic functions
Method, execute-sql: Exported generic functions
Method, execute-sql: Exported generic functions
Method, ghost-slot-p: Exported generic functions
Method, inflate-for-col-type: Exported generic functions
Method, inflate-for-col-type: Exported generic functions
Method, inflate-for-col-type: Exported generic functions
Method, inflate-for-col-type: Exported generic functions
Method, inflate-for-col-type: Exported generic functions
Method, inflate-for-col-type: Exported generic functions
Method, inflate-for-col-type: Exported generic functions
Method, inflate-for-col-type: Exported generic functions
Method, insert-dao: Exported generic functions
Method, insert-dao: Exported generic functions
Method, make-dao-instance: Exported generic functions
Method, make-dao-instance: Exported generic functions
Method, migrate-table: Exported generic functions
Method, migrate-table: Exported generic functions
Method, object-created-at: Exported generic functions
Method, object-id: Exported generic functions
Method, object-id: Exported generic functions
Method, object-updated-at: Exported generic functions
Method, object=: Exported generic functions
Method, primary-key-p: Exported generic functions
Method, retrieve-by-sql: Exported generic functions
Method, retrieve-by-sql: Exported generic functions
Method, retrieve-by-sql: Exported generic functions
Method, retrieve-by-sql: Exported generic functions
Method, retrieve-by-sql: Exported generic functions
Method, save-dao: Exported generic functions
Method, table-column-info: Exported generic functions
Method, table-column-info: Exported generic functions
Method, table-column-info: Exported generic functions
Method, table-column-info: Exported generic functions
Method, table-column-info-for-create-table: Exported generic functions
Method, table-column-info-for-create-table: Exported generic functions
Method, table-column-info-for-create-table: Exported generic functions
Method, table-column-info-for-create-table: Exported generic functions
Method, table-column-info-for-create-table: Exported generic functions
Method, table-column-name: Exported generic functions
Method, table-column-not-null-p: Exported generic functions
Method, table-column-references: Exported generic functions
Method, table-column-references-column: Exported generic functions
Method, table-column-type: Exported generic functions
Method, table-definition: Exported generic functions
Method, table-definition: Exported generic functions
Method, table-definition: Exported generic functions
Method, table-indices-info: Exported generic functions
Method, table-name: Exported generic functions
Method, table-primary-key: Exported generic functions
Method, table-serial-key: Exported generic functions
Method, update-dao: Exported generic functions
Method, update-dao: Exported generic functions
migrate: Exported functions
migrate-table: Exported generic functions
migrate-table: Exported generic functions
migrate-table: Exported generic functions
migration-expressions: Exported functions
migration-expressions-for-others: Internal functions
migration-expressions-for-sqlite3: Internal functions
migration-file-version: Internal functions
migration-files: Internal functions
migration-status: Exported functions
mito-sql-logger: Exported functions

O
object-created-at: Exported generic functions
object-created-at: Exported generic functions
object-id: Exported generic functions
object-id: Exported generic functions
object-id: Exported generic functions
object-updated-at: Exported generic functions
object-updated-at: Exported generic functions
object=: Exported generic functions
object=: Exported generic functions
obsolete-prepared-statement-p: Internal functions

P
parse-col-type: Internal functions
parse-dbtype: Exported functions
parse-statements: Exported functions
parse-type-vars: Internal functions
primary-key-p: Exported generic functions
primary-key-p: Exported generic functions

R
recreate-table: Exported functions
rel-column-name: Internal functions
retrieve-by-sql: Exported generic functions
retrieve-by-sql: Exported generic functions
retrieve-by-sql: Exported generic functions
retrieve-by-sql: Exported generic functions
retrieve-by-sql: Exported generic functions
retrieve-by-sql: Exported generic functions
retrieve-dao: Exported functions

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

T
table-column-info: Exported generic functions
table-column-info: Exported generic functions
table-column-info: Exported generic functions
table-column-info: Exported generic functions
table-column-info: Exported generic functions
table-column-info-for-create-table: Exported generic functions
table-column-info-for-create-table: Exported generic functions
table-column-info-for-create-table: Exported generic functions
table-column-info-for-create-table: Exported generic functions
table-column-info-for-create-table: Exported generic functions
table-column-info-for-create-table: Exported generic functions
table-column-name: Exported generic functions
table-column-name: Exported generic functions
table-column-not-null-p: Exported generic functions
table-column-not-null-p: Exported generic functions
table-column-references: Exported generic functions
table-column-references: Exported generic functions
table-column-references-column: Exported generic functions
table-column-references-column: Exported generic functions
table-column-slots: Exported functions
table-column-type: Exported generic functions
table-column-type: Exported generic functions
table-definition: Exported generic functions
table-definition: Exported generic functions
table-definition: Exported generic functions
table-definition: Exported generic functions
table-direct-column-slots: Exported functions
table-exists-p: Exported functions
table-indices: Exported functions
table-indices: Exported functions
table-indices: Exported functions
table-indices: Exported functions
table-indices-info: Exported generic functions
table-indices-info: Exported generic functions
table-info: Internal functions
table-name: Exported generic functions
table-name: Exported generic functions
table-primary-key: Exported generic functions
table-primary-key: Exported generic functions
table-primary-keys: Internal functions
table-serial-key: Exported generic functions
table-serial-key: Exported generic functions
table-view-query: Exported functions
table-view-query: Exported functions
table-view-query: Exported functions
trace-sql: Internal functions

U
unlispify: Exported functions
update-dao: Exported generic functions
update-dao: Exported generic functions
update-dao: Exported generic functions
update-migration-version: Exported functions

W
where-and: Internal functions
with-prepared-query: Exported macros
with-quote-char: Exported macros
with-sql-logging: Exported macros
with-trace-sql: Exported macros

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

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

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

A
as: Exported classes
as: Internal structures
auto-pk: Exported classes

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

D
deflate: Exported classes

G
ghost: Exported classes

I
id: Exported classes
id: Exported classes
if-exists: Internal structures
inflate: Exported classes

K
keys: Exported classes

N
name: Internal structures
name: Internal structures
name: Internal structures
name: Internal structures

O
or-replace: Internal structures

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

R
record-timestamps: Exported classes
references: Exported classes

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

T
table: Exported conditions
table-name: Exported classes

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

V
view-name: Internal 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   I   L   M   N   P   R   S   T   U  
Index Entry  Section

C
Class, dao-class: Exported classes
Class, dao-table-class: Exported classes
Class, dao-table-column-class: Exported classes
Class, dao-table-mixin: Exported classes
Class, dao-table-view: Exported classes
Class, record-timestamps-mixin: Exported classes
Class, serial-pk-mixin: Exported classes
Class, table-class: Exported classes
Class, table-column-class: Exported classes
Class, uuid-pk-mixin: Exported classes
col-type-required: Exported conditions
Condition, col-type-required: Exported conditions
Condition, connection-not-established: Exported conditions
Condition, invalid-definition: Exported conditions
Condition, mito-error: Exported conditions
Condition, no-primary-keys: Exported conditions
connection-not-established: Exported conditions
create-sequence: Internal structures
create-view: Internal structures

D
dao-class: Exported classes
dao-table-class: Exported classes
dao-table-column-class: Exported classes
dao-table-mixin: Exported classes
dao-table-view: Exported classes
drop-sequence: Internal structures

I
invalid-definition: Exported conditions

L
lack-middleware-mito: The lack-middleware-mito system

M
mito: The mito system
mito: The mito package
mito-asd: The mito-asd package
mito-core: The mito-core system
mito-error: Exported conditions
mito-migration: The mito-migration system
mito-migration-asd: The mito-migration-asd package
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.versions: The mito․migration․versions package
mito.type: The mito․type package
mito.util: The mito․util package

N
no-primary-keys: Exported 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.versions: The mito․migration․versions package
Package, mito.type: The mito․type package
Package, mito.util: The mito․util package

R
record-timestamps-mixin: Exported classes
references: Internal types

S
serial-pk-mixin: Exported classes
set-default: Internal structures
Structure, create-sequence: Internal structures
Structure, create-view: Internal structures
Structure, drop-sequence: Internal structures
Structure, set-default: Internal structures
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: Exported classes
table-column-class: Exported classes
Type, references: Internal types

U
uuid-pk-mixin: Exported classes

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