Return-Path: X-Original-To: apmail-subversion-commits-archive@minotaur.apache.org Delivered-To: apmail-subversion-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 132B71803A for ; Sun, 14 Jun 2015 20:58:31 +0000 (UTC) Received: (qmail 76590 invoked by uid 500); 14 Jun 2015 20:58:29 -0000 Delivered-To: apmail-subversion-commits-archive@subversion.apache.org Received: (qmail 76532 invoked by uid 500); 14 Jun 2015 20:58:29 -0000 Mailing-List: contact commits-help@subversion.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@subversion.apache.org Delivered-To: mailing list commits@subversion.apache.org Received: (qmail 75767 invoked by uid 99); 14 Jun 2015 20:58:29 -0000 Received: from eris.apache.org (HELO hades.apache.org) (140.211.11.105) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 14 Jun 2015 20:58:29 +0000 Received: from hades.apache.org (localhost [127.0.0.1]) by hades.apache.org (ASF Mail Server at hades.apache.org) with ESMTP id 52747AC0B83 for ; Sun, 14 Jun 2015 20:58:29 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1685464 [21/43] - in /subversion/branches/fsx-1.10: ./ build/ build/ac-macros/ build/generator/ build/generator/templates/ contrib/client-side/svncopy/ doc/ notes/ subversion/bindings/javahl/ subversion/bindings/javahl/native/ subversion/b... Date: Sun, 14 Jun 2015 20:58:16 -0000 To: commits@subversion.apache.org From: stefan2@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20150614205829.52747AC0B83@hades.apache.org> Modified: subversion/branches/fsx-1.10/subversion/libsvn_wc/wc-metadata.sql URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/libsvn_wc/wc-metadata.sql?rev=1685464&r1=1685463&r2=1685464&view=diff ============================================================================== --- subversion/branches/fsx-1.10/subversion/libsvn_wc/wc-metadata.sql (original) +++ subversion/branches/fsx-1.10/subversion/libsvn_wc/wc-metadata.sql Sun Jun 14 20:58:10 2015 @@ -108,7 +108,7 @@ CREATE TABLE PRISTINE ( ); CREATE INDEX I_PRISTINE_MD5 ON PRISTINE (md5_checksum); - + /* ------------------------------------------------------------------------- */ /* The ACTUAL_NODE table describes text changes and property changes @@ -150,7 +150,7 @@ CREATE TABLE ACTUAL_NODE ( /* if not NULL, this node is part of a changelist. */ changelist TEXT, - + /* ### need to determine values. "unknown" (no info), "admin" (they ### used something like 'svn edit'), "noticed" (saw a mod while ### scanning the filesystem). */ @@ -170,7 +170,7 @@ CREATE TABLE ACTUAL_NODE ( /* stsp: This is meant for text conflicts, right? What about property conflicts? Why do we need these in a column to refer to the pristine store? Can't we just parse the checksums from - conflict_data as well? + conflict_data as well? rhuijben: Because that won't allow triggers to handle refcounts. We would have to scan all conflict skels before cleaning up the a single file from the pristine stor */ @@ -200,7 +200,7 @@ CREATE TABLE LOCK ( lock_owner TEXT, lock_comment TEXT, lock_date INTEGER, /* an APR date/time (usec since 1970) */ - + PRIMARY KEY (repos_id, repos_relpath) ); @@ -553,7 +553,7 @@ CREATE TABLE EXTERNALS ( /* the kind of the external. */ kind TEXT NOT NULL, - /* The local relpath of the directory NODE defining this external + /* The local relpath of the directory NODE defining this external (Defaults to the parent directory of the file external after upgrade) */ def_local_relpath TEXT NOT NULL, @@ -598,27 +598,32 @@ CREATE UNIQUE INDEX I_EXTERNALS_DEFINED ANALYZE sqlite_master; /* Creates empty sqlite_stat1 if necessary */ DELETE FROM sqlite_stat1 -WHERE tbl in ('NODES', 'ACTUAL_NODE', 'LOCK', 'WC_LOCK'); +WHERE tbl in ('NODES', 'ACTUAL_NODE', 'LOCK', 'WC_LOCK', 'EXTERNALS'); -INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES +INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES ('NODES', 'sqlite_autoindex_NODES_1', '8000 8000 2 1'); -INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES +INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES ('NODES', 'I_NODES_PARENT', '8000 8000 10 2 1'); /* Tell a lie: We ignore that 99.9% of all moved_to values are NULL */ -INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES +INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES ('NODES', 'I_NODES_MOVED', '8000 8000 1 1'); -INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES +INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES ('ACTUAL_NODE', 'sqlite_autoindex_ACTUAL_NODE_1', '8000 8000 1'); -INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES +INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES ('ACTUAL_NODE', 'I_ACTUAL_PARENT', '8000 8000 10 1'); -INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES +INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES ('LOCK', 'sqlite_autoindex_LOCK_1', '100 100 1'); -INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES +INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES ('WC_LOCK', 'sqlite_autoindex_WC_LOCK_1', '100 100 1'); +INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES + ('EXTERNALS','sqlite_autoindex_EXTERNALS_1', '100 100 1'); +INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES + ('EXTERNALS','I_EXTERNALS_DEFINED', '100 100 3 1'); + /* sqlite_autoindex_WORK_QUEUE_1 doesn't exist because WORK_QUEUE is a INTEGER PRIMARY KEY AUTOINCREMENT table */ @@ -774,7 +779,7 @@ LIMIT 1 /* ------------------------------------------------------------------------- */ -/* Format 28 involves no schema changes, it only converts MD5 pristine +/* Format 28 involves no schema changes, it only converts MD5 pristine references to SHA1. */ -- STMT_UPGRADE_TO_28 Modified: subversion/branches/fsx-1.10/subversion/libsvn_wc/wc-queries.sql URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/libsvn_wc/wc-queries.sql?rev=1685464&r1=1685463&r2=1685464&view=diff ============================================================================== --- subversion/branches/fsx-1.10/subversion/libsvn_wc/wc-queries.sql (original) +++ subversion/branches/fsx-1.10/subversion/libsvn_wc/wc-queries.sql Sun Jun 14 20:58:10 2015 @@ -46,7 +46,7 @@ SELECT op_depth, nodes.repos_id, nodes.r 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 + AND nodes.repos_path = lock.repos_relpath AND nodes.op_depth=0 WHERE wc_id = ?1 AND local_relpath = ?2 ORDER BY op_depth DESC @@ -134,7 +134,7 @@ SELECT op_depth, nodes.repos_id, nodes.r lock_comment, lock_date, local_relpath, moved_here, moved_to, file_external FROM nodes LEFT OUTER JOIN lock ON nodes.repos_id = lock.repos_id - AND nodes.repos_path = lock.repos_relpath AND op_depth = 0 + AND nodes.repos_path = lock.repos_relpath AND nodes.op_depth = 0 WHERE wc_id = ?1 AND parent_relpath = ?2 ORDER BY local_relpath DESC, op_depth DESC @@ -148,7 +148,7 @@ SELECT op_depth, nodes.repos_id, nodes.r lock_comment, lock_date, local_relpath, moved_here, moved_to, file_external FROM nodes LEFT OUTER JOIN lock ON nodes.repos_id = lock.repos_id - AND nodes.repos_path = lock.repos_relpath AND op_depth = 0 + AND nodes.repos_path = lock.repos_relpath WHERE wc_id = ?1 AND parent_relpath = ?2 AND op_depth = 0 ORDER BY local_relpath DESC @@ -156,6 +156,7 @@ ORDER BY local_relpath DESC SELECT local_relpath, op_depth, presence, kind FROM nodes_current WHERE wc_id = ?1 AND parent_relpath = ?2 +ORDER BY local_relpath -- STMT_SELECT_ACTUAL_CHILDREN_INFO SELECT local_relpath, changelist, properties, conflict_data @@ -184,16 +185,6 @@ 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, ?20, ?21, ?22, ?23) --- STMT_SELECT_BASE_PRESENT -SELECT local_relpath, kind FROM nodes n -WHERE wc_id = ?1 AND IS_STRICT_DESCENDANT_OF(local_relpath, ?2) - AND op_depth = 0 - AND presence in (MAP_NORMAL, MAP_INCOMPLETE) - AND NOT EXISTS(SELECT 1 FROM NODES w - WHERE w.wc_id = ?1 AND w.local_relpath = n.local_relpath - AND op_depth > 0) -ORDER BY local_relpath DESC - -- STMT_SELECT_WORKING_PRESENT SELECT local_relpath, kind, checksum, translated_size, last_mod_time FROM nodes n @@ -233,6 +224,16 @@ WHERE wc_id = ?1 AND IS_STRICT_DESCENDAN -- STMT_DELETE_WORKING_BASE_DELETE DELETE FROM nodes +WHERE wc_id = ?1 AND local_relpath = ?2 + AND presence = MAP_BASE_DELETED + AND op_depth > ?3 + AND op_depth = (SELECT MIN(op_depth) FROM nodes n + WHERE n.wc_id = ?1 + AND n.local_relpath = nodes.local_relpath + AND op_depth > ?3) + +-- STMT_DELETE_WORKING_BASE_DELETE_RECURSIVE +DELETE FROM nodes WHERE wc_id = ?1 AND IS_STRICT_DESCENDANT_OF(local_relpath, ?2) AND presence = MAP_BASE_DELETED AND op_depth > ?3 @@ -248,12 +249,13 @@ WHERE wc_id = ?1 AND IS_STRICT_DESCENDAN -- STMT_DELETE_BASE_RECURSIVE DELETE FROM nodes -WHERE wc_id = ?1 AND IS_STRICT_DESCENDANT_OF(local_relpath, ?2) +WHERE wc_id = ?1 AND (local_relpath = ?2 + OR IS_STRICT_DESCENDANT_OF(local_relpath, ?2)) AND op_depth = 0 -- STMT_DELETE_WORKING_OP_DEPTH DELETE FROM nodes -WHERE wc_id = ?1 +WHERE wc_id = ?1 AND (local_relpath = ?2 OR IS_STRICT_DESCENDANT_OF(local_relpath, ?2)) AND op_depth = ?3 @@ -262,15 +264,12 @@ The op_root must exist (or there is no l always has presence 'normal' */ -- STMT_SELECT_LAYER_FOR_REPLACE SELECT s.local_relpath, s.kind, - RELPATH_SKIP_JOIN(?2, ?4, s.local_relpath) drp, 'normal', 0 + RELPATH_SKIP_JOIN(?2, ?4, s.local_relpath) drp, 'normal' FROM nodes s WHERE s.wc_id = ?1 AND s.local_relpath = ?2 AND s.op_depth = ?3 UNION ALL SELECT s.local_relpath, s.kind, - RELPATH_SKIP_JOIN(?2, ?4, s.local_relpath) drp, d.presence, - EXISTS(SELECT * FROM nodes sh - WHERE sh.wc_id = ?1 AND sh.op_depth > ?5 - AND sh.local_relpath = d.local_relpath) shadowed + RELPATH_SKIP_JOIN(?2, ?4, s.local_relpath) drp, d.presence FROM nodes s LEFT OUTER JOIN nodes d ON d.wc_id= ?1 AND d.op_depth = ?5 AND d.local_relpath = drp @@ -295,17 +294,16 @@ INSERT OR REPLACE INTO nodes ( changed_author, checksum, properties, translated_size, last_mod_time, symlink_target, moved_here, moved_to ) SELECT - wc_id, ?4 /*local_relpath */, ?5 /*op_depth*/, ?6 /* parent_relpath */, - repos_id, - repos_path, revision, presence, depth, kind, changed_revision, - changed_date, changed_author, checksum, properties, translated_size, - last_mod_time, symlink_target, 1, - (SELECT dst.moved_to FROM nodes AS dst - WHERE dst.wc_id = ?1 - AND dst.local_relpath = ?4 - AND dst.op_depth = ?5) -FROM nodes -WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 + s.wc_id, ?4 /*local_relpath */, ?5 /*op_depth*/, ?6 /* parent_relpath */, + s.repos_id, + s.repos_path, s.revision, s.presence, s.depth, s.kind, s.changed_revision, + s.changed_date, s.changed_author, s.checksum, s.properties, + CASE WHEN d.checksum=s.checksum THEN d.translated_size END, + CASE WHEN d.checksum=s.checksum THEN d.last_mod_time END, + s.symlink_target, 1, d.moved_to +FROM nodes s +LEFT JOIN nodes d ON d.wc_id=?1 AND d.local_relpath=?4 AND d.op_depth=?5 +WHERE s.wc_id = ?1 AND s.local_relpath = ?2 AND s.op_depth = ?3 -- STMT_SELECT_NO_LONGER_MOVED_RV SELECT d.local_relpath, RELPATH_SKIP_JOIN(?2, ?4, d.local_relpath) srp, @@ -327,7 +325,7 @@ ORDER BY d.local_relpath DESC -- STMT_SELECT_OP_DEPTH_CHILDREN SELECT local_relpath, kind FROM nodes -WHERE wc_id = ?1 +WHERE wc_id = ?1 AND parent_relpath = ?2 AND op_depth = ?3 AND presence != MAP_BASE_DELETED @@ -336,7 +334,7 @@ ORDER BY local_relpath -- STMT_SELECT_OP_DEPTH_CHILDREN_EXISTS SELECT local_relpath, kind FROM nodes -WHERE wc_id = ?1 +WHERE wc_id = ?1 AND parent_relpath = ?2 AND op_depth = ?3 AND presence IN (MAP_NORMAL, MAP_INCOMPLETE) @@ -348,7 +346,8 @@ ORDER BY local_relpath -- STMT_SELECT_GE_OP_DEPTH_CHILDREN SELECT 1 FROM nodes WHERE wc_id = ?1 AND parent_relpath = ?2 - AND (op_depth > ?3 OR (op_depth = ?3 AND presence != MAP_BASE_DELETED)) + AND (op_depth > ?3 OR (op_depth = ?3 + AND presence IN (MAP_NORMAL, MAP_INCOMPLETE))) UNION ALL SELECT 1 FROM ACTUAL_NODE a WHERE wc_id = ?1 AND parent_relpath = ?2 @@ -382,6 +381,7 @@ UPDATE NODES SET op_depth = 0, revision = ?6, dav_cache = NULL, moved_here = NULL, + moved_to = NULL, presence = CASE presence WHEN MAP_NORMAL THEN MAP_NORMAL WHEN MAP_EXCLUDED THEN MAP_EXCLUDED @@ -394,22 +394,30 @@ WHERE wc_id = ?1 -- STMT_SELECT_NODE_CHILDREN /* Return all paths that are children of the directory (?1, ?2) in any op-depth, including children of any underlying, replaced directories. */ -SELECT local_relpath FROM nodes +SELECT DISTINCT local_relpath FROM nodes WHERE wc_id = ?1 AND parent_relpath = ?2 +ORDER BY local_relpath -- STMT_SELECT_WORKING_CHILDREN /* Return all paths that are children of the working version of the directory (?1, ?2). A given path is not included just because it is a child of an underlying (replaced) directory, it has to be in the working version of the directory. */ -SELECT local_relpath FROM nodes +SELECT DISTINCT local_relpath FROM nodes WHERE wc_id = ?1 AND parent_relpath = ?2 AND (op_depth > (SELECT MAX(op_depth) FROM nodes WHERE wc_id = ?1 AND local_relpath = ?2) OR (op_depth = (SELECT MAX(op_depth) FROM nodes WHERE wc_id = ?1 AND local_relpath = ?2) - AND presence != MAP_BASE_DELETED)) + AND presence IN (MAP_NORMAL, MAP_INCOMPLETE))) +ORDER BY local_relpath + +-- STMT_SELECT_BASE_NOT_PRESENT_CHILDREN +SELECT local_relpath FROM nodes +WHERE wc_id = ?1 AND parent_relpath = ?2 AND op_depth = 0 + AND presence = MAP_NOT_PRESENT +ORDER BY local_relpath -- STMT_SELECT_NODE_PROPS SELECT properties, presence FROM nodes @@ -456,25 +464,13 @@ SELECT dav_cache FROM nodes WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 -- STMT_SELECT_DELETION_INFO -SELECT (SELECT b.presence FROM nodes AS b - WHERE b.wc_id = ?1 AND b.local_relpath = ?2 AND b.op_depth = 0), - work.presence, work.op_depth -FROM nodes_current AS work -WHERE work.wc_id = ?1 AND work.local_relpath = ?2 AND work.op_depth > 0 -LIMIT 1 - --- STMT_SELECT_DELETION_INFO_SCAN -/* ### FIXME. moved.moved_to IS NOT NULL works when there is - only one move but we need something else when there are several. */ -SELECT (SELECT b.presence FROM nodes AS b - WHERE b.wc_id = ?1 AND b.local_relpath = ?2 AND b.op_depth = 0), - work.presence, work.op_depth, moved.moved_to -FROM nodes_current AS work -LEFT OUTER JOIN nodes AS moved - ON moved.wc_id = work.wc_id - AND moved.local_relpath = work.local_relpath - AND moved.moved_to IS NOT NULL -WHERE work.wc_id = ?1 AND work.local_relpath = ?2 AND work.op_depth > 0 +SELECT b.presence, w.presence, w.op_depth, w.moved_to +FROM nodes w +LEFT JOIN nodes b ON b.wc_id = ?1 AND b.local_relpath = ?2 AND b.op_depth = 0 +WHERE w.wc_id = ?1 AND w.local_relpath = ?2 + AND w.op_depth = (SELECT MAX(op_depth) FROM nodes d + WHERE d.wc_id = ?1 AND d.local_relpath = ?2 + AND d.op_depth > 0) LIMIT 1 -- STMT_SELECT_MOVED_TO_NODE @@ -547,7 +543,7 @@ UPDATE nodes SET repos_id = ?4, dav_cach WHERE (wc_id = ?1 AND local_relpath = ?2 AND repos_id = ?3) OR (wc_id = ?1 AND IS_STRICT_DESCENDANT_OF(local_relpath, ?2) AND repos_id = ?3) - + -- STMT_UPDATE_LOCK_REPOS_ID UPDATE lock SET repos_id = ?2 @@ -726,6 +722,13 @@ INSERT OR IGNORE INTO actual_node ( SELECT wc_id, local_relpath, parent_relpath FROM targets_list +-- STMT_INSERT_ACTUAL_EMPTIES_FILES +INSERT OR IGNORE INTO actual_node ( + wc_id, local_relpath, parent_relpath) +SELECT wc_id, local_relpath, parent_relpath +FROM targets_list +WHERE kind=MAP_FILE + -- STMT_DELETE_ACTUAL_EMPTY DELETE FROM actual_node WHERE wc_id = ?1 AND local_relpath = ?2 @@ -740,7 +743,7 @@ WHERE wc_id = ?1 AND local_relpath = ?2 -- STMT_DELETE_ACTUAL_EMPTIES DELETE FROM actual_node WHERE wc_id = ?1 - AND IS_STRICT_DESCENDANT_OF(local_relpath, ?2) + AND (local_relpath = ?2 OR IS_STRICT_DESCENDANT_OF(local_relpath, ?2)) AND properties IS NULL AND conflict_data IS NULL AND changelist IS NULL @@ -804,7 +807,7 @@ WHERE wc_id = ?1 OR IS_STRICT_DESCENDANT_OF(local_relpath, ?2)) AND (changelist IS NULL OR NOT EXISTS (SELECT 1 FROM nodes_current c - WHERE c.wc_id = ?1 + WHERE c.wc_id = ?1 AND c.local_relpath = actual_node.local_relpath AND c.kind = MAP_FILE)) @@ -819,6 +822,17 @@ SET properties = NULL, right_checksum = NULL WHERE wc_id = ?1 AND local_relpath = ?2 +-- STMT_CLEAR_ACTUAL_NODE_LEAVING_CONFLICT +UPDATE actual_node +SET properties = NULL, + text_mod = NULL, + tree_conflict_data = NULL, + older_checksum = NULL, + left_checksum = NULL, + right_checksum = NULL, + changelist = NULL +WHERE wc_id = ?1 AND local_relpath = ?2 + -- STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE UPDATE actual_node SET properties = NULL, @@ -836,6 +850,7 @@ WHERE wc_id = ?1 UPDATE nodes SET depth = ?3 WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 AND kind=MAP_DIR + AND presence IN (MAP_NORMAL, MAP_INCOMPLETE) -- STMT_UPDATE_NODE_BASE_PRESENCE UPDATE nodes SET presence = ?3 @@ -940,6 +955,14 @@ SELECT local_dir_relpath FROM wc_lock WHERE wc_id = ?1 AND IS_STRICT_DESCENDANT_OF(local_dir_relpath, ?2) +-- STMT_FIND_CONFLICT_DESCENDANT +SELECT 1 FROM actual_node +WHERE wc_id = ?1 + AND local_relpath > (?2 || '/') + AND local_relpath < (?2 || '0') /* '0' = ascii('/') +1 */ + AND conflict_data IS NOT NULL +LIMIT 1 + -- STMT_DELETE_WC_LOCK_ORPHAN DELETE FROM wc_lock WHERE wc_id = ?1 AND local_dir_relpath = ?2 @@ -1009,15 +1032,17 @@ WHERE wc_id = ?1 ORDER BY local_relpath -- STMT_INSERT_WORKING_NODE_FROM_BASE_COPY -INSERT INTO nodes ( +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, changed_author, checksum, properties, translated_size, last_mod_time, - symlink_target ) + symlink_target, moved_to ) SELECT wc_id, local_relpath, ?3 /*op_depth*/, parent_relpath, repos_id, repos_path, revision, presence, depth, kind, changed_revision, changed_date, changed_author, checksum, properties, translated_size, - last_mod_time, symlink_target + last_mod_time, symlink_target, + (SELECT moved_to FROM nodes + WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3) moved_to FROM nodes WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 @@ -1566,16 +1591,6 @@ WHERE wc_id = ?1 AND repos_path IS NOT RELPATH_SKIP_JOIN(?2, ?3, local_relpath) LIMIT 1 --- STMT_SELECT_BASE_FILES_RECURSIVE -SELECT local_relpath, translated_size, last_mod_time FROM nodes AS n -WHERE wc_id = ?1 - AND (local_relpath = ?2 - OR IS_STRICT_DESCENDANT_OF(local_relpath, ?2)) - AND op_depth = 0 - AND kind=MAP_FILE - AND presence=MAP_NORMAL - AND file_external IS NULL - -- STMT_SELECT_MOVED_FROM_RELPATH SELECT local_relpath, op_depth FROM nodes WHERE wc_id = ?1 AND moved_to = ?2 AND op_depth > 0 @@ -1671,26 +1686,6 @@ WHERE wc_id = ?1 AND moved_to IS NOT NULL AND NOT IS_STRICT_DESCENDANT_OF(moved_to, ?2) -/* This statement is very similar to STMT_SELECT_MOVED_DESCENDANTS_SRC - but the passed op-depth is the depth of the shadowing node. - - This version is slightly more efficient as the most inner query is - only executed once, but the Sqlite page cache makes the difference - not really measurable */ --- STMT_SELECT_MOVED_DESCENDANTS_SHD -SELECT n.op_depth, n.local_relpath, n.kind, n.repos_path, s.moved_to -FROM nodes s -JOIN nodes n ON n.wc_id = ?1 AND n.local_relpath = s.local_relpath - AND n.op_depth=(SELECT MAX(d.op_depth) - FROM nodes d - WHERE d.wc_id = ?1 AND d.local_relpath = ?2 - AND d.op_depth < ?3) -WHERE s.wc_id = ?1 AND s.op_depth = ?3 - AND IS_STRICT_DESCENDANT_OF(s.local_relpath, ?2) - AND s.moved_to IS NOT NULL - -/* This statement is very similar to STMT_SELECT_MOVED_DESCENDANTS_SHD, - but the passed op-depth is the depth of the node as it originally existed */ -- STMT_SELECT_MOVED_DESCENDANTS_SRC SELECT s.op_depth, n.local_relpath, n.kind, n.repos_path, s.moved_to FROM nodes n @@ -1701,7 +1696,7 @@ JOIN nodes s ON s.wc_id = n.wc_id AND s. AND d.local_relpath = s.local_relpath AND d.op_depth > ?3) WHERE n.wc_id = ?1 AND n.op_depth = ?3 - AND IS_STRICT_DESCENDANT_OF(n.local_relpath, ?2) + AND (n.local_relpath = ?2 OR IS_STRICT_DESCENDANT_OF(n.local_relpath, ?2)) AND s.moved_to IS NOT NULL -- STMT_COMMIT_UPDATE_ORIGIN @@ -1786,6 +1781,10 @@ WHERE wc_id = ?1 AND op_depth = 0 AND (inherited_props not null) +-- STMT_HAVE_STAT1_TABLE +SELECT 1 FROM sqlite_master WHERE name='sqlite_stat1' AND type='table' +LIMIT 1 + /* ------------------------------------------------------------------------- */ /* Grab all the statements related to the schema. */ Modified: subversion/branches/fsx-1.10/subversion/libsvn_wc/wc.h URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/libsvn_wc/wc.h?rev=1685464&r1=1685463&r2=1685464&view=diff ============================================================================== --- subversion/branches/fsx-1.10/subversion/libsvn_wc/wc.h (original) +++ subversion/branches/fsx-1.10/subversion/libsvn_wc/wc.h Sun Jun 14 20:58:10 2015 @@ -158,7 +158,7 @@ extern "C" { * Bumped in r1395109. * * == 1.8.x shipped with format 31 - * + * * Please document any further format changes here. */ @@ -190,6 +190,10 @@ extern "C" { /* A version < this has no work queue (see workqueue.h). */ #define SVN_WC__HAS_WORK_QUEUE 13 +/* While we still have this DB version we should verify if there is + sqlite_stat1 table on opening */ +#define SVN_WC__ENSURE_STAT1_TABLE 31 + /* Return a string indicating the released version (or versions) of * Subversion that used WC format number WC_FORMAT, or some other * suitable string if no released version used WC_FORMAT. @@ -577,17 +581,6 @@ svn_wc__internal_get_origin(svn_boolean_ apr_pool_t *result_pool, apr_pool_t *scratch_pool); -/* Internal version of svn_wc__node_get_repos_info() */ -svn_error_t * -svn_wc__internal_get_repos_info(svn_revnum_t *revision, - const char **repos_relpath, - const char **repos_root_url, - const char **repos_uuid, - svn_wc__db_t *db, - const char *local_abspath, - apr_pool_t *result_pool, - apr_pool_t *scratch_pool); - /* Upgrade the wc sqlite database given in SDB for the wc located at WCROOT_ABSPATH. It's current/starting format is given by START_FORMAT. After the upgrade is complete (to as far as the automatic upgrade will @@ -642,9 +635,11 @@ svn_wc__write_check(svn_wc__db_t *db, */ svn_error_t * svn_wc__read_conflicts(const apr_array_header_t **conflicts, + svn_skel_t **conflict_skel, svn_wc__db_t *db, const char *local_abspath, svn_boolean_t create_tempfiles, + svn_boolean_t only_tree_conflict, apr_pool_t *result_pool, apr_pool_t *scratch_pool); @@ -733,6 +728,7 @@ svn_wc__node_has_local_mods(svn_boolean_ svn_boolean_t *all_edits_are_deletes, svn_wc__db_t *db, const char *local_abspath, + svn_boolean_t ignore_unversioned, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *scratch_pool);