You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by eh...@apache.org on 2010/08/27 12:37:41 UTC
svn commit: r990089 - in /subversion/trunk/subversion/libsvn_wc:
wc-queries.sql wc_db.c
Author: ehu
Date: Fri Aug 27 10:37:41 2010
New Revision: 990089
URL: http://svn.apache.org/viewvc?rev=990089&view=rev
Log:
Create two more wc db statements replacing a single WORKING_NODE table
update to update WORKING_NODE and NODE_DATA.
* subversion/libsvn_wc/wc-queries.sql:
(STMT_INSERT_WORKING_NODE_DATA_NORMAL_FROM_BASE_NODE_1,
STMT_INSERT_WORKING_NODE_DATA_NORMAL_FROM_BASE_NODE_2):
New queries to eventually replace
STMT_INSERT_WORKING_NODE_NORMAL_FROM_BASE_NODE.
* subversion/libsvn_wc/wc_db.c
(make_copy_txn): Use new queries.
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=990089&r1=990088&r2=990089&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/wc-queries.sql (original)
+++ subversion/trunk/subversion/libsvn_wc/wc-queries.sql Fri Aug 27 10:37:41 2010
@@ -534,6 +534,34 @@ SELECT wc_id, local_relpath, parent_relp
repos_relpath, revnum FROM BASE_NODE
WHERE wc_id = ?1 AND local_relpath = ?2;
+
+-- STMT_INSERT_WORKING_NODE_DATA_NORMAL_FROM_BASE_NODE_1
+INSERT INTO NODE_DATA (
+ wc_id, local_relpath, op_depth, parent_relpath, presence, kind, checksum,
+ changed_revision, changed_date, changed_author, depth, symlink_target,
+ properties, original_repos_id, original_repos_path, original_revision )
+SELECT n.wc_id, n.local_relpath, ?3 as op_depth, n.parent_relpath, 'normal',
+ n.kind,
+ n.checksum, n.changed_revision, n.changed_date, n.changed_author, n.depth,
+ n.symlink_target, n.properties, b.repos_id as original_repos_id,
+ b.repos_relpath as original_repos_relpath, b.revnum as original_revision
+FROM BASE_NODE as b INNER JOIN NODE_DATA as n
+ ON b.wc_id = n.wc_id
+ AND b.local_relpath = n.local_relpath
+ AND n.op_depth = 0
+WHERE n.wc_id = ?1 AND n.local_relpath = ?2;
+
+
+-- STMT_INSERT_WORKING_NODE_DATA_NORMAL_FROM_BASE_NODE_2
+INSERT INTO WORKING_NODE (
+ wc_id, local_relpath, parent_relpath, translated_size, last_mod_time )
+SELECT wc_id, local_relpath, parent_relpath, translated_size, last_mod_time
+FROM BASE_NODE
+WHERE wc_id = ?1 AND local_relpath = ?2;
+
+
+
+
-- STMT_INSERT_WORKING_NODE_NOT_PRESENT_FROM_BASE_NODE
INSERT INTO WORKING_NODE (
wc_id, local_relpath, parent_relpath, presence, kind, changed_rev,
Modified: subversion/trunk/subversion/libsvn_wc/wc_db.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/wc_db.c?rev=990089&r1=990088&r2=990089&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/wc_db.c (original)
+++ subversion/trunk/subversion/libsvn_wc/wc_db.c Fri Aug 27 10:37:41 2010
@@ -812,6 +812,7 @@ copy_working_from_base(void *baton,
}
+
static svn_error_t *
insert_incomplete_working_children(svn_sqlite__db_t *sdb,
apr_int64_t wc_id,
@@ -8836,6 +8837,34 @@ make_copy_txn(void *baton,
mcb->local_relpath));
SVN_ERR(svn_sqlite__step_done(stmt));
+
+#ifdef SVN_WC__NODE_DATA
+ SVN_ERR(svn_sqlite__get_statement(
+ &stmt, sdb,
+ STMT_INSERT_WORKING_NODE_DATA_NORMAL_FROM_BASE_NODE_1));
+
+ SVN_ERR(svn_sqlite__bindf(stmt, "isi",
+ mcb->pdh->wcroot->wc_id,
+ mcb->local_relpath,
+ (*mcb->local_relpath == '\0') ? 1 : 2));
+
+ SVN_ERR(svn_sqlite__step_done(stmt));
+
+#if 0
+ /* ### NODE_DATA we can't enable the bit below until we stop
+ running STMT_INSERT_WORKING_NODE_NORMAL_FROM_BASE_NODE above */
+ SVN_ERR(svn_sqlite__get_statement(
+ &stmt, sdb,
+ STMT_INSERT_WORKING_NODE_DATA_NORMAL_FROM_BASE_NODE_2));
+
+ SVN_ERR(svn_sqlite__bindf(stmt, "is",
+ mcb->pdh->wcroot->wc_id,
+ mcb->local_relpath));
+
+ SVN_ERR(svn_sqlite__step_done(stmt));
+#endif
+#endif
+
}
else if (add_working_not_present)
{
@@ -8944,6 +8973,32 @@ make_copy_txn(void *baton,
SVN_ERR(svn_sqlite__bindf(stmt, "is",
pdh->wcroot->wc_id, local_relpath));
SVN_ERR(svn_sqlite__step_done(stmt));
+
+#ifdef SVN_WC__NODE_DATA
+ SVN_ERR(svn_sqlite__get_statement(
+ &stmt, sdb,
+ STMT_INSERT_WORKING_NODE_DATA_NORMAL_FROM_BASE_NODE_1));
+
+ SVN_ERR(svn_sqlite__bindf(stmt, "isi",
+ pdh->wcroot->wc_id, local_relpath,
+ (apr_int64_t)2));
+
+ SVN_ERR(svn_sqlite__step_done(stmt));
+
+#if 0
+ /* ### NODE_DATA we can't enable the bit below until we stop
+ running STMT_INSERT_WORKING_NODE_NORMAL_FROM_BASE_NODE above */
+ SVN_ERR(svn_sqlite__get_statement(
+ &stmt, sdb,
+ STMT_INSERT_WORKING_NODE_DATA_NORMAL_FROM_BASE_NODE_2));
+
+ SVN_ERR(svn_sqlite__bindf(stmt, "is",
+ pdh->wcroot->wc_id, local_relpath));
+
+ SVN_ERR(svn_sqlite__step_done(stmt));
+#endif
+#endif
+
}
else if (add_working_not_present)
{