xowiki::hstore::update_form_instance_item_index (private)
xowiki::hstore::update_form_instance_item_index \ [ -package_id package_id ] [ -object_class object_class ] \ [ -initialize initialize ]
Defined in packages/xowiki/tcl/xowiki-utility-procs.tcl
update all instance attributes in hstore
- Switches:
- -package_id (optional)
- -object_class (optional, defaults to
"::xowiki::FormPage"
)- -initialize (optional, defaults to
"false"
)- Partial Call Graph (max 5 caller/called nodes):
- Testcases:
- No testcase defined.
Source code: # # This proc can be used from ds/shell as follows # # ::xowiki::hstore::update_form_instance_item_index -package_id $package_id # # Check the packages which do not have the hkey set: # # select hkey from xowiki_form_instance_item_index where hkey is null; # set t0 [clock clicks -milliseconds] ns_log notice "start to work on -package_id $package_id" ::xo::Package require $package_id set t1 [clock clicks -milliseconds] ns_log notice "$package_id: ::xo::Package require took [expr {$t1-$t0}]ms" set t0 $t1 if {![::xo::dc has_hstore] && [::$package_id get_parameter use_hstore:boolean 0] } { return 0 } set sql { select * from xowiki_form_instance_item_view where package_id = :package_id } set items [::xowiki::FormPage instantiate_objects -sql $sql -object_class $object_class -initialize $initialize] set t1 [clock clicks -milliseconds] ns_log notice "$package_id: obtaining [llength [$items children]] items took [expr {$t1-$t0}]ms" set t0 $t1 set count 0 foreach p [$items children] { set hkey [::xowiki::hstore::dict_as_hkey [$p hstore_attributes]] set item_id [$p item_id] set t0 [clock clicks -milliseconds] xo::dc dml update_hstore "update xowiki_form_instance_item_index set hkey = '$hkey' where item_id = :item_id" set t1 [clock clicks -milliseconds] ns_log notice "$package_id $count: update took [expr {$t1-$t0}]ms" set t0 $t1 incr count } $items log "updated $count objects from package $package_id" return $countXQL Not present: Generic, PostgreSQL, Oracle