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/09/06 16:00:34 UTC
svn commit: r993032 - in /subversion/trunk/subversion/libsvn_wc:
wc-queries.sql wc_db.c
Author: ehu
Date: Mon Sep 6 14:00:33 2010
New Revision: 993032
URL: http://svn.apache.org/viewvc?rev=993032&view=rev
Log:
Add NODES query.
* subversion/libsvn_wc/wc-queries.sql
(STMT_INSERT_NODE): New.
* subversion/libsvn_wc/wc_db.c (insert_base_node): Convert
SVN_WC__NODE_DATA block to SVN_WC__NODES. Mark BASE_NODE block
using SVN_WC__NODES_ONLY.
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=993032&r1=993031&r2=993032&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/wc-queries.sql (original)
+++ subversion/trunk/subversion/libsvn_wc/wc-queries.sql Mon Sep 6 14:00:33 2010
@@ -77,6 +77,15 @@ insert or replace into base_node (
values (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10, ?11, ?12, ?13, ?14,
?15, ?16, ?17);
+-- STMT_INSERT_NODE
+insert or replace into nodes (
+ wc_id, local_relpath, op_depth, parent_relpath, repos_id, repos_relpath,
+ revision, presence, depth, kind, changed_revision, changed_date,
+ changed_author, checksum, properties, translated_size, last_mod_time,
+ dav_cache, symlink_target )
+values (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10, ?11, ?12, ?13, ?14,
+ ?15, ?16, ?17, ?18, ?19);
+
-- STMT_INSERT_NODE_DATA
insert or replace into node_data (
wc_id, local_relpath, op_depth, parent_relpath, presence, kind,
Modified: subversion/trunk/subversion/libsvn_wc/wc_db.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/wc_db.c?rev=993032&r1=993031&r2=993032&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/wc_db.c (original)
+++ subversion/trunk/subversion/libsvn_wc/wc_db.c Mon Sep 6 14:00:33 2010
@@ -623,7 +623,7 @@ insert_base_node(void *baton, svn_sqlite
{
const insert_base_baton_t *pibb = baton;
svn_sqlite__stmt_t *stmt;
-#ifdef SVN_WC__NODE_DATA
+#ifdef SVN_WC__NODES
svn_sqlite__stmt_t *stmt_node;
#endif
/* The directory at the WCROOT has a NULL parent_relpath. Otherwise,
@@ -635,6 +635,7 @@ insert_base_node(void *baton, svn_sqlite
/* ### we can't handle this right now */
SVN_ERR_ASSERT(pibb->conflict == NULL);
+#ifndef SVN_WC__NODES_ONLY
SVN_ERR(svn_sqlite__get_statement(&stmt, sdb, STMT_INSERT_BASE_NODE));
SVN_ERR(svn_sqlite__bindf(stmt, "isisstti",
pibb->wc_id, pibb->local_relpath,
@@ -677,43 +678,31 @@ insert_base_node(void *baton, svn_sqlite
scratch_pool));
SVN_ERR(svn_sqlite__insert(NULL, stmt));
+#endif
-#ifdef SVN_WC__NODE_DATA
- SVN_ERR(svn_sqlite__get_statement(&stmt_node, sdb, STMT_INSERT_NODE_DATA));
- SVN_ERR(svn_sqlite__bindf(stmt_node, "isistt",
+#ifdef SVN_WC__NODES
+ SVN_ERR(svn_sqlite__get_statement(&stmt_node, sdb, STMT_INSERT_NODE));
+ SVN_ERR(svn_sqlite__bindf(stmt_node, "isisnnn" /* No repos rev, id, path */
+ "tstrssnnnnns",
pibb->wc_id, pibb->local_relpath,
(apr_int64_t)0, /* op_depth is 0 for base */
parent_relpath,
presence_map, pibb->status,
- kind_map, pibb->kind));
-
- if (SVN_IS_VALID_REVNUM(pibb->changed_rev))
- SVN_ERR(svn_sqlite__bind_int64(stmt_node, 7, pibb->changed_rev));
- if (pibb->changed_date)
- SVN_ERR(svn_sqlite__bind_int64(stmt_node, 8, pibb->changed_date));
- if (pibb->changed_author)
- SVN_ERR(svn_sqlite__bind_text(stmt_node, 9, pibb->changed_author));
+ (pibb->kind == svn_wc__db_kind_dir) ?
+ svn_depth_to_word(pibb->depth) : NULL,
+ kind_map, pibb->kind,
+ pibb->changed_rev,
+ pibb->changed_date,
+ pibb->changed_author,
+ (pibb->kind == svn_wc__db_kind_symlink) ?
+ pibb->target : NULL));
- if (pibb->kind == svn_wc__db_kind_dir)
- {
- SVN_ERR(svn_sqlite__bind_text(stmt_node, 10,
- svn_depth_to_word(pibb->depth)));
- }
- else if (pibb->kind == svn_wc__db_kind_file)
- {
- SVN_ERR(svn_sqlite__bind_checksum(stmt_node, 11, pibb->checksum,
- scratch_pool));
- }
- else if (pibb->kind == svn_wc__db_kind_symlink)
- {
- /* Note: incomplete nodes may have a NULL target. */
- if (pibb->target)
- SVN_ERR(svn_sqlite__bind_text(stmt_node, 12, pibb->target));
- }
- /* Don't bind original_repos_id, original_repos_path and original_revision */
+ if (pibb->kind == svn_wc__db_kind_file)
+ SVN_ERR(svn_sqlite__bind_checksum(stmt_node, 14, pibb->checksum,
+ scratch_pool));
- SVN_ERR(svn_sqlite__bind_properties(stmt_node, 16, pibb->props,
+ SVN_ERR(svn_sqlite__bind_properties(stmt_node, 15, pibb->props,
scratch_pool));
SVN_ERR(svn_sqlite__insert(NULL, stmt_node));
@@ -9604,12 +9593,12 @@ svn_wc__db_temp_op_set_file_external(svn
SVN_ERR(svn_sqlite__insert(NULL, stmt));
-#ifdef SVN_WC__NODE_DATA
+#ifdef SVN_WC__NODES
SVN_ERR(svn_sqlite__get_statement(&stmt, pdh->wcroot->sdb,
- STMT_INSERT_NODE_DATA));
+ STMT_INSERT_NODE));
- SVN_ERR(svn_sqlite__bindf(stmt, "isistt",
+ SVN_ERR(svn_sqlite__bindf(stmt, "isisnnntnt",
pdh->wcroot->wc_id,
local_relpath,
(apr_int64_t)0, /* op_depth == BASE */