You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by rh...@apache.org on 2012/05/22 00:10:03 UTC
svn commit: r1341228 - /subversion/trunk/subversion/libsvn_wc/wc_db.c
Author: rhuijben
Date: Mon May 21 22:10:02 2012
New Revision: 1341228
URL: http://svn.apache.org/viewvc?rev=1341228&view=rev
Log:
* subversion/libsvn_wc/wc_db.c
(insert_base_node): Only check for existing BASE nodes if we intend to
do something with the result. This avoids a cheap query (inside an
existing transaction) for every node on checkout.
Modified:
subversion/trunk/subversion/libsvn_wc/wc_db.c
Modified: subversion/trunk/subversion/libsvn_wc/wc_db.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/wc_db.c?rev=1341228&r1=1341227&r2=1341228&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/wc_db.c (original)
+++ subversion/trunk/subversion/libsvn_wc/wc_db.c Mon May 21 22:10:02 2012
@@ -784,7 +784,6 @@ insert_base_node(void *baton,
svn_sqlite__stmt_t *stmt;
svn_filesize_t recorded_size = SVN_INVALID_FILESIZE;
apr_int64_t recorded_mod_time;
- svn_boolean_t have_row;
/* The directory at the WCROOT has a NULL parent_relpath. Otherwise,
bind the appropriate parent_relpath. */
@@ -802,21 +801,21 @@ insert_base_node(void *baton,
/* ### we can't handle this right now */
SVN_ERR_ASSERT(pibb->conflict == NULL);
- SVN_ERR(svn_sqlite__get_statement(&stmt, wcroot->sdb,
- STMT_SELECT_BASE_NODE));
- SVN_ERR(svn_sqlite__bindf(stmt, "is", wcroot->wc_id, local_relpath));
- SVN_ERR(svn_sqlite__step(&have_row, stmt));
- if (have_row)
+ if (pibb->keep_recorded_info)
{
- /* A BASE node already exists. */
- if (pibb->keep_recorded_info)
+ svn_boolean_t have_row;
+ SVN_ERR(svn_sqlite__get_statement(&stmt, wcroot->sdb,
+ STMT_SELECT_BASE_NODE));
+ SVN_ERR(svn_sqlite__bindf(stmt, "is", wcroot->wc_id, local_relpath));
+ SVN_ERR(svn_sqlite__step(&have_row, stmt));
+ if (have_row)
{
/* Preserve size and modification time if caller asked us to. */
recorded_size = get_recorded_size(stmt, 6);
recorded_mod_time = svn_sqlite__column_int64(stmt, 12);
}
+ SVN_ERR(svn_sqlite__reset(stmt));
}
- SVN_ERR(svn_sqlite__reset(stmt));
SVN_ERR(svn_sqlite__get_statement(&stmt, wcroot->sdb, STMT_INSERT_NODE));
SVN_ERR(svn_sqlite__bindf(stmt, "isdsisr"