This is oracle specific as far as I know (insert...returning...).  The
create problem needs to be addressed if one cannot retrieve the rowid, the
logic needs to check and see if rowid is set or not - maybe Vinay already
did this, I didn't look that hard.

It's not clear to me what this will do for us.  It is likely the index page
will have been paged into the buffer cache to handle the initial query which
returned the row so I don't see this saving a lot of disk i/o, just some cpu
cycles.  For example, depending on how one is creating the keys for new rows
a better improvement might be to embed oracle specific code into the
creation to query a sequence for the key.  If there is a goal to really
speed up Jaws when using Oracle or some other database we should probably
really analyze what it's doing, unless somebody is already doing that.

Cheers

-----Original Message-----
From: danch (Dan Christopherson) [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, June 06, 2001 12:59 PM
To: [EMAIL PROTECTED]
Subject: Re: [JBoss-dev] Fast Updates Based on Row ID


Will the 'returning <column> into ?' work in databases other than 
oracle? If not, that would be a problem: until JAWS is chainsawed 
(refactored to separate SQL syntax from the Command hierarchy), it'll be 
difficult to manage DB specific stuff at that level. Vinay's original 
patch isn't too bad, because it doesn't cause us to generate syntax that 
won't work elsewhere (you could give the name of a normal column as the 
rowid column and it would work (so long as that column is unique))

Jay Walters wrote:

> Use "insert ... returning rowid into ?"
> 
> -----Original Message-----
> From: David Jencks [mailto:[EMAIL PROTECTED]]
> Sent: Wednesday, June 06, 2001 12:02 PM
> To: [EMAIL PROTECTED]
> Subject: Re: [JBoss-dev] Fast Updates Based on Row ID
> 
> 
> Hi,
> 
> I may be wrong about oracle rowid changing on row update, it's been a
> couple of years.  However interbase/firebird dbkey definitely does change
> on update, and I think someone mentioned the sql server analogue does too.
> 
> In this situation, it seems to me that commit option A cannot be used,
> since to get a valid rowid, you have to read the db within the same
> transaction you are updating in.
> 
> Also, even in Oracle, how can this be used with a newly inserted bean?
> 
> create --inserts row in db
> 
> later in same transaction, change values on this bean, the generated save
> has no rowid unless you fetched it in perhaps ejbpostcreate???  If you can
> fix this one, perhaps it can also be used to fetch values supplied by
> triggers on insert, such as sequence/generators used for abstract id.
> 
> Am I wrong here? Could you explain in detail how this will work?
> 
> Thanks
> david jencks
> 
> On 2001.06.06 10:50:53 -0400 K.V. Vinay Menon wrote:
> 
>>The ROW ID bit does not touch ANY other portion in the JBoss source
>>except
>>for
>>
>>a) Generating SQLs
>>b) Setting parameters.
>>
>>Options A,B and C should work as usual, correct me if I am wrong. As for
>>option D, I am suprised that it has become part of our 'standard' commit
>>options. I wrote some code and never had a chance to commit it and unless
>>someone else has commited stuff for option D let me know and I'll have to
>>commit the code!
>>
>>Vinay
>>----- Original Message -----
>>From: "David Jencks" <[EMAIL PROTECTED]>
>>To: <[EMAIL PROTECTED]>
>>Sent: Wednesday, June 06, 2001 2:40 PM
>>Subject: Re: [JBoss-dev] Fast Updates Based on Row ID
>>
>>
>>
>>>Hi,
>>>
>>>This looks very interesting.  I'm kind of too lazy to read your code to
>>>find out the answer for myself...
>>>
>>>My impression is that Oracle ROWID and similar facilities such as
>>>Interbase/firebird dbkey are stable only within a transaction, and in
>>>
>>fact
>>
>>>expected to change with any update. Could you please explain how your
>>>
>>new
>>
>>>feature guarantees updating the correct row with commit options A, B,
>>>
>>C,
>>
>>>and D?
>>>
>>>Thanks
>>>david jencks
>>>
>>>
>>>On 2001.06.06 08:56:02 -0400 K.V. Vinay Menon wrote:
>>>
>>>>Hi Marc,
>>>>    When you were here in London we'd discussed adding functionality
>>>>
>>to
>>
>>>>use things like ROWID for fast updates and deletes [as opposed to
>>>>
>>using
>>
>>>>primary keys]. I have been able to implement this by
>>>>
>>>>1. Adding a field in jaws.xml called rowid-column name. This is ROWID
>>>>
>>for
>>
>>>>Oracle and can be something else for other databases. If you do not
>>>>
>>want
>>
>>>>to use this feature just don't specify the tag and it will use the
>>>>default mechansm based on the primary key.
>>>>
>>>><snip>
>>>>
>>>
>>>_______________________________________________
>>>Jboss-development mailing list
>>>[EMAIL PROTECTED]
>>>http://lists.sourceforge.net/lists/listinfo/jboss-development
>>>
>>
>>_______________________________________________
>>Jboss-development mailing list
>>[EMAIL PROTECTED]
>>http://lists.sourceforge.net/lists/listinfo/jboss-development
>>
>>
> 
> 
> _______________________________________________
> Jboss-development mailing list
> [EMAIL PROTECTED]
> http://lists.sourceforge.net/lists/listinfo/jboss-development
> 
> _______________________________________________
> Jboss-development mailing list
> [EMAIL PROTECTED]
> http://lists.sourceforge.net/lists/listinfo/jboss-development
> 



_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to