From 913477a11d2258f8fe87ff5b390c8904d17d66fe Mon Sep 17 00:00:00 2001 From: "Kevin M. Rosenberg" Date: Sun, 2 May 2004 03:13:19 +0000 Subject: [PATCH] r9200: move large object support to base --- ChangeLog | 3 +++ TODO | 4 +++- base/basic-sql.lisp | 16 ++++++++++++++++ base/package.lisp | 6 +++++- classic/sql.lisp | 18 ------------------ sql/package.lisp | 4 ++++ 6 files changed, 31 insertions(+), 20 deletions(-) diff --git a/ChangeLog b/ChangeLog index 42a0b4e..b0dfd22 100644 --- a/ChangeLog +++ b/ChangeLog @@ -9,6 +9,9 @@ rather than read-from-string. * */*.lisp: Merge clsql-base-sys and clsql-base packages into clsql-base package + * classic/sql.lisp: Move large object support into base, leaving + classic without any functionality that is provided in the clsql + system. 1 May 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.10.5: SQLite backend now passes all result-types tests diff --git a/TODO b/TODO index 7634037..1aca8f2 100644 --- a/TODO +++ b/TODO @@ -1,14 +1,16 @@ GENERAL * port Oracle backend to UFFI. +* consider adding large object support to mysql and odbc TESTS TO ADD * CACHE-TABLE-QUERIES -* :VOID-VALUE +* :VOID-VALUE, use a new view-class with several fields with different void-values * :db-kind :key adds an index for that key, complicated by different backends show autogenerated primary key in different ways. * New universal and bigint types, add tests for other types +* Large object testing COMMONSQL SPEC diff --git a/base/basic-sql.lisp b/base/basic-sql.lisp index eaccc03..86f8267 100644 --- a/base/basic-sql.lisp +++ b/base/basic-sql.lisp @@ -166,5 +166,21 @@ specified in output-type-spec and returned like in MAP." (apply function row)))) (database-dump-result-set result-set database))))) +;;; Large objects support +(defun create-large-object (&key (database *default-database*)) + "Creates a new large object in the database and returns the object identifier" + (database-create-large-object database)) + +(defun write-large-object (object-id data &key (database *default-database*)) + "Writes data to the large object" + (database-write-large-object object-id data database)) + +(defun read-large-object (object-id &key (database *default-database*)) + "Reads the large object content" + (database-read-large-object object-id database)) + +(defun delete-large-object (object-id &key (database *default-database*)) + "Deletes the large object in the database" + (database-delete-large-object object-id database)) diff --git a/base/package.lisp b/base/package.lisp index 6b55ef5..faefebd 100644 --- a/base/package.lisp +++ b/base/package.lisp @@ -60,11 +60,15 @@ #:database-list-table-indexes #:database-list-views - ;; Large objects (Marc B) + ;; Large objects #:database-create-large-object #:database-write-large-object #:database-read-large-object #:database-delete-large-object + #:create-large-object + #:write-large-object + #:read-large-object + #:delete-large-object #:command-output #:make-process-lock diff --git a/classic/sql.lisp b/classic/sql.lisp index d1d9715..a98d963 100644 --- a/classic/sql.lisp +++ b/classic/sql.lisp @@ -90,24 +90,6 @@ (lisp->sql-name (cadr o)))))) -;;; Marc Battyani : Large objects support - -(defun create-large-object (&key (database *default-database*)) - "Creates a new large object in the database and returns the object identifier" - (database-create-large-object database)) - -(defun write-large-object (object-id data &key (database *default-database*)) - "Writes data to the large object" - (database-write-large-object object-id data database)) - -(defun read-large-object (object-id &key (database *default-database*)) - "Reads the large object content" - (database-read-large-object object-id database)) - -(defun delete-large-object (object-id &key (database *default-database*)) - "Deletes the large object in the database" - (database-delete-large-object object-id database)) - ;;; These functions are not exported. If you application depends on these ;;; functions consider using the clsql package using has further support. diff --git a/sql/package.lisp b/sql/package.lisp index 5293df9..b1e39f2 100644 --- a/sql/package.lisp +++ b/sql/package.lisp @@ -203,6 +203,10 @@ #:do-query #:map-query #:describe-table + #:create-large-object + #:write-large-object + #:read-large-object + #:delete-large-object ;; recording.lisp -- SQL I/O Recording -- 2.34.1