You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2010/10/30 16:20:18 UTC
svn commit: r1029078 [2/5] - in /subversion/branches/performance: ./
build/ac-macros/ subversion/bindings/javahl/native/
subversion/bindings/javahl/src/org/apache/subversion/javahl/
subversion/bindings/javahl/src/org/tigris/subversion/javahl/ subversio...
Modified: subversion/branches/performance/subversion/libsvn_wc/wc-queries.sql
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/libsvn_wc/wc-queries.sql?rev=1029078&r1=1029077&r2=1029078&view=diff
==============================================================================
--- subversion/branches/performance/subversion/libsvn_wc/wc-queries.sql (original)
+++ subversion/branches/performance/subversion/libsvn_wc/wc-queries.sql Sat Oct 30 14:20:17 2010
@@ -74,7 +74,7 @@ LIMIT 1;
-- STMT_SELECT_ACTUAL_NODE
SELECT prop_reject, changelist, conflict_old, conflict_new,
-conflict_working, tree_conflict_data, properties
+conflict_working, tree_conflict_data, properties, conflict_data
FROM actual_node
WHERE wc_id = ?1 AND local_relpath = ?2;
@@ -94,7 +94,8 @@ WHERE wc_id = ?1 AND parent_relpath = ?2
-- STMT_SELECT_ACTUAL_CHILDREN_INFO
SELECT prop_reject, changelist, conflict_old, conflict_new,
-conflict_working, tree_conflict_data, properties, local_relpath
+conflict_working, tree_conflict_data, properties, local_relpath,
+conflict_data
FROM actual_node
WHERE wc_id = ?1 AND parent_relpath = ?2;
@@ -220,6 +221,15 @@ WHERE wc_id = ?1 AND local_relpath = ?2
AND op_depth = (SELECT MAX(op_depth) FROM nodes
WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth > 0);
+-- STMT_UPDATE_ACTUAL_CONFLICT_DATA
+UPDATE actual_node SET conflict_data = ?3
+WHERE wc_id = ?1 AND local_relpath = ?2;
+
+-- STMT_INSERT_ACTUAL_CONFLICT_DATA
+INSERT INTO actual_node (
+ wc_id, local_relpath, conflict_data, parent_relpath)
+VALUES (?1, ?2, ?3, ?4);
+
-- STMT_UPDATE_ACTUAL_TREE_CONFLICTS
UPDATE actual_node SET tree_conflict_data = ?3
WHERE wc_id = ?1 AND local_relpath = ?2;
@@ -263,6 +273,20 @@ REPLACE INTO actual_node (
wc_id, local_relpath, parent_relpath, changelist)
VALUES (?1, ?2, ?3, ?4);
+-- STMT_DELETE_ACTUAL_EMPTY
+DELETE FROM actual_node
+WHERE wc_id = ?1 AND local_relpath = ?2
+ AND properties IS NULL
+ AND conflict_old IS NULL
+ AND conflict_new IS NULL
+ AND prop_reject IS NULL
+ AND changelist IS NULL
+ AND text_mod IS NULL
+ AND tree_conflict_data IS NULL
+ AND older_checksum IS NULL
+ AND right_checksum IS NULL
+ AND left_checksum IS NULL;
+
-- STMT_DELETE_BASE_NODE
DELETE FROM nodes
WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0;
@@ -284,6 +308,11 @@ DELETE FROM actual_node
WHERE wc_id = ?1 AND local_relpath = ?2
AND changelist IS NULL;
+-- STMT_DELETE_NOT_PRESENT_NODES_RECURSIVE
+DELETE FROM nodes
+WHERE wc_id = ?1 AND local_relpath LIKE ?2 ESCAPE '#' AND op_depth = ?3
+ AND presence = 'not-present';
+
-- STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST
UPDATE actual_node
SET properties = NULL,
@@ -388,13 +417,13 @@ WHERE wc_id = ?1 AND parent_relpath = ?2
NOT ((prop_reject IS NULL) AND (conflict_old IS NULL)
AND (conflict_new IS NULL) AND (conflict_working IS NULL))
--- STMT_SELECT_ACTUAL_TREE_CONFLICT
-SELECT tree_conflict_data
+-- STMT_SELECT_ACTUAL_CHILDREN_TREE_CONFLICT
+SELECT local_relpath, conflict_data
FROM actual_node
-WHERE wc_id = ?1 AND local_relpath = ?2;
+WHERE wc_id = ?1 AND parent_relpath = ?2 AND conflict_data IS NOT NULL;
-- STMT_SELECT_CONFLICT_DETAILS
-SELECT prop_reject, conflict_old, conflict_new, conflict_working
+SELECT prop_reject, conflict_old, conflict_new, conflict_working, conflict_data
FROM actual_node
WHERE wc_id = ?1 AND local_relpath = ?2;
@@ -480,13 +509,9 @@ WHERE wc_id = ?1 AND local_relpath = ?2;
AND op_depth = (SELECT MAX(op_depth) FROM nodes
WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth > 0);
--- STMT_SELECT_WORKING_OP_DEPTH_RECURSIVE
-SELECT local_relpath, op_depth, presence FROM nodes as node
-WHERE wc_id = ?1 AND local_relpath LIKE ?2 ESCAPE '#'
- AND op_depth = (SELECT MAX(op_depth) FROM nodes
- WHERE op_depth > 0
- AND wc_id = node.wc_id
- AND local_relpath = node.local_relpath);
+-- STMT_UPDATE_OP_DEPTH_RECURSIVE
+UPDATE nodes SET op_depth = ?3
+WHERE wc_id = ?1 AND local_relpath LIKE ?2 ESCAPE '#' AND op_depth = ?3 + 1;
-- STMT_UPDATE_OP_DEPTH
UPDATE nodes SET op_depth = ?4
@@ -510,6 +535,79 @@ SELECT 1 FROM nodes WHERE wc_id = ?1 AND
WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth > 0);
+-- STMT_COPY_NODES_ROW
+INSERT OR REPLACE INTO nodes (
+ wc_id, local_relpath, op_depth, parent_relpath,
+ repos_id, repos_path, revision, presence, /* moved_here, moved_to, */
+ kind, properties, depth, checksum, symlink_target,
+ changed_revision, changed_date, changed_author,
+ translated_size, last_mod_time /* dav_cache, file_external */ )
+SELECT wc_id,
+ ?4 /*dst_relpath*/,
+ ?6 /*dst_op_depth*/,
+ ?5 /*dst_parent_*/,
+ repos_id, repos_path, revision, presence, /* moved_here, moved_to, */
+ kind, properties, depth, checksum, symlink_target,
+ changed_revision, changed_date, changed_author,
+ translated_size, last_mod_time /* dav_cache, file_external */
+FROM nodes
+WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3;
+
+-- STMT_COPY_NODES_AT_SAME_OP_DEPTH
+INSERT OR REPLACE INTO nodes (
+ wc_id, local_relpath, op_depth, parent_relpath,
+ repos_id, repos_path, revision, presence, /* moved_here, moved_to, */
+ kind, properties, depth, checksum, symlink_target,
+ changed_revision, changed_date, changed_author,
+ translated_size, last_mod_time /* dav_cache, file_external */ )
+SELECT wc_id,
+ ?4 /*dst_relpath*/ || SUBSTR(local_relpath, ?6 /*LEN(src_relpath)+1*/),
+ ?5 /*dst_depth*/,
+ ?4 /*dst_relpath*/ || SUBSTR(parent_relpath, ?6 /*LEN(src_relpath)+1*/),
+ repos_id, repos_path, revision, presence, /* moved_here, moved_to, */
+ kind, properties, depth, checksum, symlink_target,
+ changed_revision, changed_date, changed_author,
+ translated_size, last_mod_time /* dav_cache, file_external */
+FROM nodes
+WHERE wc_id = ?1 AND local_relpath LIKE ?2 ESCAPE '#' AND op_depth = ?3;
+
+-- STMT_COPY_NODES_AT_GREATER_OP_DEPTH
+INSERT OR REPLACE INTO nodes (
+ wc_id, local_relpath, op_depth, parent_relpath,
+ repos_id, repos_path, revision, presence, /* moved_here, moved_to, */
+ kind, properties, depth, checksum, symlink_target,
+ changed_revision, changed_date, changed_author,
+ translated_size, last_mod_time /* dav_cache, file_external */ )
+SELECT wc_id,
+ ?4 /*dst_relpath*/ || SUBSTR(local_relpath, ?6 /*LEN(src_relpath)+1*/),
+ op_depth + ?5 /*dst_depth*/ - ?3 /*src_depth*/,
+ ?4 /*dst_relpath*/ || SUBSTR(parent_relpath, ?6 /*LEN(src_relpath)+1*/),
+ repos_id, repos_path, revision, presence, /* moved_here, moved_to, */
+ kind, properties, depth, checksum, symlink_target,
+ changed_revision, changed_date, changed_author,
+ translated_size, last_mod_time /* dav_cache, file_external */
+FROM nodes
+WHERE wc_id = ?1 AND local_relpath LIKE ?2 ESCAPE '#' AND op_depth > ?3;
+
+-- STMT_COPY_ACTUAL_NODE_ROWS
+INSERT OR REPLACE INTO actual_node (
+ wc_id, local_relpath, parent_relpath, properties,
+ conflict_old, conflict_new, conflict_working,
+ prop_reject, changelist, text_mod, tree_conflict_data )
+SELECT wc_id,
+ ?4 /*dst_relpath*/ || SUBSTR(local_relpath, ?6 /*LEN(src_relpath)+1*/),
+ ?5 /*dst_parent_*/ || SUBSTR(parent_relpath, ?7 /*LEN(src_parent_)+1*/),
+ properties,
+ conflict_old, conflict_new, conflict_working,
+ prop_reject, changelist, text_mod, tree_conflict_data
+FROM actual_node
+WHERE wc_id = ?1 AND (local_relpath = ?2 OR local_relpath LIKE ?3 ESCAPE '#');
+
+-- STMT_SELECT_ABSENT_NODES
+SELECT local_relpath FROM nodes
+WHERE wc_id = ?1 AND (local_relpath = ?2 OR local_relpath LIKE ?3 ESCAPE '#')
+ AND op_depth = 0 AND presence = 'absent' LIMIT 1;
+
/* ### Why can't this query not just use the BASE repository
location values, instead of taking 3 additional parameters?! */
-- STMT_INSERT_WORKING_NODE_COPY_FROM_BASE