Index: openacs-4/packages/acs-tcl/tcl/security-procs-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/security-procs-oracle.xql,v diff -u -r1.3 -r1.4 --- openacs-4/packages/acs-tcl/tcl/security-procs-oracle.xql 29 Dec 2001 01:48:32 -0000 1.3 +++ openacs-4/packages/acs-tcl/tcl/security-procs-oracle.xql 1 Mar 2002 15:01:02 -0000 1.4 @@ -63,4 +63,20 @@ + + + + update sec_session_properties + set property_value = null, + property_clob = empty_clob(), + secure_p = :secure, + last_hit = :last_hit + where session_id = :session_id and + module = :module and + property_name = :name + returning property_clob into :1 + + + + Index: openacs-4/packages/acs-tcl/tcl/security-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/security-procs.tcl,v diff -u -r1.6 -r1.7 --- openacs-4/packages/acs-tcl/tcl/security-procs.tcl 28 Feb 2002 01:10:08 -0000 1.6 +++ openacs-4/packages/acs-tcl/tcl/security-procs.tcl 1 Mar 2002 15:01:02 -0000 1.7 @@ -388,7 +388,7 @@ db_transaction { # DRB: Older versions of this code did a delete/insert pair in an attempt - # to guard against duplicate insertions. This didn't work if there were + # to guard against duplicate insertions. This didn't work if there was # no value for this property in the table and two transactions ran in # parallel. The problem is that without an existing row the delete had # nothing to lock on, thus allowing the two inserts to conflict. This @@ -400,8 +400,8 @@ set clob_insert_dml [db_map prop_insert_dml_clob] - if { $clob == "t" && ![empty_string_p $clob_dml] } { - if { [catch {db_dml dummy $clob_dml -clobs [list $value]} errmsg] } { + if { $clob == "t" && ![empty_string_p $clob_insert_dml] } { + if { [catch {db_dml dummy $clob_insert_dml -clobs [list $value]} errmsg] } { db_dml prop_update_dml_clob "" -clobs [list $value] } } else { Index: openacs-4/packages/acs-tcl/tcl/security-procs.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/security-procs.xql,v diff -u -r1.3 -r1.4 --- openacs-4/packages/acs-tcl/tcl/security-procs.xql 29 Dec 2001 01:48:32 -0000 1.3 +++ openacs-4/packages/acs-tcl/tcl/security-procs.xql 1 Mar 2002 15:01:02 -0000 1.4 @@ -36,30 +36,32 @@ - - + - delete from sec_session_properties - where session_id = :session_id - and module = :module - and property_name = :name + insert into sec_session_properties + (session_id, module, property_name, property_value, secure_p, last_hit) + values ( :session_id, :module, :name, :value, :secure, :last_hit ) - + - insert into sec_session_properties - (session_id, module, property_name, property_value, secure_p, last_hit) - values ( :session_id, :module, :name, :value, :secure, :last_hit ) + update sec_session_properties + set property_value = :value, + property_clob = null, + secure_p = :secure, + last_hit = :last_hit + where session_id = :session_id and + module = :module and + property_name = :name -