X-Git-Url: http://git.kpe.io/?p=clsql.git;a=blobdiff_plain;f=db-sqlite3%2Fsqlite3-methods.lisp;fp=db-sqlite3%2Fsqlite3-methods.lisp;h=181fca43b894b733c63cddd4f6a7d0e0664f3df3;hp=0000000000000000000000000000000000000000;hb=4332610851d855ebc858f231f06cff81c675e5f2;hpb=2fb4a4ccc311f37b0f5e993976a4d7d4f667f4e3 diff --git a/db-sqlite3/sqlite3-methods.lisp b/db-sqlite3/sqlite3-methods.lisp new file mode 100644 index 0000000..181fca4 --- /dev/null +++ b/db-sqlite3/sqlite3-methods.lisp @@ -0,0 +1,20 @@ +;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*- + +(in-package #:clsql-sys) + +;; This method generates primary key constraints part of the table +;; definition. For Sqlite autoincrement primary keys to work properly +;; this part of the table definition must be left out. +(defmethod database-pkey-constraint ((class standard-db-class) + (database clsql-sqlite3:sqlite3-database))) + +(defmethod database-translate-constraint (constraint + (database clsql-sqlite3:sqlite3-database)) + ;; Primary purpose of this is method is to intecept and translate + ;; auto-increment primary keys constraints. + (let ((constraint-name (symbol-name constraint))) + (if (eql constraint :auto-increment) + (cons constraint "PRIMARY KEY AUTOINCREMENT") + (call-next-method)))) + +;; EOF