Checkout
rhuijben
committed
on 23 May 12
Make the recursive property retrieval functions in the wc_db api proportional
to the list of targets instead of to the total size of the wor… Show more
Make the recursive property retrieval functions in the wc_db api proportional

to the list of targets instead of to the total size of the working copy.

* subversion/libsvn_wc/wc-queries.sql

 (STMT_CREATE_TARGETS_LIST): Add primary key, to give Sqlite a primary index.

 (STMT_CACHE_NODE_PROPS): Renamed to ...

 (STMT_CACHE_TARGET_PROPS): ... this. Join starting from the targets table

   to avoid a wc scan on the nodes table to check for each item if it is

   in the targets list. Integrate the STMT_CACHE_ACTUAL_PROPS statement

   as that gives us the final result in a single step.

 (STMT_CACHE_ACTUAL_PROPS): Remove statement.

   Folded into STMT_CACHE_TARGET_PROPS.

 (STMT_CACHE_NODE_PRISTINE_PROPS): Renamed to ...

 (STMT_CACHE_TARGET_PRISTINE_PROPS): ... this. Join starting with the targets

   table. Use a CASE to only fetch properties from below when we have a

   base-deleted node.

* subversion/libsvn_wc/wc_db.c

 (cache_props_recursive): Remove usage of STMT_CACHE_ACTUAL_PROPS.

* subversion/tests/libsvn_wc/wc-queries-test.c

 (slow_statements): Remove three more slow statements.

Show less