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 2010/10/08 22:13:31 UTC
svn commit: r1006005 [4/10] - in /subversion/branches/object-model: ./
contrib/client-side/ notes/wc-ng/ subversion/bindings/javahl/native/
subversion/bindings/javahl/src/org/apache/subversion/javahl/
subversion/bindings/javahl/src/org/tigris/subversio...
Modified: subversion/branches/object-model/subversion/libsvn_wc/wc-queries.sql
URL: http://svn.apache.org/viewvc/subversion/branches/object-model/subversion/libsvn_wc/wc-queries.sql?rev=1006005&r1=1006004&r2=1006005&view=diff
==============================================================================
--- subversion/branches/object-model/subversion/libsvn_wc/wc-queries.sql (original)
+++ subversion/branches/object-model/subversion/libsvn_wc/wc-queries.sql Fri Oct 8 20:13:26 2010
@@ -26,14 +26,26 @@
/* these are used in wc_db.c */
--- STMT_SELECT_BASE_NODE
-SELECT repos_id, repos_relpath, presence, kind, revnum, checksum,
- translated_size, changed_rev, changed_date, changed_author, depth,
+-- STMT_SELECT_NODE_INFO
+SELECT op_depth, repos_id, repos_path, presence, kind, revision, checksum,
+ translated_size, changed_revision, changed_date, changed_author, depth,
symlink_target, last_mod_time, properties
-FROM base_node
-WHERE wc_id = ?1 AND local_relpath = ?2;
+FROM nodes
+WHERE wc_id = ?1 AND local_relpath = ?2
+ORDER BY op_depth DESC;
+
+-- STMT_SELECT_NODE_INFO_WITH_LOCK
+SELECT op_depth, nodes.repos_id, nodes.repos_path, presence, kind, revision,
+ checksum, translated_size, changed_revision, changed_date, changed_author,
+ depth, symlink_target, last_mod_time, properties, lock_token, lock_owner,
+ lock_comment, lock_date
+FROM nodes
+LEFT OUTER JOIN lock ON nodes.repos_id = lock.repos_id
+ AND nodes.repos_path = lock.repos_relpath
+WHERE wc_id = ?1 AND local_relpath = ?2
+ORDER BY op_depth DESC;
--- STMT_SELECT_BASE_NODE_1
+-- STMT_SELECT_BASE_NODE
SELECT repos_id, repos_path, presence, kind, revision, checksum,
translated_size, changed_revision, changed_date, changed_author, depth,
symlink_target, last_mod_time, properties
@@ -41,16 +53,6 @@ FROM nodes
WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0;
-- STMT_SELECT_BASE_NODE_WITH_LOCK
-SELECT base_node.repos_id, base_node.repos_relpath, presence, kind,
- revnum, checksum, translated_size, changed_rev, changed_date,
- changed_author, depth, symlink_target, last_mod_time, properties,
- lock_token, lock_owner, lock_comment, lock_date
-FROM base_node
-LEFT OUTER JOIN lock ON base_node.repos_id = lock.repos_id
- AND base_node.repos_relpath = lock.repos_relpath
-WHERE wc_id = ?1 AND local_relpath = ?2;
-
--- STMT_SELECT_BASE_NODE_WITH_LOCK_1
SELECT nodes.repos_id, nodes.repos_path, presence, kind, revision,
checksum, translated_size, changed_revision, changed_date, changed_author,
depth, symlink_target, last_mod_time, properties, lock_token, lock_owner,
@@ -62,14 +64,6 @@ WHERE wc_id = ?1 AND local_relpath = ?2
-- STMT_SELECT_WORKING_NODE
SELECT presence, kind, checksum, translated_size,
- changed_rev, changed_date, changed_author, depth, symlink_target,
- copyfrom_repos_id, copyfrom_repos_path, copyfrom_revnum,
- moved_here, moved_to, last_mod_time, properties
-FROM working_node
-WHERE wc_id = ?1 AND local_relpath = ?2;
-
--- STMT_SELECT_WORKING_NODE_1
-SELECT presence, kind, checksum, translated_size,
changed_revision, changed_date, changed_author, depth, symlink_target,
repos_id, repos_path, revision,
moved_here, moved_to, last_mod_time, properties
@@ -96,14 +90,6 @@ SELECT id FROM repository WHERE root = ?
-- STMT_INSERT_REPOSITORY
INSERT INTO repository (root, uuid) VALUES (?1, ?2);
--- STMT_INSERT_BASE_NODE
-INSERT OR replace INTO base_node (
- wc_id, local_relpath, repos_id, repos_relpath, parent_relpath, presence,
- kind, revnum, properties, changed_rev, changed_date, changed_author,
- depth, checksum, translated_size, symlink_target, dav_cache)
-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_path,
@@ -113,97 +99,31 @@ INSERT OR REPLACE INTO nodes (
VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10, ?11, ?12, ?13, ?14,
?15, ?16, ?17, ?18, ?19);
--- STMT_INSERT_BASE_NODE_INCOMPLETE
-INSERT OR IGNORE INTO base_node (
- wc_id, local_relpath, parent_relpath, presence, kind, revnum)
-VALUES (?1, ?2, ?3, 'incomplete', 'unknown', ?4);
-
--- STMT_INSERT_BASE_NODE_INCOMPLETE_DIR
-INSERT OR IGNORE INTO base_node (
- wc_id, local_relpath, repos_id, repos_relpath, parent_relpath, presence,
- kind, revnum, depth)
-VALUES (?1, ?2, ?3, ?4, ?5, 'incomplete', 'dir', ?6, ?7);
-
--- STMT_INSERT_WORKING_NODE_INCOMPLETE
-INSERT OR IGNORE INTO working_node (
- wc_id, local_relpath, parent_relpath, presence, kind)
-VALUES (?1, ?2, ?3, 'incomplete', 'unknown');
-
--- STMT_COUNT_BASE_NODE_CHILDREN
-SELECT COUNT(*) FROM base_node
-WHERE wc_id = ?1 AND parent_relpath = ?2;
-
--- STMT_COUNT_BASE_NODE_CHILDREN_1
-SELECT COUNT(*) FROM nodes
-WHERE wc_id = ?1 AND parent_relpath = ?2 AND op_depth = 0;
-
--- STMT_COUNT_WORKING_NODE_CHILDREN
-SELECT COUNT(*) FROM working_node
-WHERE wc_id = ?1 AND parent_relpath = ?2;
-
--- STMT_COUNT_WORKING_NODE_CHILDREN_1
-SELECT COUNT(*) FROM (SELECT DISTINCT local_relpath FROM nodes
- WHERE wc_id = ?1 AND parent_relpath = ?2
- AND op_depth > 0);
-
-- STMT_SELECT_BASE_NODE_CHILDREN
-SELECT local_relpath FROM base_node
-WHERE wc_id = ?1 AND parent_relpath = ?2;
-
--- STMT_SELECT_BASE_NODE_CHILDREN_1
SELECT local_relpath FROM nodes
WHERE wc_id = ?1 AND parent_relpath = ?2 AND op_depth = 0;
--- STMT_SELECT_WORKING_NODE_CHILDREN
-SELECT local_relpath FROM working_node
+-- STMT_SELECT_NODE_CHILDREN
+SELECT local_relpath FROM nodes
WHERE wc_id = ?1 AND parent_relpath = ?2;
--- STMT_SELECT_WORKING_NODE_CHILDREN_1
-SELECT DISTINCT local_relpath FROM nodes
-WHERE wc_id = ?1 AND parent_relpath = ?2 AND op_depth > 0;
-
--- STMT_SELECT_WORKING_IS_FILE
-SELECT kind == 'file' FROM working_node
-WHERE wc_id = ?1 AND local_relpath = ?2;
-
--- STMT_SELECT_BASE_IS_FILE
-SELECT kind == 'file' FROM base_node
-WHERE wc_id = ?1 AND local_relpath = ?2;
-
-- STMT_SELECT_BASE_PROPS
-SELECT properties FROM base_node
-WHERE wc_id = ?1 AND local_relpath = ?2;
-
--- STMT_SELECT_BASE_PROPS_1
SELECT properties FROM nodes
WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0;
--- STMT_SELECT_WORKING_PROPS
-SELECT properties, presence FROM working_node
-WHERE wc_id = ?1 AND local_relpath = ?2;
-
--- STMT_SELECT_WORKING_PROPS_1
+-- STMT_SELECT_NODE_PROPS
SELECT properties, presence FROM nodes
-WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth > 0
-ORDER BY op_depth DESC
-LIMIT 1;
+WHERE wc_id = ?1 AND local_relpath = ?2
+ORDER BY op_depth DESC;
-- STMT_SELECT_ACTUAL_PROPS
SELECT properties FROM actual_node
WHERE wc_id = ?1 AND local_relpath = ?2;
--- STMT_UPDATE_BASE_PROPS
-UPDATE base_node SET properties = ?3
-WHERE wc_id = ?1 AND local_relpath = ?2;
-
-- STMT_UPDATE_NODE_BASE_PROPS
UPDATE nodes SET properties = ?3
WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0;
--- STMT_UPDATE_WORKING_PROPS
-UPDATE working_node SET properties = ?3
-WHERE wc_id = ?1 AND local_relpath = ?2;
-
-- STMT_UPDATE_NODE_WORKING_PROPS
UPDATE nodes SET properties = ?3
WHERE wc_id = ?1 AND local_relpath = ?2
@@ -229,26 +149,15 @@ VALUES (?1, ?2, ?3, ?4, ?5, ?6);
INSERT INTO wcroot (local_abspath)
VALUES (?1);
--- STMT_UPDATE_BASE_DAV_CACHE
-UPDATE base_node SET dav_cache = ?3
-WHERE wc_id = ?1 AND local_relpath = ?2;
-
-- STMT_UPDATE_BASE_NODE_DAV_CACHE
UPDATE nodes SET dav_cache = ?3
WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0;
-- STMT_SELECT_BASE_DAV_CACHE
-SELECT dav_cache FROM base_node
-WHERE wc_id = ?1 AND local_relpath = ?2;
+SELECT dav_cache FROM nodes
+WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0;
-- STMT_SELECT_DELETION_INFO
-SELECT base_node.presence, working_node.presence, moved_to
-FROM working_node
-LEFT OUTER JOIN base_node ON base_node.wc_id = working_node.wc_id
- AND base_node.local_relpath = working_node.local_relpath
-WHERE working_node.wc_id = ?1 AND working_node.local_relpath = ?2;
-
--- STMT_SELECT_DELETION_INFO_1
SELECT nodes_base.presence, nodes_work.presence, nodes_work.moved_to
FROM nodes nodes_work
LEFT OUTER JOIN nodes nodes_base ON nodes_base.wc_id = nodes_work.wc_id
@@ -263,30 +172,12 @@ WHERE nodes_work.wc_id = ?1 AND nodes_wo
DELETE FROM lock
WHERE repos_id = ?1 AND repos_relpath = ?2;
--- STMT_CLEAR_BASE_RECURSIVE_DAV_CACHE
-UPDATE base_node SET dav_cache = NULL
-WHERE dav_cache IS NOT NULL AND wc_id = ?1 AND
- (local_relpath = ?2 OR
- local_relpath LIKE ?3 ESCAPE '#');
-
-- STMT_CLEAR_BASE_NODE_RECURSIVE_DAV_CACHE
UPDATE nodes SET dav_cache = NULL
WHERE dav_cache IS NOT NULL AND wc_id = ?1 AND op_depth = 0 AND
(local_relpath = ?2 OR
local_relpath LIKE ?3 ESCAPE '#');
--- STMT_UPDATE_BASE_RECURSIVE_REPO
-UPDATE base_node SET repos_id = ?4
-WHERE repos_id IS NOT NULL AND wc_id = ?1 AND
- (local_relpath = ?2 OR
- local_relpath LIKE ?3 ESCAPE '#');
-
--- STMT_UPDATE_WORKING_RECURSIVE_COPYFROM_REPO
-UPDATE working_node SET copyfrom_repos_id = ?4
-WHERE copyfrom_repos_id IS NOT NULL AND wc_id = ?1 AND
- (local_relpath = ?2 OR
- local_relpath LIKE ?3 ESCAPE '#');
-
-- STMT_RECURSIVE_UPDATE_NODE_REPO
UPDATE nodes SET repos_id = ?5, dav_cache = NULL
WHERE wc_id = ?1 AND repos_id = ?4 AND
@@ -299,18 +190,10 @@ WHERE repos_id = ?1 AND
(repos_relpath = ?2 OR
repos_relpath LIKE ?3 ESCAPE '#');
--- STMT_UPDATE_BASE_FILEINFO
-UPDATE base_node SET translated_size = ?3, last_mod_time = ?4
-WHERE wc_id = ?1 AND local_relpath = ?2;
-
-- STMT_UPDATE_BASE_NODE_FILEINFO
UPDATE nodes SET translated_size = ?3, last_mod_time = ?4
WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0;
--- STMT_UPDATE_WORKING_FILEINFO
-UPDATE working_node SET translated_size = ?3, last_mod_time = ?4
-WHERE wc_id = ?1 AND local_relpath = ?2;
-
-- STMT_UPDATE_WORKING_NODE_FILEINFO
UPDATE nodes SET translated_size = ?3, last_mod_time = ?4
WHERE wc_id = ?1 AND local_relpath = ?2
@@ -363,17 +246,9 @@ REPLACE INTO actual_node (
VALUES (?1, ?2, ?3, ?4);
-- STMT_DELETE_BASE_NODE
-DELETE FROM base_node
-WHERE wc_id = ?1 AND local_relpath = ?2;
-
--- STMT_DELETE_BASE_NODE_1
DELETE FROM nodes
WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0;
--- STMT_DELETE_WORKING_NODE
-DELETE FROM working_node
-WHERE wc_id = ?1 AND local_relpath = ?2;
-
-- STMT_DELETE_WORKING_NODES
DELETE FROM nodes
WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth > 0;
@@ -386,80 +261,64 @@ WHERE wc_id = ?1 AND local_relpath = ?2;
DELETE FROM actual_node
WHERE wc_id = ?1 AND local_relpath = ?2;
--- STMT_UPDATE_BASE_DEPTH
-UPDATE base_node SET depth = ?3
-WHERE wc_id = ?1 AND local_relpath = ?2;
+-- STMT_DELETE_ACTUAL_NODE_WITHOUT_CHANGELIST
+DELETE FROM actual_node
+WHERE wc_id = ?1 AND local_relpath = ?2
+ AND changelist IS NULL;
+
+-- STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST
+UPDATE actual_node
+SET properties = NULL,
+ text_mod = NULL,
+ conflict_data = NULL,
+ tree_conflict_data = NULL,
+ conflict_old = NULL,
+ conflict_new = NULL,
+ conflict_working = NULL,
+ prop_reject = NULL,
+ older_checksum = NULL,
+ left_checksum = NULL,
+ right_checksum = NULL
+WHERE wc_id = ?1 and local_relpath = ?2;
-- STMT_UPDATE_NODE_BASE_DEPTH
UPDATE nodes SET depth = ?3
WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0;
--- STMT_UPDATE_WORKING_DEPTH
-UPDATE working_node SET depth = ?3
-WHERE wc_id = ?1 AND local_relpath = ?2;
-
-- STMT_UPDATE_NODE_WORKING_DEPTH
UPDATE nodes SET depth = ?3
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_BASE_EXCLUDED
-UPDATE base_node SET presence = 'excluded', depth = NULL
-WHERE wc_id = ?1 AND local_relpath = ?2;
-
-- STMT_UPDATE_NODE_BASE_EXCLUDED
UPDATE nodes SET presence = 'excluded', depth = NULL
WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0;
--- STMT_UPDATE_WORKING_EXCLUDED
-UPDATE working_node SET presence = 'excluded', depth = NULL
-WHERE wc_id = ?1 AND local_relpath = ?2;
-
-- STMT_UPDATE_NODE_WORKING_EXCLUDED
UPDATE nodes SET presence = 'excluded', depth = NULL
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);
--- STMT_UPDATE_BASE_PRESENCE
-UPDATE base_node SET presence= ?3
-WHERE wc_id = ?1 AND local_relpath = ?2;
-
-- STMT_UPDATE_NODE_BASE_PRESENCE
UPDATE nodes SET presence = ?3
WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0;
--- STMT_UPDATE_BASE_PRESENCE_KIND
-UPDATE base_node SET presence = ?3, kind = ?4
-WHERE wc_id = ?1 AND local_relpath = ?2;
-
-- STMT_UPDATE_NODE_BASE_PRESENCE_KIND
UPDATE nodes SET presence = ?3, kind = ?4
WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0;
--- STMT_UPDATE_WORKING_PRESENCE
-UPDATE working_node SET presence = ?3
-WHERE wc_id = ?1 AND local_relpath =?2;
-
-- STMT_UPDATE_NODE_WORKING_PRESENCE
UPDATE nodes SET presence = ?3
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_BASE_PRESENCE_AND_REVNUM
-UPDATE base_node SET presence = ?3, revnum = ?4
-WHERE wc_id = ?1 AND local_relpath = ?2;
-
-- STMT_UPDATE_BASE_NODE_PRESENCE_AND_REVNUM
UPDATE nodes SET presence = ?3, revision = ?4
WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0;
--- STMT_UPDATE_BASE_PRESENCE_REVNUM_AND_REPOS_RELPATH
-UPDATE base_node SET presence = ?3, revnum = ?4, repos_relpath = ?5
-WHERE wc_id = ?1 AND local_relpath = ?2;
-
-- STMT_UPDATE_BASE_NODE_PRESENCE_REVNUM_AND_REPOS_PATH
UPDATE nodes SET presence = ?3, revision = ?4, repos_path = ?5
WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0;
@@ -495,19 +354,6 @@ SELECT checksum
FROM pristine
-- STMT_SELECT_ANY_PRISTINE_REFERENCE
-SELECT 1 FROM base_node
- WHERE checksum = ?1 OR checksum = ?2
-UNION ALL
-SELECT 1 FROM working_node
- WHERE checksum = ?1 OR checksum = ?2
-UNION ALL
-SELECT 1 FROM actual_node
- WHERE older_checksum = ?1 OR older_checksum = ?2
- OR left_checksum = ?1 OR left_checksum = ?2
- OR right_checksum = ?1 OR right_checksum = ?2
-LIMIT 1
-
--- STMT_SELECT_ANY_PRISTINE_REFERENCE_1
SELECT 1 FROM nodes
WHERE checksum = ?1 OR checksum = ?2
UNION ALL
@@ -566,17 +412,10 @@ WHERE wc_id = ?1 AND local_dir_relpath =
SELECT local_dir_relpath FROM wc_lock
WHERE wc_id = ?1 AND local_dir_relpath LIKE ?2 ESCAPE '#';
--- STMT_APPLY_CHANGES_TO_BASE
+-- STMT_APPLY_CHANGES_TO_BASE_NODE
/* translated_size and last_mod_time are not mentioned here because they will
be tweaked after the working-file is installed.
### what to do about file_external? */
-INSERT OR REPLACE INTO base_node (
- wc_id, local_relpath, parent_relpath, presence, kind, revnum, changed_rev,
- changed_author, properties, repos_id, repos_relpath, checksum, changed_date,
- depth, symlink_target, dav_cache)
-VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10, ?11, ?12, ?13, ?14, ?15, ?16);
-
--- STMT_APPLY_CHANGES_TO_BASE_NODE
INSERT OR REPLACE INTO nodes (
wc_id, local_relpath, op_depth, parent_relpath, repos_id, repos_path,
revision, presence, depth, kind, changed_revision, changed_date,
@@ -584,17 +423,6 @@ INSERT OR REPLACE INTO nodes (
VALUES (?1, ?2, 0,
?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10, ?11, ?12, ?13, ?14, ?15, ?16);
--- STMT_INSERT_WORKING_NODE_FROM_BASE_NODE
-INSERT INTO working_node (
- wc_id, local_relpath, parent_relpath, presence, kind, checksum,
- translated_size, changed_rev, changed_date, changed_author, depth,
- symlink_target, last_mod_time )
-SELECT wc_id, local_relpath, parent_relpath, ?3 AS presence, kind, checksum,
- translated_size, changed_rev, changed_date, changed_author, depth,
- symlink_target, last_mod_time
-FROM base_node
-WHERE wc_id = ?1 AND local_relpath = ?2;
-
-- STMT_INSERT_WORKING_NODE_FROM_BASE
INSERT INTO nodes (
wc_id, local_relpath, op_depth, parent_relpath, presence, kind, checksum,
@@ -606,19 +434,6 @@ SELECT wc_id, local_relpath, ?3 AS op_de
FROM nodes
WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0;
--- STMT_INSERT_WORKING_NODE_NORMAL_FROM_BASE_NODE
-INSERT INTO working_node (
- wc_id, local_relpath, parent_relpath, presence, kind, checksum,
- translated_size, changed_rev, changed_date, changed_author, depth,
- symlink_target, last_mod_time, properties, copyfrom_repos_id,
- copyfrom_repos_path, copyfrom_revnum )
-SELECT wc_id, local_relpath, parent_relpath, 'normal', kind, checksum,
- translated_size, changed_rev, changed_date, changed_author, depth,
- symlink_target, last_mod_time, properties, repos_id,
- repos_relpath, revnum
-FROM base_node
-WHERE wc_id = ?1 AND local_relpath = ?2;
-
-- STMT_INSERT_WORKING_NODE_NORMAL_FROM_BASE
INSERT INTO nodes (
wc_id, local_relpath, op_depth, parent_relpath, repos_id, repos_path,
@@ -633,17 +448,6 @@ FROM nodes
WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0;
--- STMT_INSERT_WORKING_NODE_NOT_PRESENT_FROM_BASE_NODE
-INSERT INTO working_node (
- wc_id, local_relpath, parent_relpath, presence, kind, changed_rev,
- changed_date, changed_author, copyfrom_repos_id,
- copyfrom_repos_path, copyfrom_revnum )
-SELECT wc_id, local_relpath, parent_relpath, 'not-present', kind, changed_rev,
- changed_date, changed_author, repos_id,
- repos_relpath, revnum
-FROM base_node
-WHERE wc_id = ?1 AND local_relpath = ?2;
-
-- STMT_INSERT_WORKING_NODE_NOT_PRESENT_FROM_BASE
INSERT INTO nodes (
wc_id, local_relpath, op_depth, parent_relpath, repos_id, repos_path,
@@ -655,10 +459,12 @@ FROM nodes
WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0;
--- ### the statement below should be setting copyfrom_revision!
+-- ### these statements below should be setting copyfrom_revision!
-- STMT_UPDATE_COPYFROM
-UPDATE working_node SET copyfrom_repos_id = ?3, copyfrom_repos_path = ?4
+UPDATE nodes SET repos_id = ?3, repos_path = ?4
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_CHILDREN_OP_DEPTH_RECURSIVE
SELECT local_relpath, op_depth FROM nodes as node
@@ -673,13 +479,6 @@ WHERE wc_id = ?1 AND local_relpath = ?2
-- STMT_UPDATE_COPYFROM_TO_INHERIT
-UPDATE working_node SET
- copyfrom_repos_id = NULL,
- copyfrom_repos_path = NULL,
- copyfrom_revnum = NULL
-WHERE wc_id = ?1 AND local_relpath = ?2;
-
--- STMT_UPDATE_COPYFROM_TO_INHERIT_1
UPDATE nodes SET
repos_id = NULL,
repos_path = NULL,
@@ -689,11 +488,6 @@ WHERE wc_id = ?1 AND local_relpath = ?2
WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth > 0);
-- STMT_DETERMINE_TREE_FOR_RECORDING
-SELECT 0 FROM base_node WHERE wc_id = ?1 AND local_relpath = ?2
-UNION
-SELECT 1 FROM working_node WHERE wc_id = ?1 AND local_relpath = ?2;
-
--- STMT_DETERMINE_TREE_FOR_RECORDING_1
SELECT 0 FROM nodes WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0
UNION
SELECT 1 FROM nodes WHERE wc_id = ?1 AND local_relpath = ?2
@@ -704,19 +498,6 @@ SELECT 1 FROM nodes WHERE wc_id = ?1 AND
/* ### 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
-INSERT OR REPLACE INTO working_node (
- wc_id, local_relpath, parent_relpath, presence, kind, checksum,
- translated_size, changed_rev, changed_date, changed_author, depth,
- symlink_target, last_mod_time, properties, copyfrom_repos_id,
- copyfrom_repos_path, copyfrom_revnum )
-SELECT wc_id, ?3 AS local_relpath, ?4 AS parent_relpath, ?5 AS presence, kind,
- checksum, translated_size, changed_rev, changed_date, changed_author, depth,
- symlink_target, last_mod_time, properties, ?6 AS copyfrom_repos_id,
- ?7 AS copyfrom_repos_path, ?8 AS copyfrom_revnum
-FROM base_node
-WHERE wc_id = ?1 AND local_relpath = ?2;
-
--- STMT_INSERT_WORKING_NODE_COPY_FROM_BASE_1
INSERT OR REPLACE INTO nodes (
wc_id, local_relpath, op_depth, parent_relpath, repos_id,
repos_path, revision, presence, depth, kind, changed_revision,
@@ -730,19 +511,6 @@ FROM nodes
WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0;
-- STMT_INSERT_WORKING_NODE_COPY_FROM_WORKING
-INSERT OR REPLACE INTO working_node (
- wc_id, local_relpath, parent_relpath, presence, kind, checksum,
- translated_size, changed_rev, changed_date, changed_author, depth,
- symlink_target, last_mod_time, properties, copyfrom_repos_id,
- copyfrom_repos_path, copyfrom_revnum )
-SELECT wc_id, ?3 AS local_relpath, ?4 AS parent_relpath, ?5 AS presence, kind,
- checksum, translated_size, changed_rev, changed_date, changed_author, depth,
- symlink_target, last_mod_time, properties, ?6 AS copyfrom_repos_id,
- ?7 AS copyfrom_repos_path, ?8 AS copyfrom_revnum
-FROM working_node
-WHERE wc_id = ?1 AND local_relpath = ?2;
-
--- STMT_INSERT_WORKING_NODE_COPY_FROM_WORKING_1
INSERT OR REPLACE INTO nodes (
wc_id, local_relpath, op_depth, parent_relpath, repos_id, repos_path,
revision, presence, depth, kind, changed_revision, changed_date,
@@ -769,18 +537,10 @@ FROM actual_node
WHERE wc_id = ?1 AND local_relpath = ?2;
-- STMT_UPDATE_BASE_REVISION
-UPDATE base_node SET revnum = ?3
-WHERE wc_id = ?1 AND local_relpath = ?2;
-
--- STMT_UPDATE_BASE_REVISION_1
UPDATE nodes SET revision = ?3
WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0;
-- STMT_UPDATE_BASE_REPOS
-UPDATE base_node SET repos_id = ?3, repos_relpath = ?4
-WHERE wc_id = ?1 AND local_relpath = ?2;
-
--- STMT_UPDATE_BASE_REPOS_1
UPDATE nodes SET repos_id = ?3, repos_path = ?4
WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0;
@@ -789,15 +549,6 @@ WHERE wc_id = ?1 AND local_relpath = ?2
/* these are used in entries.c */
-- STMT_INSERT_BASE_NODE_FOR_ENTRY
-INSERT OR REPLACE INTO base_node (
- wc_id, local_relpath, repos_id, repos_relpath, parent_relpath,
- presence,
- revnum, kind, checksum, translated_size, changed_rev, changed_date,
- changed_author, depth, last_mod_time, properties)
-VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10, ?11, ?12, ?13, ?14,
- ?15, ?16);
-
--- STMT_INSERT_BASE_NODE_FOR_ENTRY_1
/* The BASE tree has a fixed op_depth '0' */
INSERT OR REPLACE INTO nodes (
wc_id, local_relpath, op_depth, parent_relpath, repos_id, repos_path,
@@ -807,32 +558,6 @@ INSERT OR REPLACE INTO nodes (
VALUES (?1, ?2, 0, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10, ?11, ?12, ?13,
?14, ?15, ?16 );
--- STMT_INSERT_WORKING_NODE
-INSERT OR REPLACE INTO working_node (
- wc_id, local_relpath, parent_relpath, presence, kind,
- copyfrom_repos_id,
- copyfrom_repos_path, copyfrom_revnum, moved_here, moved_to, checksum,
- translated_size, changed_rev, changed_date, changed_author, depth,
- last_mod_time, properties, keep_local, symlink_target)
-VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10, ?11, ?12, ?13, ?14,
- ?15, ?16, ?17, ?18, ?19, ?20);
-
--- STMT_INSERT_WORKING_NODE_DATA_1
-INSERT OR REPLACE INTO node_data (
- wc_id, local_relpath, op_depth, parent_relpath, presence, kind,
- original_repos_id, original_repos_path, original_revision, checksum,
- changed_revision, changed_date, changed_author, depth, properties,
- symlink_target )
-VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9,
- ?10, ?11, ?12, ?13, ?14, ?15, ?16 );
-
--- STMT_INSERT_WORKING_NODE_DATA_2
-INSERT OR REPLACE INTO working_node (
- wc_id, local_relpath, parent_relpath, moved_here, moved_to, translated_size,
- last_mod_time, keep_local )
-VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8 );
-
-
-- STMT_INSERT_ACTUAL_NODE
INSERT OR REPLACE INTO actual_node (
wc_id, local_relpath, parent_relpath, properties, conflict_old,
@@ -842,27 +567,15 @@ INSERT OR REPLACE INTO actual_node (
VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10, ?11);
-- STMT_SELECT_NOT_PRESENT
-SELECT 1 FROM base_node
-WHERE wc_id = ?1 AND local_relpath = ?2 AND presence = 'not-present';
-
--- STMT_SELECT_NOT_PRESENT_1
SELECT 1 FROM nodes
WHERE wc_id = ?1 AND local_relpath = ?2 AND presence = 'not-present'
AND op_depth = 0;
-- STMT_SELECT_FILE_EXTERNAL
-SELECT file_external FROM base_node
-WHERE wc_id = ?1 AND local_relpath = ?2;
-
--- STMT_SELECT_FILE_EXTERNAL_1
SELECT file_external FROM nodes
WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0;
-- STMT_UPDATE_FILE_EXTERNAL
-UPDATE base_node SET file_external = ?3
-WHERE wc_id = ?1 AND local_relpath = ?2;
-
--- STMT_UPDATE_FILE_EXTERNAL_1
UPDATE nodes SET file_external = ?3
WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0;
@@ -889,18 +602,10 @@ UPDATE actual_node SET tree_conflict_dat
-- STMT_SELECT_ALL_FILES
/* Should this select on wc_id as well? */
-SELECT local_relpath FROM base_node
-WHERE kind = 'file' AND parent_relpath = ?1
-UNION
-SELECT local_relpath FROM working_node
+SELECT DISTINCT local_relpath FROM nodes
WHERE kind = 'file' AND parent_relpath = ?1;
-- STMT_PLAN_PROP_UPGRADE
-SELECT 0, presence, wc_id FROM base_node WHERE local_relpath = ?1
-UNION ALL
-SELECT 1, presence, wc_id FROM working_node WHERE local_relpath = ?1;
-
--- STMT_PLAN_PROP_UPGRADE_1
SELECT 0, nodes_base.presence, nodes_base.wc_id FROM nodes nodes_base
WHERE nodes_base.local_relpath = ?1 AND nodes_base.op_depth = 0
UNION ALL
Modified: subversion/branches/object-model/subversion/libsvn_wc/wc.h
URL: http://svn.apache.org/viewvc/subversion/branches/object-model/subversion/libsvn_wc/wc.h?rev=1006005&r1=1006004&r2=1006005&view=diff
==============================================================================
--- subversion/branches/object-model/subversion/libsvn_wc/wc.h (original)
+++ subversion/branches/object-model/subversion/libsvn_wc/wc.h Fri Oct 8 20:13:26 2010
@@ -121,12 +121,15 @@ extern "C" {
* All metadata is held in a single '.svn/wc.db' in the root directory of
* the working copy.
*
+ * The change from 19 to 20 introduces NODES and drops BASE_NODE and
+ * WORKING_NODE, op_depth is always 0 or 2.
+ *
* == 1.7.x shipped with format ???
*
* Please document any further format changes here.
*/
-#define SVN_WC__VERSION 19
+#define SVN_WC__VERSION 20
/* Formats <= this have no concept of "revert text-base/props". */
#define SVN_WC__NO_REVERT_FILES 4