Checkout Tools
  • last updated 4 hours ago
Constraints: committers
Constraints: files
Constraints: dates

Changeset 1341317 is being indexed.

Fix a hidden bug in the merge handling and a slow wc.db query.

* subversion/include/private/svn_wc_private.h

(svn_wc__get_server_excluded_subtrees): Rename to ...

(svn_wc__get_excluded_subtrees): ... this. Update documentaton.

* subversion/libsvn_client/merge.c

(get_mergeinfo_paths): Update caller, that really just needs a list

of paths that are not there.

* subversion/libsvn_wc/node.c

(svn_wc__get_server_excluded_subtrees): Rename to ...

(svn_wc__get_excluded_subtrees): ... this. Update caller.

* subversion/libsvn_wc/wc-queries.sql

(STMT_SELECT_ALL_EXCLUDED_NODES): Remove selection of node itself and wcroot.

Also select excluded nodes.


STMT_SELECT_ALL_EXCLUDED_NODES, but specialized to use on the wcroot.

* subversion/libsvn_wc/wc_db.c

(svn_wc__db_get_server_excluded_subtrees): Rename to ...

(svn_wc__db_get_excluded_subtrees): ... this. Use separate new queries.

Don't ask for copying in the scratch pool if we are copying it to

result_pool within its original lifetime

* subversion/libsvn_wc/wc_db.h

(svn_wc__db_get_server_excluded_subtrees): Rename to ...

(svn_wc__db_get_excluded_subtrees): ... this. Update documentaton.

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

(slow_statements): Add STMT_SELECT_ALL_EXCLUDED_WCROOT to the operationg

on the entire wc list. Remove STMT_SELECT_ALL_SERVER_EXCLUDED_NODES as

it properly uses an index instead of a table scan now.

  1. … 6 more files in changeset.
* subversion/tests/libsvn_wc/wc-queries-test.c


Apply result from review of STMT_DELETE_PRISTINE_IF_UNREFERENCED statement.

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

(test_parsable): Print runtime sqlite version, to help in diagnosing errors.

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

(headers): Following up on r1341232, undo accidental commit of my local

amalgamation test.

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

(test_query_expectations): Avoid a possible segfault with Sqlite 3.7.2.

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

(slow_statements): Remove statements that are not slow with the current


(test_query_expectations): Update evaluation to allow reporting not-slow


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

(test_query_expectations): Simplify and consolidate sqlite capability


Make wc-queries-test failures much easier to diagnose by extending the sqlite

transform script a bit. Store names and some optional value during .sql

parsing and make that information available in the test.

* build/

(Processor): Extend regex to capture flags.

(_sub_statement): Generate extra macro.

(main): Generate a DECLARE_STATEMENT_INFO macro.

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

(wc_query_info): New static variable.


test_query_expectations): Extend error messages with statement name.

  1. … 1 more file in changeset.
Following up on r1341130, fix the bug that the code only parsed the statements

until the first statement that contained multiple queries.

Record current 'slow' queries, based on Sqlite 3.7.12 results.

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

(slow_statements): Add a lot of statements.

(parse_explanation_item): Detect 'USE' operation.

(test_query_expectations): Continue instead of break on parse errors and

multi-statements. Check for primary key usage first and allow 'slow'

suppression for all checks.

Fix integer size mismatch.

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

(parse_explanation_item): Use size_t for the result of strlen().

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

(test_query_expectations): Use a different method to detect

SQLITE_OMIT_EXPLAIN compilation option of Sqlite.

Add some simple query plan evaluation test in the wc-queries-test. This

test passes for Sqlite 3.7.12, but might (and probably will) fail for

older Sqlite versions that lack specific optimizations.

Yes it would be much nicer to implement this in a script language...

But no, that wouldn't help as that might test a different Sqlite

version than Subversion.

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

(slow_statements): New list.

(is_schema_statement): Renamed to in_list and add list argument.


is_schema_statement): New macros.

(explanation_item): New struct.

(parse_explanation_item): New function.

(is_node_table): New function.

(test_query_expectations): New function.

(test_funcs): Add test_query_expectations.

Another attempt of fixing the linking/compilation of wc-queries-test.c for

sqlite amalgamation users.

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

(includes): Add svn_private_config.h

(test_parsable): Rename pool argument.

Add a raw test application to test preparing all our working copy queries on

Sqlite. The current version just parses all queries, but I intend to add

support to verify some aspects of the query plan in a later patch.

The fix in r1340998 was a direct result of writing this test.

* build.conf

(wc-queries-test): New test.

(__ALL_TESTS__): Add wc-queries-test.

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

New file.

  1. … 1 more file in changeset.