From ad4e01a8cd3f66562cacd4aee9226e6bfd85a2f9 Mon Sep 17 00:00:00 2001 From: Kevin Rosenberg Date: Thu, 28 Jan 2010 23:56:27 -0700 Subject: [PATCH] Fix for UPDATE-RECORD-FROM-SLOTS for normalized view-classes --- ChangeLog | 4 ++++ sql/oodml.lisp | 9 +++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index d37854e..9a60f3f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +29 Jan 2009 Kevin Rosenberg + * sql/oodml.lisp: Fix for UPDATE-RECORD-FROM-SLOTS for normalized + view classes + 28 Jan 2009 Kevin Rosenberg * Version 4.3.2 * Change "normalise" from British spelling for consistency with diff --git a/sql/oodml.lisp b/sql/oodml.lisp index e075b0c..634acc8 100644 --- a/sql/oodml.lisp +++ b/sql/oodml.lisp @@ -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. @@ -208,6 +206,13 @@ (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))) -- 2.34.1