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 2011/04/28 17:07:49 UTC
svn commit: r1097497 - /subversion/trunk/subversion/libsvn_wc/wc-queries.sql
Author: hwright
Date: Thu Apr 28 15:07:49 2011
New Revision: 1097497
URL: http://svn.apache.org/viewvc?rev=1097497&view=rev
Log:
Use IN and NOT IN clauses in SQL, rather than OR clauses. This may not speed
execution, but give the reader a better idea of the relationship between
these values.
* subversion/libsvn_wc/wc-queries.sql
(STMT_CACHE_NODE_PROPS_RECURSIVE,
STMT_CACHE_ACTUAL_PROPS_RECURSIVE,
STMT_CACHE_NODE_BASE_PROPS_RECURSIVE,
STMT_CACHE_NODE_PROPS_OF_CHILDREN,
STMT_CACHE_ACTUAL_PROPS_OF_CHILDREN,
STMT_CACHE_NODE_BASE_PROPS_OF_CHILDREN,
STMT_SELECT_MIN_MAX_REVISIONS,
STMT_SELECT_SPARSE_NODES,
STMT_SUBTREE_HAS_TREE_MODIFICATIONS,
STMT_SELECT_CURRENT_NODES_RECURSIVE):
Use IN and NOT IN clauses instead of OR'ing stuff together.
Modified:
subversion/trunk/subversion/libsvn_wc/wc-queries.sql
Modified: subversion/trunk/subversion/libsvn_wc/wc-queries.sql
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/wc-queries.sql?rev=1097497&r1=1097496&r2=1097497&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/wc-queries.sql (original)
+++ subversion/trunk/subversion/libsvn_wc/wc-queries.sql Thu Apr 28 15:07:49 2011
@@ -978,7 +978,7 @@ CREATE TEMPORARY TABLE temp__node_props_
AND (?2 = '' OR local_relpath = ?2 OR local_relpath LIKE ?3 ESCAPE '#')
AND local_relpath NOT IN (
SELECT local_relpath FROM actual_node WHERE wc_id = ?1)
- AND (presence = 'normal' OR presence = 'incomplete')
+ AND presence IN ('normal', 'incomplete')
/* ### Need index?
CREATE UNIQUE INDEX temp__node_props_cache_unique
ON temp__node_props_cache (local_relpath) */
@@ -988,7 +988,7 @@ INSERT INTO temp__node_props_cache (loca
SELECT A.local_relpath, N.kind, A.properties
FROM actual_node AS A JOIN nodes_current AS N
ON A.wc_id = N.wc_id AND A.local_relpath = N.local_relpath
- AND (N.presence = 'normal' OR N.presence = 'incomplete')
+ AND N.presence IN ('normal', 'incomplete')
WHERE A.wc_id = ?1
AND (?2 = '' OR A.local_relpath = ?2 OR A.local_relpath LIKE ?3 ESCAPE '#')
AND A.local_relpath NOT IN
@@ -1001,7 +1001,7 @@ CREATE TEMPORARY TABLE temp__node_props_
AND (?2 = '' OR local_relpath = ?2 OR local_relpath LIKE ?3 ESCAPE '#')
AND local_relpath NOT IN (
SELECT local_relpath FROM actual_node WHERE wc_id = ?1)
- AND (presence = 'normal' OR presence = 'incomplete')
+ AND presence IN ('normal', 'incomplete')
/* ### Need index?
CREATE UNIQUE INDEX temp__node_props_cache_unique
ON temp__node_props_cache (local_relpath) */
@@ -1013,7 +1013,7 @@ CREATE TEMPORARY TABLE temp__node_props_
AND (local_relpath = ?2 OR parent_relpath = ?2)
AND local_relpath NOT IN (
SELECT local_relpath FROM actual_node WHERE wc_id = ?1)
- AND (presence = 'normal' OR presence = 'incomplete')
+ AND presence IN ('normal', 'incomplete')
/* ### Need index?
CREATE UNIQUE INDEX temp__node_props_cache_unique
ON temp__node_props_cache (local_relpath) */
@@ -1023,7 +1023,7 @@ INSERT INTO temp__node_props_cache (loca
SELECT A.local_relpath, N.kind, A.properties
FROM actual_node AS A JOIN nodes_current AS N
ON A.wc_id = N.wc_id AND A.local_relpath = N.local_relpath
- AND (N.presence = 'normal' OR N.presence = 'incomplete')
+ AND N.presence IN ('normal', 'incomplete')
WHERE A.wc_id = ?1
AND (A.local_relpath = ?2 OR A.parent_relpath = ?2)
AND A.local_relpath NOT IN
@@ -1036,7 +1036,7 @@ CREATE TEMPORARY TABLE temp__node_props_
AND (local_relpath = ?2 OR parent_relpath = ?2)
AND local_relpath NOT IN (
SELECT local_relpath FROM actual_node WHERE wc_id = ?1)
- AND (presence = 'normal' OR presence = 'incomplete')
+ AND presence IN ('normal', 'incomplete')
/* ### Need index?
CREATE UNIQUE INDEX temp__node_props_cache_unique
ON temp__node_props_cache (local_relpath) */
@@ -1147,7 +1147,7 @@ SELECT MIN(revision), MAX(revision),
MIN(changed_revision), MAX(changed_revision) FROM nodes
WHERE wc_id = ?1
AND (local_relpath = ?2 OR local_relpath LIKE ?3 ESCAPE '#')
- AND (presence = 'normal' OR presence = 'incomplete')
+ AND presence IN ('normal', 'incomplete')
AND file_external IS NULL
AND op_depth = 0
@@ -1155,16 +1155,15 @@ SELECT MIN(revision), MAX(revision),
SELECT local_relpath, presence, depth FROM nodes
WHERE wc_id = ?1 AND (local_relpath = ?2 OR local_relpath LIKE ?3 ESCAPE '#')
AND op_depth = 0
- AND (presence = 'absent' OR presence = 'excluded' OR
- (depth != 'infinity' AND depth != 'unknown'))
+ AND (presence IN ('absent', 'excluded')
+ OR depth NOT IN ('infinity', 'unknown'))
AND file_external IS NULL
-- STMT_SUBTREE_HAS_TREE_MODIFICATIONS
SELECT 1 FROM nodes
WHERE wc_id = ?1 AND (local_relpath = ?2 OR local_relpath LIKE ?3 ESCAPE '#')
AND op_depth > 0
- AND (presence = 'normal' OR presence = 'incomplete' OR
- presence = 'base-deleted')
+ AND presence IN ('normal', 'incomplete', 'base-deleted')
AND file_external IS NULL
LIMIT 1
@@ -1189,7 +1188,7 @@ WHERE wc_id = ?1 AND local_relpath != ""
SELECT local_relpath, kind FROM nodes_current
WHERE wc_id = ?1
AND (?2 = '' OR local_relpath = ?2 OR local_relpath LIKE ?3 ESCAPE '#')
- AND (presence = 'normal' OR presence = 'incomplete')
+ AND presence IN ('normal', 'incomplete')
AND file_external IS NULL
/* Grab all the statements related to the schema. */