You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by hw...@apache.org on 2011/05/16 14:01:10 UTC
svn commit: r1103706 - in /subversion/trunk/subversion/libsvn_wc:
wc-queries.sql wc_db.c
Author: hwright
Date: Mon May 16 12:01:10 2011
New Revision: 1103706
URL: http://svn.apache.org/viewvc?rev=1103706&view=rev
Log:
Replace the more flexible wc_db finalization function, with a simple,
but sufficient, model.
* subversion/libsvn_wc/wc-queries.sql
(STMT_DROP_CHANGELIST_LIST): Rename to...
(STMT_FINALIZE_CHANGELIST): ...this, and be sure to drop the targets_list
table.
(STMT_DROP_TARGETS_LIST): Remove.
(STMT_DROP_DELETE_LIST): Rename to...
(STMT_FINALIZE_DELETE): ...this.
* subversion/libsvn_wc/wc_db.c
(finalize_callback_t, run_final_query): Remove.
(with_finalization): Take a single finalization statement index, and excute
it.
(set_changelist_txn): Don't drop the targets_list table, that will happen in
finalization.
(svn_wc__db_op_set_changelist, snv_wc__db_op_delete): Update callers.
Modified:
subversion/trunk/subversion/libsvn_wc/wc-queries.sql
subversion/trunk/subversion/libsvn_wc/wc_db.c
Modified: subversion/trunk/subversion/libsvn_wc/wc-queries.sql
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/wc-queries.sql?rev=1103706&r1=1103705&r2=1103706&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/wc-queries.sql (original)
+++ subversion/trunk/subversion/libsvn_wc/wc-queries.sql Mon May 16 12:01:10 2011
@@ -417,11 +417,12 @@ END
INSERT INTO changelist_list(wc_id, local_relpath, notify, changelist)
VALUES (?1, ?2, ?3, ?4)
--- STMT_DROP_CHANGELIST_LIST
+-- STMT_FINALIZE_CHANGELIST
DROP TRIGGER IF EXISTS trigger_changelist_list_actual_cl_insert;
DROP TRIGGER IF EXISTS trigger_changelist_list_actual_cl_set;
DROP TRIGGER IF EXISTS trigger_changelist_list_actual_cl_clear;
-DROP TABLE IF EXISTS changelist_list
+DROP TABLE IF EXISTS changelist_list;
+DROP TABLE IF EXISTS targets_list
-- STMT_SELECT_CHANGELIST_LIST
SELECT wc_id, local_relpath, notify, changelist
@@ -440,9 +441,6 @@ CREATE INDEX targets_list_kind
ON targets_list (kind)
/* need more indicies? */
--- STMT_DROP_TARGETS_LIST
-DROP TABLE IF EXISTS targets_list;
-
-- STMT_INSERT_TARGET
INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind)
SELECT wc_id, local_relpath, parent_relpath, kind
@@ -1165,7 +1163,7 @@ WHERE wc_id = ?1 AND (local_relpath = ?2
SELECT local_relpath FROM delete_list
ORDER BY local_relpath
--- STMT_DROP_DELETE_LIST
+-- STMT_FINALIZE_DELETE
DROP TABLE IF EXISTS delete_list
Modified: subversion/trunk/subversion/libsvn_wc/wc_db.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/wc_db.c?rev=1103706&r1=1103705&r2=1103706&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/wc_db.c (original)
+++ subversion/trunk/subversion/libsvn_wc/wc_db.c Mon May 16 12:01:10 2011
@@ -2456,29 +2456,6 @@ typedef svn_error_t * (*work_callback_t)
void *notify_baton,
apr_pool_t *scratch_pool);
-typedef svn_error_t * (*finalize_callback_t)(
- void *baton,
- svn_wc__db_wcroot_t *wcroot,
- apr_pool_t *scratch_pool);
-
-static svn_error_t *
-run_final_query(void *baton,
- svn_wc__db_wcroot_t *wcroot,
- apr_pool_t *scratch_pool)
-{
- int *query_idx = baton;
- svn_error_t *err = SVN_NO_ERROR;
-
- while (*query_idx >= 0)
- {
- err = svn_error_compose_create(err, svn_sqlite__exec_statements(
- wcroot->sdb, *query_idx));
- query_idx++;
- }
-
- return err;
-}
-
static svn_error_t *
with_finalization(void *baton,
svn_wc__db_wcroot_t *wcroot,
@@ -2491,8 +2468,7 @@ with_finalization(void *baton,
void *cancel_baton,
svn_wc_notify_func2_t notify_func,
void *notify_baton,
- finalize_callback_t finalize_func,
- void *finalize_baton,
+ int finalize_stmt_idx,
apr_pool_t *scratch_pool)
{
svn_error_t *err1;
@@ -2510,7 +2486,7 @@ with_finalization(void *baton,
err1 = svn_error_compose_create(err1, err2);
}
- err2 = finalize_func(finalize_baton, wcroot, scratch_pool);
+ err2 = svn_sqlite__exec_statements(wcroot->sdb, finalize_stmt_idx);
return svn_error_return(svn_error_compose_create(err1, err2));
}
@@ -5136,9 +5112,6 @@ set_changelist_txn(void *baton,
SVN_ERR(svn_sqlite__step_done(stmt));
}
- /* Drop the targets tree table. */
- SVN_ERR(svn_sqlite__exec_statements(wcroot->sdb, STMT_DROP_TARGETS_LIST));
-
return SVN_NO_ERROR;
}
@@ -5204,8 +5177,6 @@ svn_wc__db_op_set_changelist(svn_wc__db_
const char *local_relpath;
struct set_changelist_baton_t scb = { new_changelist, changelist_filter,
depth };
- int final_queries[] = { STMT_DROP_CHANGELIST_LIST, STMT_DROP_TARGETS_LIST,
- -1 };
SVN_ERR_ASSERT(svn_dirent_is_absolute(local_abspath));
@@ -5229,7 +5200,7 @@ svn_wc__db_op_set_changelist(svn_wc__db_
do_changelist_notify, NULL,
cancel_func, cancel_baton,
notify_func, notify_baton,
- run_final_query, final_queries,
+ STMT_FINALIZE_CHANGELIST,
scratch_pool));
}
@@ -6390,7 +6361,6 @@ svn_wc__db_op_delete(svn_wc__db_t *db,
svn_wc__db_wcroot_t *wcroot;
const char *local_relpath;
struct op_delete_baton_t odb;
- int final_queries[] = { STMT_DROP_DELETE_LIST, -1 };
SVN_ERR_ASSERT(svn_dirent_is_absolute(local_abspath));
@@ -6413,7 +6383,7 @@ svn_wc__db_op_delete(svn_wc__db_t *db,
do_delete_notify, NULL,
cancel_func, cancel_baton,
notify_func, notify_baton,
- run_final_query, final_queries,
+ STMT_FINALIZE_DELETE,
scratch_pool));
}