Fix for UPDATE-RECORD-FROM-SLOTS for normalized view-classes
authorKevin Rosenberg <kevin@rosenberg.net>
Fri, 29 Jan 2010 06:56:27 +0000 (23:56 -0700)
committerKevin Rosenberg <kevin@rosenberg.net>
Fri, 29 Jan 2010 06:56:27 +0000 (23:56 -0700)
ChangeLog
sql/oodml.lisp

index d37854ef4d33beec0255addf1647d62f5a329bf9..9a60f3ff286ec94d0f4934350a1ebb1c3d87117d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+29 Jan 2009  Kevin Rosenberg <kevin@rosenberg.net>
+       * sql/oodml.lisp: Fix for UPDATE-RECORD-FROM-SLOTS for normalized
+       view classes
+
 28 Jan 2009  Kevin Rosenberg <kevin@rosenberg.net>
        * Version 4.3.2
        * Change "normalise" from British spelling for consistency with
index e075b0c0d08535cd2acf50a3a60c287ff2009e11..634acc859f9fa5e3e14f459d2ef77bd67c697ebf 100644 (file)
@@ -1,8 +1,6 @@
 ;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*-
 ;;;; *************************************************************************
 ;;;;
-;;;; $Id$
-;;;;
 ;;;; The CLSQL Object Oriented Data Manipulation Language (OODML).
 ;;;;
 ;;;; This file is part of CLSQL.
 
 (defmethod update-record-from-slots ((obj standard-db-object) slots &key
                                      (database *default-database*))
+  (when (normalizedp (class-of obj))
+    ;; FIXME: Rewrite to bundle slots for same table to be written
+    ;; as avpairs (like how is done for non-normalized view-classes below)
+    (dolist (slot slots)
+      (update-record-from-slot obj slot :database database))
+    (return-from update-record-from-slots (values)))
+
   (let* ((database (or (view-database obj) database))
          (vct (view-table (class-of obj)))
          (sds (slotdefs-for-slots-with-class slots (class-of obj)))