Return-Path: Delivered-To: apmail-db-derby-dev-archive@www.apache.org Received: (qmail 95064 invoked from network); 9 Nov 2005 11:25:16 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 9 Nov 2005 11:25:16 -0000 Received: (qmail 23717 invoked by uid 500); 9 Nov 2005 11:25:14 -0000 Delivered-To: apmail-db-derby-dev-archive@db.apache.org Received: (qmail 23687 invoked by uid 500); 9 Nov 2005 11:25:14 -0000 Mailing-List: contact derby-dev-help@db.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: Delivered-To: mailing list derby-dev@db.apache.org Received: (qmail 23678 invoked by uid 99); 9 Nov 2005 11:25:14 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 09 Nov 2005 03:25:13 -0800 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: neutral (asf.osuosl.org: local policy) Received: from [32.97.110.154] (HELO e36.co.us.ibm.com) (32.97.110.154) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 09 Nov 2005 03:25:06 -0800 Received: from d03relay04.boulder.ibm.com (d03relay04.boulder.ibm.com [9.17.195.106]) by e36.co.us.ibm.com (8.12.11/8.12.11) with ESMTP id jA9BOpxD026878 for ; Wed, 9 Nov 2005 06:24:51 -0500 Received: from d03av01.boulder.ibm.com (d03av01.boulder.ibm.com [9.17.195.167]) by d03relay04.boulder.ibm.com (8.12.10/NCO/VERS6.8) with ESMTP id jA9BQ11K053638 for ; Wed, 9 Nov 2005 04:26:02 -0700 Received: from d03av01.boulder.ibm.com (loopback [127.0.0.1]) by d03av01.boulder.ibm.com (8.12.11/8.13.3) with ESMTP id jA9BOoST031479 for ; Wed, 9 Nov 2005 04:24:51 -0700 Received: from [127.0.0.1] (sig-9-48-106-42.mts.ibm.com [9.48.106.42]) by d03av01.boulder.ibm.com (8.12.11/8.12.11) with ESMTP id jA9BOjmp031348 for ; Wed, 9 Nov 2005 04:24:50 -0700 Message-ID: <4371DC78.3030102@debrunners.com> Date: Wed, 09 Nov 2005 12:24:40 +0100 From: Daniel John Debrunner User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.3) Gecko/20040910 X-Accept-Language: en-us, en MIME-Version: 1.0 To: derby-dev@db.apache.org Subject: Re: [jira] Updated: (DERBY-231) "FOR UPDATE" required for updatable result set to work References: <1423548905.1113999264585.JavaMail.jira@ajax.apache.org> <1821373379.1130947796422.JavaMail.jira@ajax.apache.org> <20051103001306.GB5919@barbar.sun.com> <436951E6.7000701@debrunners.com> <436A1825.2000708@sun.com> <436A81A7.20107@debrunners.com> <4371C2FB.6080601@sun.com> In-Reply-To: <4371C2FB.6080601@sun.com> X-Enigmail-Version: 0.90.0.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Andreas Korneliussen wrote: > I am a bit curious about the statement about improving the JDBC > updatable result set implementation to not use positioned updates. > > Did you mean that an improvement could be to not base JDBC updatable > resultsets on positioned updates at all, and instead invent another > mechanism. If so, do you have any specific ideas on this ? It was just a vague idea. It seems somewhat inefficient for an updatable ResultSet to create a SQL statement, have that parsed & compiled in order to perfom an update or delete etc. However, the use of SQL is a great example of re-use, especially as the problem looks simple 'update the current row', but in fact is complicated. The update must determine which triggers are to be invoked, which constraints to be checked etc. etc. This of course is handled automatically through the use of SQL. Maybe, just maybe, the code could be re-factored to allow updateable ResultSets to avoid the SQL parsing step but that's the limit of what I've thought about. > We are thinking of coninuing using positioned updates when doing > scrollable updatable resultsets - that is why I am asking. You should continue on your current path. I'm not working on this at all. The general point I was trying to make it that testing user visible functionality implictly due to implementation knowledge is not a good practice. Test as we intend the users to use it, not indirectly through a different mechanism that might effect things somehow. Dan.