From 6057501f6035cf4eaa2f1fd94b03441cf4ad58b9 Mon Sep 17 00:00:00 2001 From: fukamachi Date: Mon, 19 Dec 2011 13:46:39 +0900 Subject: [PATCH] changed `execute' to always returns an instance of . --- src/driver.lisp | 16 +--------------- src/test.lisp | 16 ++++++++++------ 2 files changed, 11 insertions(+), 21 deletions(-) diff --git a/src/driver.lisp b/src/driver.lisp index 53efe2e..72ef8c9 100644 --- a/src/driver.lisp +++ b/src/driver.lisp @@ -91,23 +91,9 @@ This method may be overrided by subclasses." query params)) -@export -(defgeneric fetch (result) - (:documentation "Fetch the first row from `result` which is returned by `execute`.")) - -@export -(defmethod fetch ((result list)) - (pop result)) - -@export -(defmethod fetch ((result vector)) - (handler-case (vector-pop result) - (simple-error (condition) - @ignore condition - nil))) - @export (defmethod fetch ((query )) + "Fetch the first row from `query` which is returned by `execute`." (fetch-using-connection (query-connection query) query)) @export diff --git a/src/test.lisp b/src/test.lisp index d82261a..8f707f4 100644 --- a/src/test.lisp +++ b/src/test.lisp @@ -19,7 +19,7 @@ @export (defun run-driver-tests (driver-name &rest params) (let ((*db* (apply #'connect driver-name params))) - (plan 15) + (plan 17) (run-test-all))) (deftest |connect| @@ -39,9 +39,13 @@ (setf query (prepare *db* "SELECT * FROM person")) (is-type query ') (setf result (execute query)) - (ok result) - (ok (property-list-p (fetch result))) - (ok (property-list-p (fetch result))) + (is-type result ') + (let ((result (fetch result))) + (is-type result 'property-list) + (is (getf result :|name|) "fukamachi")) + (let ((result (fetch result))) + (is-type result 'property-list) + (is (getf result :|name|) "matsuyama")) (is (fetch result) nil))) (deftest |place holder| @@ -49,8 +53,8 @@ (setf query (prepare *db* "SELECT * FROM person WHERE name = ?")) (is-type query ') (setf result (execute query "matsuyama")) - (ok result) - (ok (property-list-p (fetch result))) + (is-type result ') + (is-type (fetch result) 'property-list) (is (fetch result) nil))) (deftest |with-transaction|