1 /* This file is automatically generated from wc-queries.sql and .dist_sandbox/subversion-1.9.7/subversion/libsvn_wc/token-map.h.
2 * Do not edit this file -- edit the source and rerun gen-make.py */
4 #define STMT_SELECT_NODE_INFO 0
5 #define STMT_0_INFO {"STMT_SELECT_NODE_INFO", NULL}
7 "SELECT op_depth, repos_id, repos_path, presence, kind, revision, checksum, " \
8 " translated_size, changed_revision, changed_date, changed_author, depth, " \
9 " symlink_target, last_mod_time, properties, moved_here, inherited_props, " \
12 "WHERE wc_id = ?1 AND local_relpath = ?2 " \
13 "ORDER BY op_depth DESC " \
16 #define STMT_SELECT_NODE_INFO_WITH_LOCK 1
17 #define STMT_1_INFO {"STMT_SELECT_NODE_INFO_WITH_LOCK", NULL}
19 "SELECT op_depth, nodes.repos_id, nodes.repos_path, presence, kind, revision, " \
20 " checksum, translated_size, changed_revision, changed_date, changed_author, " \
21 " depth, symlink_target, last_mod_time, properties, moved_here, " \
22 " inherited_props, " \
23 " lock_token, lock_owner, lock_comment, lock_date " \
25 "LEFT OUTER JOIN lock ON nodes.repos_id = lock.repos_id " \
26 " AND nodes.repos_path = lock.repos_relpath " \
27 "WHERE wc_id = ?1 AND local_relpath = ?2 " \
28 "ORDER BY op_depth DESC " \
31 #define STMT_SELECT_BASE_NODE 2
32 #define STMT_2_INFO {"STMT_SELECT_BASE_NODE", NULL}
34 "SELECT repos_id, repos_path, presence, kind, revision, checksum, " \
35 " translated_size, changed_revision, changed_date, changed_author, depth, " \
36 " symlink_target, last_mod_time, properties, file_external " \
38 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
41 #define STMT_SELECT_BASE_NODE_WITH_LOCK 3
42 #define STMT_3_INFO {"STMT_SELECT_BASE_NODE_WITH_LOCK", NULL}
44 "SELECT nodes.repos_id, nodes.repos_path, presence, kind, revision, " \
45 " checksum, translated_size, changed_revision, changed_date, changed_author, " \
46 " depth, symlink_target, last_mod_time, properties, file_external, " \
47 " lock_token, lock_owner, lock_comment, lock_date " \
49 "LEFT OUTER JOIN lock ON nodes.repos_id = lock.repos_id " \
50 " AND nodes.repos_path = lock.repos_relpath " \
51 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
54 #define STMT_SELECT_BASE_CHILDREN_INFO 4
55 #define STMT_4_INFO {"STMT_SELECT_BASE_CHILDREN_INFO", NULL}
57 "SELECT local_relpath, nodes.repos_id, nodes.repos_path, presence, kind, " \
58 " revision, depth, file_external " \
60 "WHERE wc_id = ?1 AND parent_relpath = ?2 AND op_depth = 0 " \
63 #define STMT_SELECT_BASE_CHILDREN_INFO_LOCK 5
64 #define STMT_5_INFO {"STMT_SELECT_BASE_CHILDREN_INFO_LOCK", NULL}
66 "SELECT local_relpath, nodes.repos_id, nodes.repos_path, presence, kind, " \
67 " revision, depth, file_external, " \
68 " lock_token, lock_owner, lock_comment, lock_date " \
70 "LEFT OUTER JOIN lock ON nodes.repos_id = lock.repos_id " \
71 " AND nodes.repos_path = lock.repos_relpath " \
72 "WHERE wc_id = ?1 AND parent_relpath = ?2 AND op_depth = 0 " \
75 #define STMT_SELECT_WORKING_NODE 6
76 #define STMT_6_INFO {"STMT_SELECT_WORKING_NODE", NULL}
78 "SELECT op_depth, presence, kind, checksum, translated_size, " \
79 " changed_revision, changed_date, changed_author, depth, symlink_target, " \
80 " repos_id, repos_path, revision, " \
81 " moved_here, moved_to, last_mod_time, properties " \
83 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth > 0 " \
84 "ORDER BY op_depth DESC " \
88 #define STMT_SELECT_DEPTH_NODE 7
89 #define STMT_7_INFO {"STMT_SELECT_DEPTH_NODE", NULL}
91 "SELECT repos_id, repos_path, presence, kind, revision, checksum, " \
92 " translated_size, changed_revision, changed_date, changed_author, depth, " \
93 " symlink_target, properties, moved_to, moved_here " \
95 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \
98 #define STMT_SELECT_LOWEST_WORKING_NODE 8
99 #define STMT_8_INFO {"STMT_SELECT_LOWEST_WORKING_NODE", NULL}
101 "SELECT op_depth, presence, kind, moved_to " \
103 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth > ?3 " \
104 "ORDER BY op_depth " \
108 #define STMT_SELECT_HIGHEST_WORKING_NODE 9
109 #define STMT_9_INFO {"STMT_SELECT_HIGHEST_WORKING_NODE", NULL}
113 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth < ?3 " \
114 "ORDER BY op_depth DESC " \
118 #define STMT_SELECT_ACTUAL_NODE 10
119 #define STMT_10_INFO {"STMT_SELECT_ACTUAL_NODE", NULL}
121 "SELECT changelist, properties, conflict_data " \
122 "FROM actual_node " \
123 "WHERE wc_id = ?1 AND local_relpath = ?2 " \
126 #define STMT_SELECT_NODE_CHILDREN_INFO 11
127 #define STMT_11_INFO {"STMT_SELECT_NODE_CHILDREN_INFO", NULL}
129 "SELECT op_depth, nodes.repos_id, nodes.repos_path, presence, kind, revision, " \
130 " checksum, translated_size, changed_revision, changed_date, changed_author, " \
131 " depth, symlink_target, last_mod_time, properties, lock_token, lock_owner, " \
132 " lock_comment, lock_date, local_relpath, moved_here, moved_to, file_external " \
134 "LEFT OUTER JOIN lock ON nodes.repos_id = lock.repos_id " \
135 " AND nodes.repos_path = lock.repos_relpath AND op_depth = 0 " \
136 "WHERE wc_id = ?1 AND parent_relpath = ?2 " \
137 "ORDER BY local_relpath DESC, op_depth DESC " \
140 #define STMT_SELECT_BASE_NODE_CHILDREN_INFO 12
141 #define STMT_12_INFO {"STMT_SELECT_BASE_NODE_CHILDREN_INFO", NULL}
143 "SELECT op_depth, nodes.repos_id, nodes.repos_path, presence, kind, revision, " \
144 " checksum, translated_size, changed_revision, changed_date, changed_author, " \
145 " depth, symlink_target, last_mod_time, properties, lock_token, lock_owner, " \
146 " lock_comment, lock_date, local_relpath, moved_here, moved_to, file_external " \
148 "LEFT OUTER JOIN lock ON nodes.repos_id = lock.repos_id " \
149 " AND nodes.repos_path = lock.repos_relpath AND op_depth = 0 " \
150 "WHERE wc_id = ?1 AND parent_relpath = ?2 AND op_depth = 0 " \
151 "ORDER BY local_relpath DESC " \
154 #define STMT_SELECT_NODE_CHILDREN_WALKER_INFO 13
155 #define STMT_13_INFO {"STMT_SELECT_NODE_CHILDREN_WALKER_INFO", NULL}
157 "SELECT local_relpath, op_depth, presence, kind " \
158 "FROM nodes_current " \
159 "WHERE wc_id = ?1 AND parent_relpath = ?2 " \
160 "ORDER BY local_relpath " \
163 #define STMT_SELECT_ACTUAL_CHILDREN_INFO 14
164 #define STMT_14_INFO {"STMT_SELECT_ACTUAL_CHILDREN_INFO", NULL}
166 "SELECT local_relpath, changelist, properties, conflict_data " \
167 "FROM actual_node " \
168 "WHERE wc_id = ?1 AND parent_relpath = ?2 " \
171 #define STMT_SELECT_REPOSITORY_BY_ID 15
172 #define STMT_15_INFO {"STMT_SELECT_REPOSITORY_BY_ID", NULL}
174 "SELECT root, uuid FROM repository WHERE id = ?1 " \
177 #define STMT_SELECT_WCROOT_NULL 16
178 #define STMT_16_INFO {"STMT_SELECT_WCROOT_NULL", NULL}
180 "SELECT id FROM wcroot WHERE local_abspath IS NULL " \
183 #define STMT_SELECT_REPOSITORY 17
184 #define STMT_17_INFO {"STMT_SELECT_REPOSITORY", NULL}
186 "SELECT id FROM repository WHERE root = ?1 " \
189 #define STMT_INSERT_REPOSITORY 18
190 #define STMT_18_INFO {"STMT_INSERT_REPOSITORY", NULL}
192 "INSERT INTO repository (root, uuid) VALUES (?1, ?2) " \
195 #define STMT_INSERT_NODE 19
196 #define STMT_19_INFO {"STMT_INSERT_NODE", NULL}
198 "INSERT OR REPLACE INTO nodes ( " \
199 " wc_id, local_relpath, op_depth, parent_relpath, repos_id, repos_path, " \
200 " revision, presence, depth, kind, changed_revision, changed_date, " \
201 " changed_author, checksum, properties, translated_size, last_mod_time, " \
202 " dav_cache, symlink_target, file_external, moved_to, moved_here, " \
203 " inherited_props) " \
204 "VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10, ?11, ?12, ?13, ?14, " \
205 " ?15, ?16, ?17, ?18, ?19, ?20, ?21, ?22, ?23) " \
208 #define STMT_SELECT_WORKING_PRESENT 20
209 #define STMT_20_INFO {"STMT_SELECT_WORKING_PRESENT", NULL}
211 "SELECT local_relpath, kind, checksum, translated_size, last_mod_time " \
213 "WHERE wc_id = ?1 " \
214 " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
215 " AND presence in ('normal', 'incomplete') " \
216 " AND op_depth = (SELECT MAX(op_depth) " \
218 " WHERE w.wc_id = ?1 " \
219 " AND w.local_relpath = n.local_relpath) " \
220 "ORDER BY local_relpath DESC " \
223 #define STMT_DELETE_NODE_RECURSIVE 21
224 #define STMT_21_INFO {"STMT_DELETE_NODE_RECURSIVE", NULL}
226 "DELETE FROM NODES " \
227 "WHERE wc_id = ?1 " \
228 " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
231 #define STMT_DELETE_NODE 22
232 #define STMT_22_INFO {"STMT_DELETE_NODE", NULL}
236 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \
239 #define STMT_DELETE_ACTUAL_FOR_BASE_RECURSIVE 23
240 #define STMT_23_INFO {"STMT_DELETE_ACTUAL_FOR_BASE_RECURSIVE", NULL}
242 "DELETE FROM actual_node " \
243 "WHERE wc_id = ?1 AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
244 " AND EXISTS(SELECT 1 FROM NODES b " \
245 " WHERE b.wc_id = ?1 " \
246 " AND b.local_relpath = actual_node.local_relpath " \
247 " AND op_depth = 0) " \
248 " AND NOT EXISTS(SELECT 1 FROM NODES w " \
249 " WHERE w.wc_id = ?1 " \
250 " AND w.local_relpath = actual_node.local_relpath " \
251 " AND op_depth > 0 " \
252 " AND presence in ('normal', 'incomplete', 'not-present')) " \
255 #define STMT_DELETE_WORKING_BASE_DELETE 24
256 #define STMT_24_INFO {"STMT_DELETE_WORKING_BASE_DELETE", NULL}
258 "DELETE FROM nodes " \
259 "WHERE wc_id = ?1 AND local_relpath = ?2 " \
260 " AND presence = 'base-deleted' " \
261 " AND op_depth > ?3 " \
262 " AND op_depth = (SELECT MIN(op_depth) FROM nodes n " \
263 " WHERE n.wc_id = ?1 " \
264 " AND n.local_relpath = nodes.local_relpath " \
265 " AND op_depth > ?3) " \
268 #define STMT_DELETE_WORKING_BASE_DELETE_RECURSIVE 25
269 #define STMT_25_INFO {"STMT_DELETE_WORKING_BASE_DELETE_RECURSIVE", NULL}
271 "DELETE FROM nodes " \
272 "WHERE wc_id = ?1 AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
273 " AND presence = 'base-deleted' " \
274 " AND op_depth > ?3 " \
275 " AND op_depth = (SELECT MIN(op_depth) FROM nodes n " \
276 " WHERE n.wc_id = ?1 " \
277 " AND n.local_relpath = nodes.local_relpath " \
278 " AND op_depth > ?3) " \
281 #define STMT_DELETE_WORKING_RECURSIVE 26
282 #define STMT_26_INFO {"STMT_DELETE_WORKING_RECURSIVE", NULL}
284 "DELETE FROM nodes " \
285 "WHERE wc_id = ?1 AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
286 " AND op_depth > 0 " \
289 #define STMT_DELETE_BASE_RECURSIVE 27
290 #define STMT_27_INFO {"STMT_DELETE_BASE_RECURSIVE", NULL}
292 "DELETE FROM nodes " \
293 "WHERE wc_id = ?1 AND (local_relpath = ?2 " \
294 " OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
295 " AND op_depth = 0 " \
298 #define STMT_DELETE_WORKING_OP_DEPTH 28
299 #define STMT_28_INFO {"STMT_DELETE_WORKING_OP_DEPTH", NULL}
301 "DELETE FROM nodes " \
302 "WHERE wc_id = ?1 " \
303 " AND (local_relpath = ?2 OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
304 " AND op_depth = ?3 " \
307 #define STMT_SELECT_LAYER_FOR_REPLACE 29
308 #define STMT_29_INFO {"STMT_SELECT_LAYER_FOR_REPLACE", NULL}
310 "SELECT s.local_relpath, s.kind, " \
311 " (CASE WHEN (?2) = '' THEN (CASE WHEN (?4) = '' THEN (s.local_relpath) WHEN (s.local_relpath) = '' THEN (?4) ELSE (?4) || '/' || (s.local_relpath) END) WHEN (?4) = '' THEN (CASE WHEN (?2) = '' THEN (s.local_relpath) WHEN SUBSTR((s.local_relpath), 1, LENGTH(?2)) = (?2) THEN CASE WHEN LENGTH(?2) = LENGTH(s.local_relpath) THEN '' WHEN SUBSTR((s.local_relpath), LENGTH(?2)+1, 1) = '/' THEN SUBSTR((s.local_relpath), LENGTH(?2)+2) END END) WHEN SUBSTR((s.local_relpath), 1, LENGTH(?2)) = (?2) THEN CASE WHEN LENGTH(?2) = LENGTH(s.local_relpath) THEN (?4) WHEN SUBSTR((s.local_relpath), LENGTH(?2)+1, 1) = '/' THEN (?4) || SUBSTR((s.local_relpath), LENGTH(?2)+1) END END) drp, 'normal' " \
313 "WHERE s.wc_id = ?1 AND s.local_relpath = ?2 AND s.op_depth = ?3 " \
315 "SELECT s.local_relpath, s.kind, " \
316 " (CASE WHEN (?2) = '' THEN (CASE WHEN (?4) = '' THEN (s.local_relpath) WHEN (s.local_relpath) = '' THEN (?4) ELSE (?4) || '/' || (s.local_relpath) END) WHEN (?4) = '' THEN (CASE WHEN (?2) = '' THEN (s.local_relpath) WHEN SUBSTR((s.local_relpath), 1, LENGTH(?2)) = (?2) THEN CASE WHEN LENGTH(?2) = LENGTH(s.local_relpath) THEN '' WHEN SUBSTR((s.local_relpath), LENGTH(?2)+1, 1) = '/' THEN SUBSTR((s.local_relpath), LENGTH(?2)+2) END END) WHEN SUBSTR((s.local_relpath), 1, LENGTH(?2)) = (?2) THEN CASE WHEN LENGTH(?2) = LENGTH(s.local_relpath) THEN (?4) WHEN SUBSTR((s.local_relpath), LENGTH(?2)+1, 1) = '/' THEN (?4) || SUBSTR((s.local_relpath), LENGTH(?2)+1) END END) drp, d.presence " \
318 "LEFT OUTER JOIN nodes d ON d.wc_id= ?1 AND d.op_depth = ?5 " \
319 " AND d.local_relpath = drp " \
320 "WHERE s.wc_id = ?1 " \
321 " AND (((s.local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((s.local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
322 " AND s.op_depth = ?3 " \
323 "ORDER BY s.local_relpath " \
326 #define STMT_SELECT_DESCENDANTS_OP_DEPTH_RV 30
327 #define STMT_30_INFO {"STMT_SELECT_DESCENDANTS_OP_DEPTH_RV", NULL}
329 "SELECT local_relpath, kind " \
331 "WHERE wc_id = ?1 " \
332 " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
333 " AND op_depth = ?3 " \
334 " AND presence in ('normal', 'incomplete') " \
335 "ORDER BY local_relpath DESC " \
338 #define STMT_COPY_NODE_MOVE 31
339 #define STMT_31_INFO {"STMT_COPY_NODE_MOVE", NULL}
341 "INSERT OR REPLACE INTO nodes ( " \
342 " wc_id, local_relpath, op_depth, parent_relpath, repos_id, repos_path, " \
343 " revision, presence, depth, kind, changed_revision, changed_date, " \
344 " changed_author, checksum, properties, translated_size, last_mod_time, " \
345 " symlink_target, moved_here, moved_to ) " \
347 " s.wc_id, ?4 , ?5 , ?6 , " \
349 " s.repos_path, s.revision, s.presence, s.depth, s.kind, s.changed_revision, " \
350 " s.changed_date, s.changed_author, s.checksum, s.properties, " \
351 " CASE WHEN d.checksum=s.checksum THEN d.translated_size END, " \
352 " CASE WHEN d.checksum=s.checksum THEN d.last_mod_time END, " \
353 " s.symlink_target, 1, d.moved_to " \
355 "LEFT JOIN nodes d ON d.wc_id=?1 AND d.local_relpath=?4 AND d.op_depth=?5 " \
356 "WHERE s.wc_id = ?1 AND s.local_relpath = ?2 AND s.op_depth = ?3 " \
359 #define STMT_SELECT_NO_LONGER_MOVED_RV 32
360 #define STMT_32_INFO {"STMT_SELECT_NO_LONGER_MOVED_RV", NULL}
362 "SELECT d.local_relpath, (CASE WHEN (?2) = '' THEN (CASE WHEN (?4) = '' THEN (d.local_relpath) WHEN (d.local_relpath) = '' THEN (?4) ELSE (?4) || '/' || (d.local_relpath) END) WHEN (?4) = '' THEN (CASE WHEN (?2) = '' THEN (d.local_relpath) WHEN SUBSTR((d.local_relpath), 1, LENGTH(?2)) = (?2) THEN CASE WHEN LENGTH(?2) = LENGTH(d.local_relpath) THEN '' WHEN SUBSTR((d.local_relpath), LENGTH(?2)+1, 1) = '/' THEN SUBSTR((d.local_relpath), LENGTH(?2)+2) END END) WHEN SUBSTR((d.local_relpath), 1, LENGTH(?2)) = (?2) THEN CASE WHEN LENGTH(?2) = LENGTH(d.local_relpath) THEN (?4) WHEN SUBSTR((d.local_relpath), LENGTH(?2)+1, 1) = '/' THEN (?4) || SUBSTR((d.local_relpath), LENGTH(?2)+1) END END) srp, " \
363 " b.presence, b.op_depth " \
365 "LEFT OUTER JOIN nodes b ON b.wc_id = ?1 AND b.local_relpath = d.local_relpath " \
366 " AND b.op_depth = (SELECT MAX(x.op_depth) FROM nodes x " \
367 " WHERE x.wc_id = ?1 " \
368 " AND x.local_relpath = b.local_relpath " \
369 " AND x.op_depth < ?3) " \
370 "WHERE d.wc_id = ?1 " \
371 " AND (((d.local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((d.local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
372 " AND d.op_depth = ?3 " \
373 " AND NOT EXISTS(SELECT * FROM nodes s " \
374 " WHERE s.wc_id = ?1 " \
375 " AND s.local_relpath = srp " \
376 " AND s.op_depth = ?5) " \
377 "ORDER BY d.local_relpath DESC " \
380 #define STMT_SELECT_OP_DEPTH_CHILDREN 33
381 #define STMT_33_INFO {"STMT_SELECT_OP_DEPTH_CHILDREN", NULL}
383 "SELECT local_relpath, kind FROM nodes " \
384 "WHERE wc_id = ?1 " \
385 " AND parent_relpath = ?2 " \
386 " AND op_depth = ?3 " \
387 " AND presence != 'base-deleted' " \
388 " AND file_external is NULL " \
389 "ORDER BY local_relpath " \
392 #define STMT_SELECT_OP_DEPTH_CHILDREN_EXISTS 34
393 #define STMT_34_INFO {"STMT_SELECT_OP_DEPTH_CHILDREN_EXISTS", NULL}
395 "SELECT local_relpath, kind FROM nodes " \
396 "WHERE wc_id = ?1 " \
397 " AND parent_relpath = ?2 " \
398 " AND op_depth = ?3 " \
399 " AND presence IN ('normal', 'incomplete') " \
400 "ORDER BY local_relpath " \
403 #define STMT_SELECT_GE_OP_DEPTH_CHILDREN 35
404 #define STMT_35_INFO {"STMT_SELECT_GE_OP_DEPTH_CHILDREN", NULL}
406 "SELECT 1 FROM nodes " \
407 "WHERE wc_id = ?1 AND parent_relpath = ?2 " \
408 " AND (op_depth > ?3 OR (op_depth = ?3 " \
409 " AND presence IN ('normal', 'incomplete'))) " \
411 "SELECT 1 FROM ACTUAL_NODE a " \
412 "WHERE wc_id = ?1 AND parent_relpath = ?2 " \
413 " AND NOT EXISTS (SELECT 1 FROM nodes n " \
414 " WHERE wc_id = ?1 AND n.local_relpath = a.local_relpath) " \
417 #define STMT_DELETE_SHADOWED_RECURSIVE 36
418 #define STMT_36_INFO {"STMT_DELETE_SHADOWED_RECURSIVE", NULL}
420 "DELETE FROM nodes " \
421 "WHERE wc_id = ?1 " \
422 " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
423 " AND (op_depth < ?3 " \
424 " OR (op_depth = ?3 AND presence = 'base-deleted')) " \
427 #define STMT_CLEAR_MOVED_TO_FROM_DEST 37
428 #define STMT_37_INFO {"STMT_CLEAR_MOVED_TO_FROM_DEST", NULL}
430 "UPDATE NODES SET moved_to = NULL " \
431 "WHERE wc_id = ?1 " \
432 " AND moved_to = ?2 " \
435 #define STMT_SELECT_NOT_PRESENT_DESCENDANTS 38
436 #define STMT_38_INFO {"STMT_SELECT_NOT_PRESENT_DESCENDANTS", NULL}
438 "SELECT local_relpath FROM nodes " \
439 "WHERE wc_id = ?1 AND op_depth = ?3 " \
440 " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
441 " AND presence = 'not-present' " \
444 #define STMT_COMMIT_DESCENDANTS_TO_BASE 39
445 #define STMT_39_INFO {"STMT_COMMIT_DESCENDANTS_TO_BASE", NULL}
447 "UPDATE NODES SET op_depth = 0, " \
449 " repos_path = (CASE WHEN (?2) = '' THEN (CASE WHEN (?5) = '' THEN (local_relpath) WHEN (local_relpath) = '' THEN (?5) ELSE (?5) || '/' || (local_relpath) END) WHEN (?5) = '' THEN (CASE WHEN (?2) = '' THEN (local_relpath) WHEN SUBSTR((local_relpath), 1, LENGTH(?2)) = (?2) THEN CASE WHEN LENGTH(?2) = LENGTH(local_relpath) THEN '' WHEN SUBSTR((local_relpath), LENGTH(?2)+1, 1) = '/' THEN SUBSTR((local_relpath), LENGTH(?2)+2) END END) WHEN SUBSTR((local_relpath), 1, LENGTH(?2)) = (?2) THEN CASE WHEN LENGTH(?2) = LENGTH(local_relpath) THEN (?5) WHEN SUBSTR((local_relpath), LENGTH(?2)+1, 1) = '/' THEN (?5) || SUBSTR((local_relpath), LENGTH(?2)+1) END END), " \
451 " dav_cache = NULL, " \
452 " moved_here = NULL, " \
453 " moved_to = NULL, " \
454 " presence = CASE presence " \
455 " WHEN 'normal' THEN 'normal' " \
456 " WHEN 'excluded' THEN 'excluded' " \
457 " ELSE 'not-present' " \
459 "WHERE wc_id = ?1 " \
460 " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
461 " AND op_depth = ?3 " \
464 #define STMT_SELECT_NODE_CHILDREN 40
465 #define STMT_40_INFO {"STMT_SELECT_NODE_CHILDREN", NULL}
467 "SELECT DISTINCT local_relpath FROM nodes " \
468 "WHERE wc_id = ?1 AND parent_relpath = ?2 " \
469 "ORDER BY local_relpath " \
472 #define STMT_SELECT_WORKING_CHILDREN 41
473 #define STMT_41_INFO {"STMT_SELECT_WORKING_CHILDREN", NULL}
475 "SELECT DISTINCT local_relpath FROM nodes " \
476 "WHERE wc_id = ?1 AND parent_relpath = ?2 " \
477 " AND (op_depth > (SELECT MAX(op_depth) FROM nodes " \
478 " WHERE wc_id = ?1 AND local_relpath = ?2) " \
480 " (op_depth = (SELECT MAX(op_depth) FROM nodes " \
481 " WHERE wc_id = ?1 AND local_relpath = ?2) " \
482 " AND presence IN ('normal', 'incomplete'))) " \
483 "ORDER BY local_relpath " \
486 #define STMT_SELECT_BASE_NOT_PRESENT_CHILDREN 42
487 #define STMT_42_INFO {"STMT_SELECT_BASE_NOT_PRESENT_CHILDREN", NULL}
489 "SELECT local_relpath FROM nodes " \
490 "WHERE wc_id = ?1 AND parent_relpath = ?2 AND op_depth = 0 " \
491 " AND presence = 'not-present' " \
492 "ORDER BY local_relpath " \
495 #define STMT_SELECT_NODE_PROPS 43
496 #define STMT_43_INFO {"STMT_SELECT_NODE_PROPS", NULL}
498 "SELECT properties, presence FROM nodes " \
499 "WHERE wc_id = ?1 AND local_relpath = ?2 " \
500 "ORDER BY op_depth DESC " \
503 #define STMT_SELECT_ACTUAL_PROPS 44
504 #define STMT_44_INFO {"STMT_SELECT_ACTUAL_PROPS", NULL}
506 "SELECT properties FROM actual_node " \
507 "WHERE wc_id = ?1 AND local_relpath = ?2 " \
510 #define STMT_UPDATE_ACTUAL_PROPS 45
511 #define STMT_45_INFO {"STMT_UPDATE_ACTUAL_PROPS", NULL}
513 "UPDATE actual_node SET properties = ?3 " \
514 "WHERE wc_id = ?1 AND local_relpath = ?2 " \
517 #define STMT_INSERT_ACTUAL_PROPS 46
518 #define STMT_46_INFO {"STMT_INSERT_ACTUAL_PROPS", NULL}
520 "INSERT INTO actual_node (wc_id, local_relpath, parent_relpath, properties) " \
521 "VALUES (?1, ?2, ?3, ?4) " \
524 #define STMT_INSERT_LOCK 47
525 #define STMT_47_INFO {"STMT_INSERT_LOCK", NULL}
527 "INSERT OR REPLACE INTO lock " \
528 "(repos_id, repos_relpath, lock_token, lock_owner, lock_comment, " \
530 "VALUES (?1, ?2, ?3, ?4, ?5, ?6) " \
533 #define STMT_SELECT_BASE_NODE_LOCK_TOKENS_RECURSIVE 48
534 #define STMT_48_INFO {"STMT_SELECT_BASE_NODE_LOCK_TOKENS_RECURSIVE", NULL}
536 "SELECT nodes.repos_id, nodes.repos_path, lock_token " \
538 "LEFT JOIN lock ON nodes.repos_id = lock.repos_id " \
539 " AND nodes.repos_path = lock.repos_relpath " \
540 "WHERE wc_id = ?1 AND op_depth = 0 " \
541 " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
544 #define STMT_INSERT_WCROOT 49
545 #define STMT_49_INFO {"STMT_INSERT_WCROOT", NULL}
547 "INSERT INTO wcroot (local_abspath) " \
551 #define STMT_UPDATE_BASE_NODE_DAV_CACHE 50
552 #define STMT_50_INFO {"STMT_UPDATE_BASE_NODE_DAV_CACHE", NULL}
554 "UPDATE nodes SET dav_cache = ?3 " \
555 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
558 #define STMT_SELECT_BASE_DAV_CACHE 51
559 #define STMT_51_INFO {"STMT_SELECT_BASE_DAV_CACHE", NULL}
561 "SELECT dav_cache FROM nodes " \
562 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
565 #define STMT_SELECT_DELETION_INFO 52
566 #define STMT_52_INFO {"STMT_SELECT_DELETION_INFO", NULL}
568 "SELECT b.presence, w.presence, w.op_depth, w.moved_to " \
570 "LEFT JOIN nodes b ON b.wc_id = ?1 AND b.local_relpath = ?2 AND b.op_depth = 0 " \
571 "WHERE w.wc_id = ?1 AND w.local_relpath = ?2 " \
572 " AND w.op_depth = (SELECT MAX(op_depth) FROM nodes d " \
573 " WHERE d.wc_id = ?1 AND d.local_relpath = ?2 " \
574 " AND d.op_depth > 0) " \
578 #define STMT_SELECT_MOVED_TO_NODE 53
579 #define STMT_53_INFO {"STMT_SELECT_MOVED_TO_NODE", NULL}
581 "SELECT op_depth, moved_to " \
583 "WHERE wc_id = ?1 AND local_relpath = ?2 AND moved_to IS NOT NULL " \
584 "ORDER BY op_depth DESC " \
587 #define STMT_SELECT_OP_DEPTH_MOVED_TO 54
588 #define STMT_54_INFO {"STMT_SELECT_OP_DEPTH_MOVED_TO", NULL}
590 "SELECT op_depth, moved_to " \
592 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth > ?3 " \
593 " AND EXISTS(SELECT * from nodes " \
594 " WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \
595 " AND presence IN ('normal', 'incomplete')) " \
596 "ORDER BY op_depth ASC " \
600 #define STMT_SELECT_MOVED_TO 55
601 #define STMT_55_INFO {"STMT_SELECT_MOVED_TO", NULL}
605 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \
608 #define STMT_SELECT_MOVED_BACK 56
609 #define STMT_56_INFO {"STMT_SELECT_MOVED_BACK", NULL}
611 "SELECT u.local_relpath, " \
612 " u.presence, u.repos_id, u.repos_path, u.revision, " \
613 " l.presence, l.repos_id, l.repos_path, l.revision, " \
614 " u.moved_here, u.moved_to " \
616 "LEFT OUTER JOIN nodes l ON l.wc_id = ?1 " \
617 " AND l.local_relpath = u.local_relpath " \
618 " AND l.op_depth = ?3 " \
619 "WHERE u.wc_id = ?1 " \
620 " AND u.local_relpath = ?2 " \
621 " AND u.op_depth = ?4 " \
623 "SELECT u.local_relpath, " \
624 " u.presence, u.repos_id, u.repos_path, u.revision, " \
625 " l.presence, l.repos_id, l.repos_path, l.revision, " \
626 " u.moved_here, NULL " \
628 "LEFT OUTER JOIN nodes l ON l.wc_id=?1 " \
629 " AND l.local_relpath=u.local_relpath " \
630 " AND l.op_depth=?3 " \
631 "WHERE u.wc_id = ?1 " \
632 " AND (((u.local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((u.local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
633 " AND u.op_depth = ?4 " \
636 #define STMT_DELETE_LOCK 57
637 #define STMT_57_INFO {"STMT_DELETE_LOCK", NULL}
639 "DELETE FROM lock " \
640 "WHERE repos_id = ?1 AND repos_relpath = ?2 " \
643 #define STMT_DELETE_LOCK_RECURSIVELY 58
644 #define STMT_58_INFO {"STMT_DELETE_LOCK_RECURSIVELY", NULL}
646 "DELETE FROM lock " \
647 "WHERE repos_id = ?1 AND (repos_relpath = ?2 OR (((repos_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((repos_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
650 #define STMT_CLEAR_BASE_NODE_RECURSIVE_DAV_CACHE 59
651 #define STMT_59_INFO {"STMT_CLEAR_BASE_NODE_RECURSIVE_DAV_CACHE", NULL}
653 "UPDATE nodes SET dav_cache = NULL " \
654 "WHERE dav_cache IS NOT NULL AND wc_id = ?1 AND op_depth = 0 " \
655 " AND (local_relpath = ?2 " \
656 " OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
659 #define STMT_RECURSIVE_UPDATE_NODE_REPO 60
660 #define STMT_60_INFO {"STMT_RECURSIVE_UPDATE_NODE_REPO", NULL}
662 "UPDATE nodes SET repos_id = ?4, dav_cache = NULL " \
663 "WHERE (wc_id = ?1 AND local_relpath = ?2 AND repos_id = ?3) " \
664 " OR (wc_id = ?1 AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
665 " AND repos_id = ?3) " \
668 #define STMT_UPDATE_LOCK_REPOS_ID 61
669 #define STMT_61_INFO {"STMT_UPDATE_LOCK_REPOS_ID", NULL}
671 "UPDATE lock SET repos_id = ?2 " \
672 "WHERE repos_id = ?1 " \
675 #define STMT_UPDATE_NODE_FILEINFO 62
676 #define STMT_62_INFO {"STMT_UPDATE_NODE_FILEINFO", NULL}
678 "UPDATE nodes SET translated_size = ?3, last_mod_time = ?4 " \
679 "WHERE wc_id = ?1 AND local_relpath = ?2 " \
680 " AND op_depth = (SELECT MAX(op_depth) FROM nodes " \
681 " WHERE wc_id = ?1 AND local_relpath = ?2) " \
684 #define STMT_INSERT_ACTUAL_CONFLICT 63
685 #define STMT_63_INFO {"STMT_INSERT_ACTUAL_CONFLICT", NULL}
687 "INSERT INTO actual_node (wc_id, local_relpath, conflict_data, parent_relpath) " \
688 "VALUES (?1, ?2, ?3, ?4) " \
691 #define STMT_UPDATE_ACTUAL_CONFLICT 64
692 #define STMT_64_INFO {"STMT_UPDATE_ACTUAL_CONFLICT", NULL}
694 "UPDATE actual_node SET conflict_data = ?3 " \
695 "WHERE wc_id = ?1 AND local_relpath = ?2 " \
698 #define STMT_UPDATE_ACTUAL_CHANGELISTS 65
699 #define STMT_65_INFO {"STMT_UPDATE_ACTUAL_CHANGELISTS", NULL}
701 "UPDATE actual_node SET changelist = ?3 " \
702 "WHERE wc_id = ?1 " \
703 " AND (local_relpath = ?2 OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
704 " AND local_relpath = (SELECT local_relpath FROM targets_list AS t " \
705 " WHERE wc_id = ?1 " \
706 " AND t.local_relpath = actual_node.local_relpath " \
707 " AND kind = 'file') " \
710 #define STMT_UPDATE_ACTUAL_CLEAR_CHANGELIST 66
711 #define STMT_66_INFO {"STMT_UPDATE_ACTUAL_CLEAR_CHANGELIST", NULL}
713 "UPDATE actual_node SET changelist = NULL " \
714 " WHERE wc_id = ?1 AND local_relpath = ?2 " \
717 #define STMT_MARK_SKIPPED_CHANGELIST_DIRS 67
718 #define STMT_67_INFO {"STMT_MARK_SKIPPED_CHANGELIST_DIRS", NULL}
720 "INSERT INTO changelist_list (wc_id, local_relpath, notify, changelist) " \
721 "SELECT wc_id, local_relpath, 7, ?3 " \
722 "FROM targets_list " \
723 "WHERE wc_id = ?1 " \
724 " AND (local_relpath = ?2 OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
725 " AND kind = 'dir' " \
728 #define STMT_RESET_ACTUAL_WITH_CHANGELIST 68
729 #define STMT_68_INFO {"STMT_RESET_ACTUAL_WITH_CHANGELIST", NULL}
731 "REPLACE INTO actual_node ( " \
732 " wc_id, local_relpath, parent_relpath, changelist) " \
733 "VALUES (?1, ?2, ?3, ?4) " \
736 #define STMT_CREATE_CHANGELIST_LIST 69
737 #define STMT_69_INFO {"STMT_CREATE_CHANGELIST_LIST", NULL}
739 "DROP TABLE IF EXISTS changelist_list; " \
740 "CREATE TEMPORARY TABLE changelist_list ( " \
741 " wc_id INTEGER NOT NULL, " \
742 " local_relpath TEXT NOT NULL, " \
743 " notify INTEGER NOT NULL, " \
744 " changelist TEXT NOT NULL, " \
745 " PRIMARY KEY (wc_id, local_relpath, notify DESC) " \
749 #define STMT_CREATE_CHANGELIST_TRIGGER 70
750 #define STMT_70_INFO {"STMT_CREATE_CHANGELIST_TRIGGER", NULL}
752 "DROP TRIGGER IF EXISTS trigger_changelist_list_change; " \
753 "CREATE TEMPORARY TRIGGER trigger_changelist_list_change " \
754 "BEFORE UPDATE ON actual_node " \
755 "WHEN old.changelist IS NOT new.changelist " \
757 " INSERT INTO changelist_list(wc_id, local_relpath, notify, changelist) " \
758 " SELECT old.wc_id, old.local_relpath, 27, old.changelist " \
759 " WHERE old.changelist is NOT NULL; " \
760 " INSERT INTO changelist_list(wc_id, local_relpath, notify, changelist) " \
761 " SELECT new.wc_id, new.local_relpath, 26, new.changelist " \
762 " WHERE new.changelist IS NOT NULL; " \
766 #define STMT_FINALIZE_CHANGELIST 71
767 #define STMT_71_INFO {"STMT_FINALIZE_CHANGELIST", NULL}
769 "DROP TRIGGER trigger_changelist_list_change; " \
770 "DROP TABLE changelist_list; " \
771 "DROP TABLE targets_list " \
774 #define STMT_SELECT_CHANGELIST_LIST 72
775 #define STMT_72_INFO {"STMT_SELECT_CHANGELIST_LIST", NULL}
777 "SELECT wc_id, local_relpath, notify, changelist " \
778 "FROM changelist_list " \
779 "ORDER BY wc_id, local_relpath ASC, notify DESC " \
782 #define STMT_CREATE_TARGETS_LIST 73
783 #define STMT_73_INFO {"STMT_CREATE_TARGETS_LIST", NULL}
785 "DROP TABLE IF EXISTS targets_list; " \
786 "CREATE TEMPORARY TABLE targets_list ( " \
787 " wc_id INTEGER NOT NULL, " \
788 " local_relpath TEXT NOT NULL, " \
789 " parent_relpath TEXT, " \
790 " kind TEXT NOT NULL, " \
791 " PRIMARY KEY (wc_id, local_relpath) " \
795 #define STMT_DROP_TARGETS_LIST 74
796 #define STMT_74_INFO {"STMT_DROP_TARGETS_LIST", NULL}
798 "DROP TABLE targets_list " \
801 #define STMT_INSERT_TARGET 75
802 #define STMT_75_INFO {"STMT_INSERT_TARGET", NULL}
804 "INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \
805 "SELECT wc_id, local_relpath, parent_relpath, kind " \
806 "FROM nodes_current " \
807 "WHERE wc_id = ?1 " \
808 " AND local_relpath = ?2 " \
811 #define STMT_INSERT_TARGET_DEPTH_FILES 76
812 #define STMT_76_INFO {"STMT_INSERT_TARGET_DEPTH_FILES", NULL}
814 "INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \
815 "SELECT wc_id, local_relpath, parent_relpath, kind " \
816 "FROM nodes_current " \
817 "WHERE wc_id = ?1 " \
818 " AND parent_relpath = ?2 " \
819 " AND kind = 'file' " \
822 #define STMT_INSERT_TARGET_DEPTH_IMMEDIATES 77
823 #define STMT_77_INFO {"STMT_INSERT_TARGET_DEPTH_IMMEDIATES", NULL}
825 "INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \
826 "SELECT wc_id, local_relpath, parent_relpath, kind " \
827 "FROM nodes_current " \
828 "WHERE wc_id = ?1 " \
829 " AND parent_relpath = ?2 " \
832 #define STMT_INSERT_TARGET_DEPTH_INFINITY 78
833 #define STMT_78_INFO {"STMT_INSERT_TARGET_DEPTH_INFINITY", NULL}
835 "INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \
836 "SELECT wc_id, local_relpath, parent_relpath, kind " \
837 "FROM nodes_current " \
838 "WHERE wc_id = ?1 " \
839 " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
842 #define STMT_INSERT_TARGET_WITH_CHANGELIST 79
843 #define STMT_79_INFO {"STMT_INSERT_TARGET_WITH_CHANGELIST", NULL}
845 "INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \
846 "SELECT N.wc_id, N.local_relpath, N.parent_relpath, N.kind " \
847 " FROM actual_node AS A JOIN nodes_current AS N " \
848 " ON A.wc_id = N.wc_id AND A.local_relpath = N.local_relpath " \
849 " WHERE N.wc_id = ?1 " \
850 " AND N.local_relpath = ?2 " \
851 " AND A.changelist = ?3 " \
854 #define STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_FILES 80
855 #define STMT_80_INFO {"STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_FILES", NULL}
857 "INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \
858 "SELECT N.wc_id, N.local_relpath, N.parent_relpath, N.kind " \
859 " FROM actual_node AS A JOIN nodes_current AS N " \
860 " ON A.wc_id = N.wc_id AND A.local_relpath = N.local_relpath " \
861 " WHERE N.wc_id = ?1 " \
862 " AND N.parent_relpath = ?2 " \
863 " AND kind = 'file' " \
864 " AND A.changelist = ?3 " \
867 #define STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_IMMEDIATES 81
868 #define STMT_81_INFO {"STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_IMMEDIATES", NULL}
870 "INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \
871 "SELECT N.wc_id, N.local_relpath, N.parent_relpath, N.kind " \
872 " FROM actual_node AS A JOIN nodes_current AS N " \
873 " ON A.wc_id = N.wc_id AND A.local_relpath = N.local_relpath " \
874 " WHERE N.wc_id = ?1 " \
875 " AND N.parent_relpath = ?2 " \
876 " AND A.changelist = ?3 " \
879 #define STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_INFINITY 82
880 #define STMT_82_INFO {"STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_INFINITY", NULL}
882 "INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \
883 "SELECT N.wc_id, N.local_relpath, N.parent_relpath, N.kind " \
884 " FROM actual_node AS A JOIN nodes_current AS N " \
885 " ON A.wc_id = N.wc_id AND A.local_relpath = N.local_relpath " \
886 " WHERE N.wc_id = ?1 " \
887 " AND (((N.local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((N.local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
888 " AND A.changelist = ?3 " \
891 #define STMT_INSERT_ACTUAL_EMPTIES 83
892 #define STMT_83_INFO {"STMT_INSERT_ACTUAL_EMPTIES", NULL}
894 "INSERT OR IGNORE INTO actual_node ( " \
895 " wc_id, local_relpath, parent_relpath) " \
896 "SELECT wc_id, local_relpath, parent_relpath " \
897 "FROM targets_list " \
900 #define STMT_INSERT_ACTUAL_EMPTIES_FILES 84
901 #define STMT_84_INFO {"STMT_INSERT_ACTUAL_EMPTIES_FILES", NULL}
903 "INSERT OR IGNORE INTO actual_node ( " \
904 " wc_id, local_relpath, parent_relpath) " \
905 "SELECT wc_id, local_relpath, parent_relpath " \
906 "FROM targets_list " \
907 "WHERE kind='file' " \
910 #define STMT_DELETE_ACTUAL_EMPTY 85
911 #define STMT_85_INFO {"STMT_DELETE_ACTUAL_EMPTY", NULL}
913 "DELETE FROM actual_node " \
914 "WHERE wc_id = ?1 AND local_relpath = ?2 " \
915 " AND properties IS NULL " \
916 " AND conflict_data IS NULL " \
917 " AND changelist IS NULL " \
918 " AND text_mod IS NULL " \
919 " AND older_checksum IS NULL " \
920 " AND right_checksum IS NULL " \
921 " AND left_checksum IS NULL " \
924 #define STMT_DELETE_ACTUAL_EMPTIES 86
925 #define STMT_86_INFO {"STMT_DELETE_ACTUAL_EMPTIES", NULL}
927 "DELETE FROM actual_node " \
928 "WHERE wc_id = ?1 " \
929 " AND (local_relpath = ?2 OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
930 " AND properties IS NULL " \
931 " AND conflict_data IS NULL " \
932 " AND changelist IS NULL " \
933 " AND text_mod IS NULL " \
934 " AND older_checksum IS NULL " \
935 " AND right_checksum IS NULL " \
936 " AND left_checksum IS NULL " \
939 #define STMT_DELETE_BASE_NODE 87
940 #define STMT_87_INFO {"STMT_DELETE_BASE_NODE", NULL}
942 "DELETE FROM nodes " \
943 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
946 #define STMT_DELETE_WORKING_NODE 88
947 #define STMT_88_INFO {"STMT_DELETE_WORKING_NODE", NULL}
949 "DELETE FROM nodes " \
950 "WHERE wc_id = ?1 AND local_relpath = ?2 " \
951 " AND op_depth = (SELECT MAX(op_depth) FROM nodes " \
952 " WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth > 0) " \
955 #define STMT_DELETE_LOWEST_WORKING_NODE 89
956 #define STMT_89_INFO {"STMT_DELETE_LOWEST_WORKING_NODE", NULL}
958 "DELETE FROM nodes " \
959 "WHERE wc_id = ?1 AND local_relpath = ?2 " \
960 " AND op_depth = (SELECT MIN(op_depth) FROM nodes " \
961 " WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth > ?3) " \
962 " AND presence = 'base-deleted' " \
965 #define STMT_DELETE_NODE_ALL_LAYERS 90
966 #define STMT_90_INFO {"STMT_DELETE_NODE_ALL_LAYERS", NULL}
968 "DELETE FROM nodes " \
969 "WHERE wc_id = ?1 AND local_relpath = ?2 " \
972 #define STMT_DELETE_NODES_ABOVE_DEPTH_RECURSIVE 91
973 #define STMT_91_INFO {"STMT_DELETE_NODES_ABOVE_DEPTH_RECURSIVE", NULL}
975 "DELETE FROM nodes " \
976 "WHERE wc_id = ?1 " \
977 " AND (local_relpath = ?2 " \
978 " OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
979 " AND op_depth >= ?3 " \
982 #define STMT_DELETE_ACTUAL_NODE 92
983 #define STMT_92_INFO {"STMT_DELETE_ACTUAL_NODE", NULL}
985 "DELETE FROM actual_node " \
986 "WHERE wc_id = ?1 AND local_relpath = ?2 " \
989 #define STMT_DELETE_ACTUAL_NODE_RECURSIVE 93
990 #define STMT_93_INFO {"STMT_DELETE_ACTUAL_NODE_RECURSIVE", NULL}
992 "DELETE FROM actual_node " \
993 "WHERE wc_id = ?1 " \
994 " AND (local_relpath = ?2 " \
995 " OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
998 #define STMT_DELETE_ACTUAL_NODE_LEAVING_CHANGELIST 94
999 #define STMT_94_INFO {"STMT_DELETE_ACTUAL_NODE_LEAVING_CHANGELIST", NULL}
1001 "DELETE FROM actual_node " \
1002 "WHERE wc_id = ?1 " \
1003 " AND local_relpath = ?2 " \
1004 " AND (changelist IS NULL " \
1005 " OR NOT EXISTS (SELECT 1 FROM nodes_current c " \
1006 " WHERE c.wc_id = ?1 AND c.local_relpath = ?2 " \
1007 " AND c.kind = 'file')) " \
1010 #define STMT_DELETE_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE 95
1011 #define STMT_95_INFO {"STMT_DELETE_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE", NULL}
1013 "DELETE FROM actual_node " \
1014 "WHERE wc_id = ?1 " \
1015 " AND (local_relpath = ?2 " \
1016 " OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
1017 " AND (changelist IS NULL " \
1018 " OR NOT EXISTS (SELECT 1 FROM nodes_current c " \
1019 " WHERE c.wc_id = ?1 " \
1020 " AND c.local_relpath = actual_node.local_relpath " \
1021 " AND c.kind = 'file')) " \
1024 #define STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST 96
1025 #define STMT_96_INFO {"STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST", NULL}
1027 "UPDATE actual_node " \
1028 "SET properties = NULL, " \
1029 " text_mod = NULL, " \
1030 " conflict_data = NULL, " \
1031 " tree_conflict_data = NULL, " \
1032 " older_checksum = NULL, " \
1033 " left_checksum = NULL, " \
1034 " right_checksum = NULL " \
1035 "WHERE wc_id = ?1 AND local_relpath = ?2 " \
1038 #define STMT_CLEAR_ACTUAL_NODE_LEAVING_CONFLICT 97
1039 #define STMT_97_INFO {"STMT_CLEAR_ACTUAL_NODE_LEAVING_CONFLICT", NULL}
1041 "UPDATE actual_node " \
1042 "SET properties = NULL, " \
1043 " text_mod = NULL, " \
1044 " tree_conflict_data = NULL, " \
1045 " older_checksum = NULL, " \
1046 " left_checksum = NULL, " \
1047 " right_checksum = NULL, " \
1048 " changelist = NULL " \
1049 "WHERE wc_id = ?1 AND local_relpath = ?2 " \
1052 #define STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE 98
1053 #define STMT_98_INFO {"STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE", NULL}
1055 "UPDATE actual_node " \
1056 "SET properties = NULL, " \
1057 " text_mod = NULL, " \
1058 " conflict_data = NULL, " \
1059 " tree_conflict_data = NULL, " \
1060 " older_checksum = NULL, " \
1061 " left_checksum = NULL, " \
1062 " right_checksum = NULL " \
1063 "WHERE wc_id = ?1 " \
1064 " AND (local_relpath = ?2 " \
1065 " OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
1068 #define STMT_UPDATE_NODE_BASE_DEPTH 99
1069 #define STMT_99_INFO {"STMT_UPDATE_NODE_BASE_DEPTH", NULL}
1071 "UPDATE nodes SET depth = ?3 " \
1072 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
1073 " AND kind='dir' " \
1074 " AND presence IN ('normal', 'incomplete') " \
1077 #define STMT_UPDATE_NODE_BASE_PRESENCE 100
1078 #define STMT_100_INFO {"STMT_UPDATE_NODE_BASE_PRESENCE", NULL}
1080 "UPDATE nodes SET presence = ?3 " \
1081 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
1084 #define STMT_UPDATE_BASE_NODE_PRESENCE_REVNUM_AND_REPOS_PATH 101
1085 #define STMT_101_INFO {"STMT_UPDATE_BASE_NODE_PRESENCE_REVNUM_AND_REPOS_PATH", NULL}
1087 "UPDATE nodes SET presence = ?3, revision = ?4, repos_path = ?5 " \
1088 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
1091 #define STMT_LOOK_FOR_WORK 102
1092 #define STMT_102_INFO {"STMT_LOOK_FOR_WORK", NULL}
1094 "SELECT id FROM work_queue LIMIT 1 " \
1097 #define STMT_INSERT_WORK_ITEM 103
1098 #define STMT_103_INFO {"STMT_INSERT_WORK_ITEM", NULL}
1100 "INSERT INTO work_queue (work) VALUES (?1) " \
1103 #define STMT_SELECT_WORK_ITEM 104
1104 #define STMT_104_INFO {"STMT_SELECT_WORK_ITEM", NULL}
1106 "SELECT id, work FROM work_queue ORDER BY id LIMIT 1 " \
1109 #define STMT_DELETE_WORK_ITEM 105
1110 #define STMT_105_INFO {"STMT_DELETE_WORK_ITEM", NULL}
1112 "DELETE FROM work_queue WHERE id = ?1 " \
1115 #define STMT_INSERT_OR_IGNORE_PRISTINE 106
1116 #define STMT_106_INFO {"STMT_INSERT_OR_IGNORE_PRISTINE", NULL}
1118 "INSERT OR IGNORE INTO pristine (checksum, md5_checksum, size, refcount) " \
1119 "VALUES (?1, ?2, ?3, 0) " \
1122 #define STMT_INSERT_PRISTINE 107
1123 #define STMT_107_INFO {"STMT_INSERT_PRISTINE", NULL}
1125 "INSERT INTO pristine (checksum, md5_checksum, size, refcount) " \
1126 "VALUES (?1, ?2, ?3, 0) " \
1129 #define STMT_SELECT_PRISTINE 108
1130 #define STMT_108_INFO {"STMT_SELECT_PRISTINE", NULL}
1132 "SELECT md5_checksum " \
1134 "WHERE checksum = ?1 " \
1137 #define STMT_SELECT_PRISTINE_SIZE 109
1138 #define STMT_109_INFO {"STMT_SELECT_PRISTINE_SIZE", NULL}
1142 "WHERE checksum = ?1 LIMIT 1 " \
1145 #define STMT_SELECT_PRISTINE_BY_MD5 110
1146 #define STMT_110_INFO {"STMT_SELECT_PRISTINE_BY_MD5", NULL}
1148 "SELECT checksum " \
1150 "WHERE md5_checksum = ?1 " \
1153 #define STMT_SELECT_UNREFERENCED_PRISTINES 111
1154 #define STMT_111_INFO {"STMT_SELECT_UNREFERENCED_PRISTINES", NULL}
1156 "SELECT checksum " \
1158 "WHERE refcount = 0 " \
1161 #define STMT_DELETE_PRISTINE_IF_UNREFERENCED 112
1162 #define STMT_112_INFO {"STMT_DELETE_PRISTINE_IF_UNREFERENCED", NULL}
1164 "DELETE FROM pristine " \
1165 "WHERE checksum = ?1 AND refcount = 0 " \
1168 #define STMT_SELECT_COPY_PRISTINES 113
1169 #define STMT_113_INFO {"STMT_SELECT_COPY_PRISTINES", NULL}
1171 "SELECT n.checksum, md5_checksum, size " \
1172 "FROM nodes_current n " \
1173 "LEFT JOIN pristine p ON n.checksum = p.checksum " \
1174 "WHERE wc_id = ?1 " \
1175 " AND n.local_relpath = ?2 " \
1176 " AND n.checksum IS NOT NULL " \
1178 "SELECT n.checksum, md5_checksum, size " \
1180 "LEFT JOIN pristine p ON n.checksum = p.checksum " \
1181 "WHERE wc_id = ?1 " \
1182 " AND (((n.local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((n.local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
1183 " AND op_depth >= " \
1184 " (SELECT MAX(op_depth) FROM nodes WHERE wc_id = ?1 AND local_relpath = ?2) " \
1185 " AND n.checksum IS NOT NULL " \
1188 #define STMT_VACUUM 114
1189 #define STMT_114_INFO {"STMT_VACUUM", NULL}
1194 #define STMT_SELECT_CONFLICT_VICTIMS 115
1195 #define STMT_115_INFO {"STMT_SELECT_CONFLICT_VICTIMS", NULL}
1197 "SELECT local_relpath, conflict_data " \
1198 "FROM actual_node " \
1199 "WHERE wc_id = ?1 AND parent_relpath = ?2 AND " \
1200 " NOT (conflict_data IS NULL) " \
1203 #define STMT_INSERT_WC_LOCK 116
1204 #define STMT_116_INFO {"STMT_INSERT_WC_LOCK", NULL}
1206 "INSERT INTO wc_lock (wc_id, local_dir_relpath, locked_levels) " \
1207 "VALUES (?1, ?2, ?3) " \
1210 #define STMT_SELECT_WC_LOCK 117
1211 #define STMT_117_INFO {"STMT_SELECT_WC_LOCK", NULL}
1213 "SELECT locked_levels FROM wc_lock " \
1214 "WHERE wc_id = ?1 AND local_dir_relpath = ?2 " \
1217 #define STMT_SELECT_ANCESTOR_WCLOCKS 118
1218 #define STMT_118_INFO {"STMT_SELECT_ANCESTOR_WCLOCKS", NULL}
1220 "SELECT local_dir_relpath, locked_levels FROM wc_lock " \
1221 "WHERE wc_id = ?1 " \
1222 " AND ((local_dir_relpath >= ?3 AND local_dir_relpath <= ?2) " \
1223 " OR local_dir_relpath = '') " \
1226 #define STMT_DELETE_WC_LOCK 119
1227 #define STMT_119_INFO {"STMT_DELETE_WC_LOCK", NULL}
1229 "DELETE FROM wc_lock " \
1230 "WHERE wc_id = ?1 AND local_dir_relpath = ?2 " \
1233 #define STMT_FIND_WC_LOCK 120
1234 #define STMT_120_INFO {"STMT_FIND_WC_LOCK", NULL}
1236 "SELECT local_dir_relpath FROM wc_lock " \
1237 "WHERE wc_id = ?1 " \
1238 " AND (((local_dir_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_dir_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
1241 #define STMT_FIND_CONFLICT_DESCENDANT 121
1242 #define STMT_121_INFO {"STMT_FIND_CONFLICT_DESCENDANT", NULL}
1244 "SELECT 1 FROM actual_node " \
1245 "WHERE wc_id = ?1 " \
1246 " AND local_relpath > (?2 || '/') " \
1247 " AND local_relpath < (?2 || '0') " \
1248 " AND conflict_data IS NOT NULL " \
1252 #define STMT_DELETE_WC_LOCK_ORPHAN 122
1253 #define STMT_122_INFO {"STMT_DELETE_WC_LOCK_ORPHAN", NULL}
1255 "DELETE FROM wc_lock " \
1256 "WHERE wc_id = ?1 AND local_dir_relpath = ?2 " \
1257 "AND NOT EXISTS (SELECT 1 FROM nodes " \
1258 " WHERE nodes.wc_id = ?1 " \
1259 " AND nodes.local_relpath = wc_lock.local_dir_relpath) " \
1262 #define STMT_DELETE_WC_LOCK_ORPHAN_RECURSIVE 123
1263 #define STMT_123_INFO {"STMT_DELETE_WC_LOCK_ORPHAN_RECURSIVE", NULL}
1265 "DELETE FROM wc_lock " \
1266 "WHERE wc_id = ?1 " \
1267 " AND (local_dir_relpath = ?2 " \
1268 " OR (((local_dir_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_dir_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
1269 " AND NOT EXISTS (SELECT 1 FROM nodes " \
1270 " WHERE nodes.wc_id = ?1 " \
1271 " AND nodes.local_relpath = wc_lock.local_dir_relpath) " \
1274 #define STMT_APPLY_CHANGES_TO_BASE_NODE 124
1275 #define STMT_124_INFO {"STMT_APPLY_CHANGES_TO_BASE_NODE", NULL}
1277 "INSERT OR REPLACE INTO nodes ( " \
1278 " wc_id, local_relpath, op_depth, parent_relpath, repos_id, repos_path, " \
1279 " revision, presence, depth, kind, changed_revision, changed_date, " \
1280 " changed_author, checksum, properties, dav_cache, symlink_target, " \
1281 " inherited_props, file_external ) " \
1282 "VALUES (?1, ?2, 0, " \
1283 " ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10, ?11, ?12, ?13, ?14, ?15, ?16, ?17, " \
1284 " (SELECT file_external FROM nodes " \
1285 " WHERE wc_id = ?1 " \
1286 " AND local_relpath = ?2 " \
1287 " AND op_depth = 0)) " \
1290 #define STMT_INSTALL_WORKING_NODE_FOR_DELETE 125
1291 #define STMT_125_INFO {"STMT_INSTALL_WORKING_NODE_FOR_DELETE", NULL}
1293 "INSERT INTO nodes ( " \
1294 " wc_id, local_relpath, op_depth, " \
1295 " parent_relpath, presence, kind) " \
1296 "VALUES(?1, ?2, ?3, ?4, 'base-deleted', ?5) " \
1299 #define STMT_REPLACE_WITH_BASE_DELETED 126
1300 #define STMT_126_INFO {"STMT_REPLACE_WITH_BASE_DELETED", NULL}
1302 "INSERT OR REPLACE INTO nodes (wc_id, local_relpath, op_depth, parent_relpath, " \
1303 " kind, moved_to, presence) " \
1304 "SELECT wc_id, local_relpath, op_depth, parent_relpath, " \
1305 " kind, moved_to, 'base-deleted' " \
1307 " WHERE wc_id = ?1 " \
1308 " AND local_relpath = ?2 " \
1309 " AND op_depth = ?3 " \
1312 #define STMT_INSERT_DELETE_FROM_NODE_RECURSIVE 127
1313 #define STMT_127_INFO {"STMT_INSERT_DELETE_FROM_NODE_RECURSIVE", NULL}
1315 "INSERT INTO nodes ( " \
1316 " wc_id, local_relpath, op_depth, parent_relpath, presence, kind) " \
1317 "SELECT wc_id, local_relpath, ?4 , parent_relpath, 'base-deleted', " \
1320 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \
1322 "SELECT wc_id, local_relpath, ?4 , parent_relpath, 'base-deleted', " \
1325 "WHERE wc_id = ?1 " \
1326 " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
1327 " AND op_depth = ?3 " \
1328 " AND presence NOT IN ('base-deleted', 'not-present', 'excluded', 'server-excluded') " \
1329 " AND file_external IS NULL " \
1330 "ORDER BY local_relpath " \
1333 #define STMT_INSERT_WORKING_NODE_FROM_BASE_COPY 128
1334 #define STMT_128_INFO {"STMT_INSERT_WORKING_NODE_FROM_BASE_COPY", NULL}
1336 "INSERT OR REPLACE INTO nodes ( " \
1337 " wc_id, local_relpath, op_depth, parent_relpath, repos_id, repos_path, " \
1338 " revision, presence, depth, kind, changed_revision, changed_date, " \
1339 " changed_author, checksum, properties, translated_size, last_mod_time, " \
1340 " symlink_target, moved_to ) " \
1341 "SELECT wc_id, local_relpath, ?3 , parent_relpath, repos_id, " \
1342 " repos_path, revision, presence, depth, kind, changed_revision, " \
1343 " changed_date, changed_author, checksum, properties, translated_size, " \
1344 " last_mod_time, symlink_target, " \
1345 " (SELECT moved_to FROM nodes " \
1346 " WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3) moved_to " \
1348 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
1351 #define STMT_INSERT_DELETE_FROM_BASE 129
1352 #define STMT_129_INFO {"STMT_INSERT_DELETE_FROM_BASE", NULL}
1354 "INSERT INTO nodes ( " \
1355 " wc_id, local_relpath, op_depth, parent_relpath, presence, kind) " \
1356 "SELECT wc_id, local_relpath, ?3 , parent_relpath, " \
1357 " 'base-deleted', kind " \
1359 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
1362 #define STMT_UPDATE_OP_DEPTH_INCREASE_RECURSIVE 130
1363 #define STMT_130_INFO {"STMT_UPDATE_OP_DEPTH_INCREASE_RECURSIVE", NULL}
1365 "UPDATE nodes SET op_depth = ?3 + 1 " \
1366 "WHERE wc_id = ?1 " \
1367 " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
1368 " AND op_depth = ?3 " \
1371 #define STMT_COPY_OP_DEPTH_RECURSIVE 131
1372 #define STMT_131_INFO {"STMT_COPY_OP_DEPTH_RECURSIVE", NULL}
1374 "INSERT INTO nodes ( " \
1375 " wc_id, local_relpath, op_depth, parent_relpath, repos_id, repos_path, " \
1376 " revision, presence, depth, kind, changed_revision, changed_date, " \
1377 " changed_author, checksum, properties, translated_size, last_mod_time, " \
1378 " symlink_target, moved_here, moved_to ) " \
1380 " wc_id, local_relpath, ?4, parent_relpath, repos_id, " \
1381 " repos_path, revision, presence, depth, kind, changed_revision, " \
1382 " changed_date, changed_author, checksum, properties, translated_size, " \
1383 " last_mod_time, symlink_target, NULL, NULL " \
1385 "WHERE wc_id = ?1 AND op_depth = ?3 AND local_relpath = ?2 " \
1388 " wc_id, local_relpath, ?4, parent_relpath, repos_id, " \
1389 " repos_path, revision, presence, depth, kind, changed_revision, " \
1390 " changed_date, changed_author, checksum, properties, translated_size, " \
1391 " last_mod_time, symlink_target, NULL, NULL " \
1393 "WHERE wc_id = ?1 AND op_depth = ?3 " \
1394 " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
1395 "ORDER BY local_relpath " \
1398 #define STMT_DOES_NODE_EXIST 132
1399 #define STMT_132_INFO {"STMT_DOES_NODE_EXIST", NULL}
1401 "SELECT 1 FROM nodes WHERE wc_id = ?1 AND local_relpath = ?2 " \
1405 #define STMT_HAS_SERVER_EXCLUDED_DESCENDANTS 133
1406 #define STMT_133_INFO {"STMT_HAS_SERVER_EXCLUDED_DESCENDANTS", NULL}
1408 "SELECT local_relpath FROM nodes " \
1409 "WHERE wc_id = ?1 " \
1410 " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
1411 " AND op_depth = 0 AND presence = 'server-excluded' " \
1415 #define STMT_SELECT_ALL_EXCLUDED_DESCENDANTS 134
1416 #define STMT_134_INFO {"STMT_SELECT_ALL_EXCLUDED_DESCENDANTS", NULL}
1418 "SELECT local_relpath FROM nodes " \
1419 "WHERE wc_id = ?1 " \
1420 " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
1421 " AND op_depth = 0 " \
1422 " AND (presence = 'server-excluded' OR presence = 'excluded') " \
1425 #define STMT_INSERT_WORKING_NODE_COPY_FROM 135
1426 #define STMT_135_INFO {"STMT_INSERT_WORKING_NODE_COPY_FROM", NULL}
1428 "INSERT OR REPLACE INTO nodes ( " \
1429 " wc_id, local_relpath, op_depth, parent_relpath, repos_id, " \
1430 " repos_path, revision, presence, depth, moved_here, kind, changed_revision, " \
1431 " changed_date, changed_author, checksum, properties, translated_size, " \
1432 " last_mod_time, symlink_target, moved_to ) " \
1433 "SELECT wc_id, ?3 , ?4 , ?5 , " \
1434 " repos_id, repos_path, revision, ?6 , depth, " \
1435 " ?7, kind, changed_revision, changed_date, " \
1436 " changed_author, checksum, properties, translated_size, " \
1437 " last_mod_time, symlink_target, " \
1438 " (SELECT dst.moved_to FROM nodes AS dst " \
1439 " WHERE dst.wc_id = ?1 " \
1440 " AND dst.local_relpath = ?3 " \
1441 " AND dst.op_depth = ?4) " \
1442 "FROM nodes_current " \
1443 "WHERE wc_id = ?1 AND local_relpath = ?2 " \
1446 #define STMT_INSERT_WORKING_NODE_COPY_FROM_DEPTH 136
1447 #define STMT_136_INFO {"STMT_INSERT_WORKING_NODE_COPY_FROM_DEPTH", NULL}
1449 "INSERT OR REPLACE INTO nodes ( " \
1450 " wc_id, local_relpath, op_depth, parent_relpath, repos_id, " \
1451 " repos_path, revision, presence, depth, moved_here, kind, changed_revision, " \
1452 " changed_date, changed_author, checksum, properties, translated_size, " \
1453 " last_mod_time, symlink_target, moved_to ) " \
1454 "SELECT wc_id, ?3 , ?4 , ?5 , " \
1455 " repos_id, repos_path, revision, ?6 , depth, " \
1456 " ?8 , kind, changed_revision, changed_date, " \
1457 " changed_author, checksum, properties, translated_size, " \
1458 " last_mod_time, symlink_target, " \
1459 " (SELECT dst.moved_to FROM nodes AS dst " \
1460 " WHERE dst.wc_id = ?1 " \
1461 " AND dst.local_relpath = ?3 " \
1462 " AND dst.op_depth = ?4) " \
1464 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?7 " \
1467 #define STMT_UPDATE_BASE_REVISION 137
1468 #define STMT_137_INFO {"STMT_UPDATE_BASE_REVISION", NULL}
1470 "UPDATE nodes SET revision = ?3 " \
1471 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
1474 #define STMT_UPDATE_BASE_REPOS 138
1475 #define STMT_138_INFO {"STMT_UPDATE_BASE_REPOS", NULL}
1477 "UPDATE nodes SET repos_id = ?3, repos_path = ?4 " \
1478 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
1481 #define STMT_ACTUAL_HAS_CHILDREN 139
1482 #define STMT_139_INFO {"STMT_ACTUAL_HAS_CHILDREN", NULL}
1484 "SELECT 1 FROM actual_node " \
1485 "WHERE wc_id = ?1 AND parent_relpath = ?2 " \
1489 #define STMT_INSERT_EXTERNAL 140
1490 #define STMT_140_INFO {"STMT_INSERT_EXTERNAL", NULL}
1492 "INSERT OR REPLACE INTO externals ( " \
1493 " wc_id, local_relpath, parent_relpath, presence, kind, def_local_relpath, " \
1494 " repos_id, def_repos_relpath, def_operational_revision, def_revision) " \
1495 "VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10) " \
1498 #define STMT_SELECT_EXTERNAL_INFO 141
1499 #define STMT_141_INFO {"STMT_SELECT_EXTERNAL_INFO", NULL}
1501 "SELECT presence, kind, def_local_relpath, repos_id, " \
1502 " def_repos_relpath, def_operational_revision, def_revision " \
1503 "FROM externals WHERE wc_id = ?1 AND local_relpath = ?2 " \
1507 #define STMT_DELETE_FILE_EXTERNALS 142
1508 #define STMT_142_INFO {"STMT_DELETE_FILE_EXTERNALS", NULL}
1510 "DELETE FROM nodes " \
1511 "WHERE wc_id = ?1 " \
1512 " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
1513 " AND op_depth = 0 " \
1514 " AND file_external IS NOT NULL " \
1517 #define STMT_DELETE_FILE_EXTERNAL_REGISTATIONS 143
1518 #define STMT_143_INFO {"STMT_DELETE_FILE_EXTERNAL_REGISTATIONS", NULL}
1520 "DELETE FROM externals " \
1521 "WHERE wc_id = ?1 " \
1522 " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
1523 " AND kind != 'dir' " \
1526 #define STMT_DELETE_EXTERNAL_REGISTATIONS 144
1527 #define STMT_144_INFO {"STMT_DELETE_EXTERNAL_REGISTATIONS", NULL}
1529 "DELETE FROM externals " \
1530 "WHERE wc_id = ?1 " \
1531 " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
1534 #define STMT_SELECT_COMMITTABLE_EXTERNALS_BELOW 145
1535 #define STMT_145_INFO {"STMT_SELECT_COMMITTABLE_EXTERNALS_BELOW", NULL}
1537 "SELECT local_relpath, kind, def_repos_relpath, " \
1538 " (SELECT root FROM repository AS r WHERE r.id = e.repos_id) " \
1539 "FROM externals e " \
1540 "WHERE wc_id = ?1 " \
1541 " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
1542 " AND def_revision IS NULL " \
1543 " AND repos_id = (SELECT repos_id " \
1544 " FROM nodes AS n " \
1545 " WHERE n.wc_id = ?1 " \
1546 " AND n.local_relpath = '' " \
1547 " AND n.op_depth = 0) " \
1548 " AND ((kind='dir') " \
1549 " OR EXISTS (SELECT 1 FROM nodes " \
1550 " WHERE nodes.wc_id = e.wc_id " \
1551 " AND nodes.local_relpath = e.parent_relpath)) " \
1554 #define STMT_SELECT_COMMITTABLE_EXTERNALS_IMMEDIATELY_BELOW 146
1555 #define STMT_146_INFO {"STMT_SELECT_COMMITTABLE_EXTERNALS_IMMEDIATELY_BELOW", NULL}
1557 "SELECT local_relpath, kind, def_repos_relpath, " \
1558 " (SELECT root FROM repository AS r WHERE r.id = e.repos_id) " \
1559 "FROM externals e " \
1560 "WHERE wc_id = ?1 " \
1561 " AND (((e.local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((e.local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
1562 " AND parent_relpath = ?2 " \
1563 " AND def_revision IS NULL " \
1564 " AND repos_id = (SELECT repos_id " \
1565 " FROM nodes AS n " \
1566 " WHERE n.wc_id = ?1 " \
1567 " AND n.local_relpath = '' " \
1568 " AND n.op_depth = 0) " \
1569 " AND ((kind='dir') " \
1570 " OR EXISTS (SELECT 1 FROM nodes " \
1571 " WHERE nodes.wc_id = e.wc_id " \
1572 " AND nodes.local_relpath = e.parent_relpath)) " \
1575 #define STMT_SELECT_EXTERNALS_DEFINED 147
1576 #define STMT_147_INFO {"STMT_SELECT_EXTERNALS_DEFINED", NULL}
1578 "SELECT local_relpath, def_local_relpath " \
1580 "WHERE (wc_id = ?1 AND def_local_relpath = ?2) " \
1581 " OR (wc_id = ?1 AND (((def_local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((def_local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
1584 #define STMT_DELETE_EXTERNAL 148
1585 #define STMT_148_INFO {"STMT_DELETE_EXTERNAL", NULL}
1587 "DELETE FROM externals " \
1588 "WHERE wc_id = ?1 AND local_relpath = ?2 " \
1591 #define STMT_SELECT_EXTERNAL_PROPERTIES 149
1592 #define STMT_149_INFO {"STMT_SELECT_EXTERNAL_PROPERTIES", NULL}
1594 "SELECT IFNULL((SELECT properties FROM actual_node a " \
1595 " WHERE a.wc_id = ?1 AND A.local_relpath = n.local_relpath), " \
1597 " local_relpath, depth " \
1598 "FROM nodes_current n " \
1599 "WHERE wc_id = ?1 AND local_relpath = ?2 " \
1600 " AND kind = 'dir' AND presence IN ('normal', 'incomplete') " \
1602 "SELECT IFNULL((SELECT properties FROM actual_node a " \
1603 " WHERE a.wc_id = ?1 AND A.local_relpath = n.local_relpath), " \
1605 " local_relpath, depth " \
1606 "FROM nodes_current n " \
1607 "WHERE wc_id = ?1 AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
1608 " AND kind = 'dir' AND presence IN ('normal', 'incomplete') " \
1611 #define STMT_SELECT_CURRENT_PROPS_RECURSIVE 150
1612 #define STMT_150_INFO {"STMT_SELECT_CURRENT_PROPS_RECURSIVE", NULL}
1614 "SELECT IFNULL((SELECT properties FROM actual_node a " \
1615 " WHERE a.wc_id = ?1 AND A.local_relpath = n.local_relpath), " \
1618 "FROM nodes_current n " \
1619 "WHERE (wc_id = ?1 AND local_relpath = ?2) " \
1620 " OR (wc_id = ?1 AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
1623 #define STMT_PRAGMA_LOCKING_MODE 151
1624 #define STMT_151_INFO {"STMT_PRAGMA_LOCKING_MODE", NULL}
1626 "PRAGMA locking_mode = exclusive; " \
1627 "PRAGMA journal_mode = DELETE " \
1630 #define STMT_INSERT_ACTUAL_NODE 152
1631 #define STMT_152_INFO {"STMT_INSERT_ACTUAL_NODE", NULL}
1633 "INSERT OR REPLACE INTO actual_node ( " \
1634 " wc_id, local_relpath, parent_relpath, properties, changelist, conflict_data) " \
1635 "VALUES (?1, ?2, ?3, ?4, ?5, ?6) " \
1638 #define STMT_SELECT_ALL_FILES 153
1639 #define STMT_153_INFO {"STMT_SELECT_ALL_FILES", NULL}
1641 "SELECT local_relpath FROM nodes_current " \
1642 "WHERE wc_id = ?1 AND parent_relpath = ?2 AND kind = 'file' " \
1645 #define STMT_UPDATE_NODE_PROPS 154
1646 #define STMT_154_INFO {"STMT_UPDATE_NODE_PROPS", NULL}
1648 "UPDATE nodes SET properties = ?4 " \
1649 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \
1652 #define STMT_PRAGMA_TABLE_INFO_NODES 155
1653 #define STMT_155_INFO {"STMT_PRAGMA_TABLE_INFO_NODES", NULL}
1655 "PRAGMA table_info(\"NODES\") " \
1658 #define STMT_CREATE_TARGET_PROP_CACHE 156
1659 #define STMT_156_INFO {"STMT_CREATE_TARGET_PROP_CACHE", NULL}
1661 "DROP TABLE IF EXISTS target_prop_cache; " \
1662 "CREATE TEMPORARY TABLE target_prop_cache ( " \
1663 " local_relpath TEXT NOT NULL PRIMARY KEY, " \
1664 " kind TEXT NOT NULL, " \
1665 " properties BLOB " \
1669 #define STMT_CACHE_TARGET_PROPS 157
1670 #define STMT_157_INFO {"STMT_CACHE_TARGET_PROPS", NULL}
1672 "INSERT INTO target_prop_cache(local_relpath, kind, properties) " \
1673 " SELECT n.local_relpath, n.kind, " \
1674 " IFNULL((SELECT properties FROM actual_node AS a " \
1675 " WHERE a.wc_id = n.wc_id " \
1676 " AND a.local_relpath = n.local_relpath), " \
1678 " FROM targets_list AS t " \
1679 " JOIN nodes AS n " \
1680 " ON n.wc_id = ?1 " \
1681 " AND n.local_relpath = t.local_relpath " \
1682 " AND n.op_depth = (SELECT MAX(op_depth) FROM nodes AS n3 " \
1683 " WHERE n3.wc_id = ?1 " \
1684 " AND n3.local_relpath = t.local_relpath) " \
1685 " WHERE t.wc_id = ?1 " \
1686 " AND (presence='normal' OR presence='incomplete') " \
1687 " ORDER BY t.local_relpath " \
1690 #define STMT_CACHE_TARGET_PRISTINE_PROPS 158
1691 #define STMT_158_INFO {"STMT_CACHE_TARGET_PRISTINE_PROPS", NULL}
1693 "INSERT INTO target_prop_cache(local_relpath, kind, properties) " \
1694 " SELECT n.local_relpath, n.kind, " \
1695 " CASE n.presence " \
1696 " WHEN 'base-deleted' " \
1697 " THEN (SELECT properties FROM nodes AS p " \
1698 " WHERE p.wc_id = n.wc_id " \
1699 " AND p.local_relpath = n.local_relpath " \
1700 " AND p.op_depth < n.op_depth " \
1701 " ORDER BY p.op_depth DESC ) " \
1702 " ELSE properties END " \
1703 " FROM targets_list AS t " \
1704 " JOIN nodes AS n " \
1705 " ON n.wc_id = ?1 " \
1706 " AND n.local_relpath = t.local_relpath " \
1707 " AND n.op_depth = (SELECT MAX(op_depth) FROM nodes AS n3 " \
1708 " WHERE n3.wc_id = ?1 " \
1709 " AND n3.local_relpath = t.local_relpath) " \
1710 " WHERE t.wc_id = ?1 " \
1711 " AND (presence = 'normal' " \
1712 " OR presence = 'incomplete' " \
1713 " OR presence = 'base-deleted') " \
1714 " ORDER BY t.local_relpath " \
1717 #define STMT_SELECT_ALL_TARGET_PROP_CACHE 159
1718 #define STMT_159_INFO {"STMT_SELECT_ALL_TARGET_PROP_CACHE", NULL}
1720 "SELECT local_relpath, properties FROM target_prop_cache " \
1721 "ORDER BY local_relpath " \
1724 #define STMT_DROP_TARGET_PROP_CACHE 160
1725 #define STMT_160_INFO {"STMT_DROP_TARGET_PROP_CACHE", NULL}
1727 "DROP TABLE target_prop_cache; " \
1730 #define STMT_CREATE_REVERT_LIST 161
1731 #define STMT_161_INFO {"STMT_CREATE_REVERT_LIST", NULL}
1733 "DROP TABLE IF EXISTS revert_list; " \
1734 "CREATE TEMPORARY TABLE revert_list ( " \
1735 " local_relpath TEXT NOT NULL, " \
1736 " actual INTEGER NOT NULL, " \
1737 " conflict_data BLOB, " \
1738 " notify INTEGER, " \
1739 " op_depth INTEGER, " \
1740 " repos_id INTEGER, " \
1742 " PRIMARY KEY (local_relpath, actual) " \
1744 "DROP TRIGGER IF EXISTS trigger_revert_list_nodes; " \
1745 "CREATE TEMPORARY TRIGGER trigger_revert_list_nodes " \
1746 "BEFORE DELETE ON nodes " \
1748 " INSERT OR REPLACE INTO revert_list(local_relpath, actual, op_depth, " \
1749 " repos_id, kind) " \
1750 " SELECT OLD.local_relpath, 0, OLD.op_depth, OLD.repos_id, OLD.kind; " \
1752 "DROP TRIGGER IF EXISTS trigger_revert_list_actual_delete; " \
1753 "CREATE TEMPORARY TRIGGER trigger_revert_list_actual_delete " \
1754 "BEFORE DELETE ON actual_node " \
1756 " INSERT OR REPLACE INTO revert_list(local_relpath, actual, conflict_data, " \
1758 " SELECT OLD.local_relpath, 1, OLD.conflict_data, " \
1760 " WHEN OLD.properties IS NOT NULL " \
1762 " WHEN NOT EXISTS(SELECT 1 FROM NODES n " \
1763 " WHERE n.wc_id = OLD.wc_id " \
1764 " AND n.local_relpath = OLD.local_relpath) " \
1767 " WHERE OLD.conflict_data IS NOT NULL " \
1768 " OR notify IS NOT NULL; " \
1770 "DROP TRIGGER IF EXISTS trigger_revert_list_actual_update; " \
1771 "CREATE TEMPORARY TRIGGER trigger_revert_list_actual_update " \
1772 "BEFORE UPDATE ON actual_node " \
1774 " INSERT OR REPLACE INTO revert_list(local_relpath, actual, conflict_data, " \
1776 " SELECT OLD.local_relpath, 1, OLD.conflict_data, " \
1778 " WHEN OLD.properties IS NOT NULL " \
1780 " WHEN NOT EXISTS(SELECT 1 FROM NODES n " \
1781 " WHERE n.wc_id = OLD.wc_id " \
1782 " AND n.local_relpath = OLD.local_relpath) " \
1785 " WHERE OLD.conflict_data IS NOT NULL " \
1786 " OR notify IS NOT NULL; " \
1790 #define STMT_DROP_REVERT_LIST_TRIGGERS 162
1791 #define STMT_162_INFO {"STMT_DROP_REVERT_LIST_TRIGGERS", NULL}
1793 "DROP TRIGGER trigger_revert_list_nodes; " \
1794 "DROP TRIGGER trigger_revert_list_actual_delete; " \
1795 "DROP TRIGGER trigger_revert_list_actual_update " \
1798 #define STMT_SELECT_REVERT_LIST 163
1799 #define STMT_163_INFO {"STMT_SELECT_REVERT_LIST", NULL}
1801 "SELECT actual, notify, kind, op_depth, repos_id, conflict_data " \
1802 "FROM revert_list " \
1803 "WHERE local_relpath = ?1 " \
1804 "ORDER BY actual DESC " \
1807 #define STMT_SELECT_REVERT_LIST_COPIED_CHILDREN 164
1808 #define STMT_164_INFO {"STMT_SELECT_REVERT_LIST_COPIED_CHILDREN", NULL}
1810 "SELECT local_relpath, kind " \
1811 "FROM revert_list " \
1812 "WHERE (((local_relpath) > (CASE (?1) WHEN '' THEN '' ELSE (?1) || '/' END)) AND ((local_relpath) < CASE (?1) WHEN '' THEN X'FFFF' ELSE (?1) || '0' END)) " \
1813 " AND op_depth >= ?2 " \
1814 " AND repos_id IS NOT NULL " \
1815 "ORDER BY local_relpath " \
1818 #define STMT_DELETE_REVERT_LIST 165
1819 #define STMT_165_INFO {"STMT_DELETE_REVERT_LIST", NULL}
1821 "DELETE FROM revert_list WHERE local_relpath = ?1 " \
1824 #define STMT_SELECT_REVERT_LIST_RECURSIVE 166
1825 #define STMT_166_INFO {"STMT_SELECT_REVERT_LIST_RECURSIVE", NULL}
1827 "SELECT p.local_relpath, n.kind, a.notify, a.kind " \
1828 "FROM (SELECT DISTINCT local_relpath " \
1829 " FROM revert_list " \
1830 " WHERE (local_relpath = ?1 " \
1831 " OR (((local_relpath) > (CASE (?1) WHEN '' THEN '' ELSE (?1) || '/' END)) AND ((local_relpath) < CASE (?1) WHEN '' THEN X'FFFF' ELSE (?1) || '0' END)))) p " \
1832 "LEFT JOIN revert_list n ON n.local_relpath=p.local_relpath AND n.actual=0 " \
1833 "LEFT JOIN revert_list a ON a.local_relpath=p.local_relpath AND a.actual=1 " \
1834 "ORDER BY p.local_relpath " \
1837 #define STMT_DELETE_REVERT_LIST_RECURSIVE 167
1838 #define STMT_167_INFO {"STMT_DELETE_REVERT_LIST_RECURSIVE", NULL}
1840 "DELETE FROM revert_list " \
1841 "WHERE (local_relpath = ?1 " \
1842 " OR (((local_relpath) > (CASE (?1) WHEN '' THEN '' ELSE (?1) || '/' END)) AND ((local_relpath) < CASE (?1) WHEN '' THEN X'FFFF' ELSE (?1) || '0' END))) " \
1845 #define STMT_DROP_REVERT_LIST 168
1846 #define STMT_168_INFO {"STMT_DROP_REVERT_LIST", NULL}
1848 "DROP TABLE IF EXISTS revert_list " \
1851 #define STMT_CREATE_DELETE_LIST 169
1852 #define STMT_169_INFO {"STMT_CREATE_DELETE_LIST", NULL}
1854 "DROP TABLE IF EXISTS delete_list; " \
1855 "CREATE TEMPORARY TABLE delete_list ( " \
1856 " local_relpath TEXT PRIMARY KEY NOT NULL UNIQUE " \
1860 #define STMT_INSERT_DELETE_LIST 170
1861 #define STMT_170_INFO {"STMT_INSERT_DELETE_LIST", NULL}
1863 "INSERT INTO delete_list(local_relpath) " \
1866 "SELECT local_relpath FROM nodes AS n " \
1867 "WHERE wc_id = ?1 " \
1868 " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
1869 " AND op_depth >= ?3 " \
1870 " AND op_depth = (SELECT MAX(s.op_depth) FROM nodes AS s " \
1871 " WHERE s.wc_id = ?1 " \
1872 " AND s.local_relpath = n.local_relpath) " \
1873 " AND presence NOT IN ('base-deleted', 'not-present', 'excluded', 'server-excluded') " \
1874 " AND file_external IS NULL " \
1875 "ORDER by local_relpath " \
1878 #define STMT_SELECT_DELETE_LIST 171
1879 #define STMT_171_INFO {"STMT_SELECT_DELETE_LIST", NULL}
1881 "SELECT local_relpath FROM delete_list " \
1882 "ORDER BY local_relpath " \
1885 #define STMT_FINALIZE_DELETE 172
1886 #define STMT_172_INFO {"STMT_FINALIZE_DELETE", NULL}
1888 "DROP TABLE IF EXISTS delete_list " \
1891 #define STMT_CREATE_UPDATE_MOVE_LIST 173
1892 #define STMT_173_INFO {"STMT_CREATE_UPDATE_MOVE_LIST", NULL}
1894 "DROP TABLE IF EXISTS update_move_list; " \
1895 "CREATE TEMPORARY TABLE update_move_list ( " \
1896 " local_relpath TEXT PRIMARY KEY NOT NULL UNIQUE, " \
1897 " action INTEGER NOT NULL, " \
1898 " kind TEXT NOT NULL, " \
1899 " content_state INTEGER NOT NULL, " \
1900 " prop_state INTEGER NOT NULL " \
1904 #define STMT_INSERT_UPDATE_MOVE_LIST 174
1905 #define STMT_174_INFO {"STMT_INSERT_UPDATE_MOVE_LIST", NULL}
1907 "INSERT INTO update_move_list(local_relpath, action, kind, content_state, " \
1909 "VALUES (?1, ?2, ?3, ?4, ?5) " \
1912 #define STMT_SELECT_UPDATE_MOVE_LIST 175
1913 #define STMT_175_INFO {"STMT_SELECT_UPDATE_MOVE_LIST", NULL}
1915 "SELECT local_relpath, action, kind, content_state, prop_state " \
1916 "FROM update_move_list " \
1917 "ORDER BY local_relpath " \
1920 #define STMT_FINALIZE_UPDATE_MOVE 176
1921 #define STMT_176_INFO {"STMT_FINALIZE_UPDATE_MOVE", NULL}
1923 "DROP TABLE IF EXISTS update_move_list " \
1926 #define STMT_MOVE_NOTIFY_TO_REVERT 177
1927 #define STMT_177_INFO {"STMT_MOVE_NOTIFY_TO_REVERT", NULL}
1929 "INSERT INTO revert_list (local_relpath, notify, kind, actual) " \
1930 " SELECT local_relpath, 2, kind, 1 FROM update_move_list; " \
1931 "DROP TABLE update_move_list " \
1934 #define STMT_SELECT_MIN_MAX_REVISIONS 178
1935 #define STMT_178_INFO {"STMT_SELECT_MIN_MAX_REVISIONS", NULL}
1937 "SELECT MIN(revision), MAX(revision), " \
1938 " MIN(changed_revision), MAX(changed_revision) FROM nodes " \
1939 " WHERE wc_id = ?1 " \
1940 " AND (local_relpath = ?2 " \
1941 " OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
1942 " AND presence IN ('normal', 'incomplete') " \
1943 " AND file_external IS NULL " \
1944 " AND op_depth = 0 " \
1947 #define STMT_HAS_SPARSE_NODES 179
1948 #define STMT_179_INFO {"STMT_HAS_SPARSE_NODES", NULL}
1950 "SELECT 1 FROM nodes " \
1951 "WHERE wc_id = ?1 " \
1952 " AND (local_relpath = ?2 " \
1953 " OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
1954 " AND op_depth = 0 " \
1955 " AND (presence IN ('server-excluded', 'excluded') " \
1956 " OR depth NOT IN ('infinity', 'unknown')) " \
1957 " AND file_external IS NULL " \
1961 #define STMT_SUBTREE_HAS_TREE_MODIFICATIONS 180
1962 #define STMT_180_INFO {"STMT_SUBTREE_HAS_TREE_MODIFICATIONS", NULL}
1964 "SELECT 1 FROM nodes " \
1965 "WHERE wc_id = ?1 " \
1966 " AND (local_relpath = ?2 " \
1967 " OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
1968 " AND op_depth > 0 " \
1972 #define STMT_SUBTREE_HAS_PROP_MODIFICATIONS 181
1973 #define STMT_181_INFO {"STMT_SUBTREE_HAS_PROP_MODIFICATIONS", NULL}
1975 "SELECT 1 FROM actual_node " \
1976 "WHERE wc_id = ?1 " \
1977 " AND (local_relpath = ?2 " \
1978 " OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
1979 " AND properties IS NOT NULL " \
1983 #define STMT_HAS_SWITCHED 182
1984 #define STMT_182_INFO {"STMT_HAS_SWITCHED", NULL}
1988 "WHERE wc_id = ?1 " \
1989 " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
1990 " AND op_depth = 0 " \
1991 " AND file_external IS NULL " \
1992 " AND presence IN ('normal', 'incomplete') " \
1993 " AND repos_path IS NOT (CASE WHEN (?2) = '' THEN (CASE WHEN (?3) = '' THEN (local_relpath) WHEN (local_relpath) = '' THEN (?3) ELSE (?3) || '/' || (local_relpath) END) WHEN (?3) = '' THEN (CASE WHEN (?2) = '' THEN (local_relpath) WHEN SUBSTR((local_relpath), 1, LENGTH(?2)) = (?2) THEN CASE WHEN LENGTH(?2) = LENGTH(local_relpath) THEN '' WHEN SUBSTR((local_relpath), LENGTH(?2)+1, 1) = '/' THEN SUBSTR((local_relpath), LENGTH(?2)+2) END END) WHEN SUBSTR((local_relpath), 1, LENGTH(?2)) = (?2) THEN CASE WHEN LENGTH(?2) = LENGTH(local_relpath) THEN (?3) WHEN SUBSTR((local_relpath), LENGTH(?2)+1, 1) = '/' THEN (?3) || SUBSTR((local_relpath), LENGTH(?2)+1) END END) " \
1997 #define STMT_SELECT_MOVED_FROM_RELPATH 183
1998 #define STMT_183_INFO {"STMT_SELECT_MOVED_FROM_RELPATH", NULL}
2000 "SELECT local_relpath, op_depth FROM nodes " \
2001 "WHERE wc_id = ?1 AND moved_to = ?2 AND op_depth > 0 " \
2004 #define STMT_UPDATE_MOVED_TO_RELPATH 184
2005 #define STMT_184_INFO {"STMT_UPDATE_MOVED_TO_RELPATH", NULL}
2007 "UPDATE nodes SET moved_to = ?4 " \
2008 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \
2011 #define STMT_CLEAR_MOVED_TO_RELPATH 185
2012 #define STMT_185_INFO {"STMT_CLEAR_MOVED_TO_RELPATH", NULL}
2014 "UPDATE nodes SET moved_to = NULL " \
2015 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \
2018 #define STMT_CLEAR_MOVED_HERE_RECURSIVE 186
2019 #define STMT_186_INFO {"STMT_CLEAR_MOVED_HERE_RECURSIVE", NULL}
2021 "UPDATE nodes SET moved_here = NULL " \
2022 "WHERE wc_id = ?1 " \
2023 " AND (local_relpath = ?2 OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
2024 " AND op_depth = ?3 " \
2027 #define STMT_SELECT_MOVED_HERE_CHILDREN 187
2028 #define STMT_187_INFO {"STMT_SELECT_MOVED_HERE_CHILDREN", NULL}
2030 "SELECT moved_to, local_relpath FROM nodes " \
2031 "WHERE wc_id = ?1 AND op_depth > 0 " \
2032 " AND (((moved_to) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((moved_to) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
2035 #define STMT_SELECT_MOVED_FOR_DELETE 188
2036 #define STMT_188_INFO {"STMT_SELECT_MOVED_FOR_DELETE", NULL}
2038 "SELECT local_relpath, moved_to, op_depth, " \
2039 " (SELECT CASE WHEN r.moved_here THEN r.op_depth END FROM nodes r " \
2040 " WHERE r.wc_id = ?1 " \
2041 " AND r.local_relpath = n.local_relpath " \
2042 " AND r.op_depth < n.op_depth " \
2043 " ORDER BY r.op_depth DESC LIMIT 1) AS moved_here_op_depth " \
2045 "WHERE wc_id = ?1 " \
2046 " AND (local_relpath = ?2 OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
2047 " AND moved_to IS NOT NULL " \
2048 " AND op_depth >= ?3 " \
2051 #define STMT_SELECT_MOVED_FROM_FOR_DELETE 189
2052 #define STMT_189_INFO {"STMT_SELECT_MOVED_FROM_FOR_DELETE", NULL}
2054 "SELECT local_relpath, op_depth, " \
2055 " (SELECT CASE WHEN r.moved_here THEN r.op_depth END FROM nodes r " \
2056 " WHERE r.wc_id = ?1 " \
2057 " AND r.local_relpath = n.local_relpath " \
2058 " AND r.op_depth < n.op_depth " \
2059 " ORDER BY r.op_depth DESC LIMIT 1) AS moved_here_op_depth " \
2061 "WHERE wc_id = ?1 AND moved_to = ?2 AND op_depth > 0 " \
2064 #define STMT_UPDATE_MOVED_TO_DESCENDANTS 190
2065 #define STMT_190_INFO {"STMT_UPDATE_MOVED_TO_DESCENDANTS", NULL}
2067 "UPDATE nodes SET moved_to = (CASE WHEN (?2) = '' THEN (CASE WHEN (?3) = '' THEN (moved_to) WHEN (moved_to) = '' THEN (?3) ELSE (?3) || '/' || (moved_to) END) WHEN (?3) = '' THEN (CASE WHEN (?2) = '' THEN (moved_to) WHEN SUBSTR((moved_to), 1, LENGTH(?2)) = (?2) THEN CASE WHEN LENGTH(?2) = LENGTH(moved_to) THEN '' WHEN SUBSTR((moved_to), LENGTH(?2)+1, 1) = '/' THEN SUBSTR((moved_to), LENGTH(?2)+2) END END) WHEN SUBSTR((moved_to), 1, LENGTH(?2)) = (?2) THEN CASE WHEN LENGTH(?2) = LENGTH(moved_to) THEN (?3) WHEN SUBSTR((moved_to), LENGTH(?2)+1, 1) = '/' THEN (?3) || SUBSTR((moved_to), LENGTH(?2)+1) END END) " \
2068 " WHERE wc_id = ?1 " \
2069 " AND (((moved_to) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((moved_to) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
2072 #define STMT_CLEAR_MOVED_TO_DESCENDANTS 191
2073 #define STMT_191_INFO {"STMT_CLEAR_MOVED_TO_DESCENDANTS", NULL}
2075 "UPDATE nodes SET moved_to = NULL " \
2076 " WHERE wc_id = ?1 " \
2077 " AND (((moved_to) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((moved_to) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
2080 #define STMT_SELECT_MOVED_PAIR3 192
2081 #define STMT_192_INFO {"STMT_SELECT_MOVED_PAIR3", NULL}
2083 "SELECT n.local_relpath, d.moved_to, d.op_depth, n.kind " \
2085 "JOIN nodes d ON d.wc_id = ?1 AND d.local_relpath = n.local_relpath " \
2086 " AND d.op_depth = (SELECT MIN(dd.op_depth) " \
2088 " WHERE dd.wc_id = ?1 " \
2089 " AND dd.local_relpath = d.local_relpath " \
2090 " AND dd.op_depth > ?3) " \
2091 "WHERE n.wc_id = ?1 AND n.local_relpath = ?2 AND n.op_depth = ?3 " \
2092 " AND d.moved_to IS NOT NULL " \
2094 "SELECT n.local_relpath, d.moved_to, d.op_depth, n.kind " \
2096 "JOIN nodes d ON d.wc_id = ?1 AND d.local_relpath = n.local_relpath " \
2097 " AND d.op_depth = (SELECT MIN(dd.op_depth) " \
2099 " WHERE dd.wc_id = ?1 " \
2100 " AND dd.local_relpath = d.local_relpath " \
2101 " AND dd.op_depth > ?3) " \
2102 "WHERE n.wc_id = ?1 AND (((n.local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((n.local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
2103 " AND n.op_depth = ?3 " \
2104 " AND d.moved_to IS NOT NULL " \
2105 "ORDER BY n.local_relpath " \
2108 #define STMT_SELECT_MOVED_OUTSIDE 193
2109 #define STMT_193_INFO {"STMT_SELECT_MOVED_OUTSIDE", NULL}
2111 "SELECT local_relpath, moved_to, op_depth FROM nodes " \
2112 "WHERE wc_id = ?1 " \
2113 " AND (local_relpath = ?2 OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
2114 " AND op_depth >= ?3 " \
2115 " AND moved_to IS NOT NULL " \
2116 " AND NOT (((moved_to) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((moved_to) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
2119 #define STMT_SELECT_MOVED_DESCENDANTS_SRC 194
2120 #define STMT_194_INFO {"STMT_SELECT_MOVED_DESCENDANTS_SRC", NULL}
2122 "SELECT s.op_depth, n.local_relpath, n.kind, n.repos_path, s.moved_to " \
2124 "JOIN nodes s ON s.wc_id = n.wc_id AND s.local_relpath = n.local_relpath " \
2125 " AND s.op_depth = (SELECT MIN(d.op_depth) " \
2127 " WHERE d.wc_id = ?1 " \
2128 " AND d.local_relpath = s.local_relpath " \
2129 " AND d.op_depth > ?3) " \
2130 "WHERE n.wc_id = ?1 AND n.op_depth = ?3 " \
2131 " AND (n.local_relpath = ?2 OR (((n.local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((n.local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
2132 " AND s.moved_to IS NOT NULL " \
2135 #define STMT_COMMIT_UPDATE_ORIGIN 195
2136 #define STMT_195_INFO {"STMT_COMMIT_UPDATE_ORIGIN", NULL}
2138 "UPDATE nodes SET repos_id = ?4, " \
2139 " repos_path = (CASE WHEN (?2) = '' THEN (CASE WHEN (?5) = '' THEN (local_relpath) WHEN (local_relpath) = '' THEN (?5) ELSE (?5) || '/' || (local_relpath) END) WHEN (?5) = '' THEN (CASE WHEN (?2) = '' THEN (local_relpath) WHEN SUBSTR((local_relpath), 1, LENGTH(?2)) = (?2) THEN CASE WHEN LENGTH(?2) = LENGTH(local_relpath) THEN '' WHEN SUBSTR((local_relpath), LENGTH(?2)+1, 1) = '/' THEN SUBSTR((local_relpath), LENGTH(?2)+2) END END) WHEN SUBSTR((local_relpath), 1, LENGTH(?2)) = (?2) THEN CASE WHEN LENGTH(?2) = LENGTH(local_relpath) THEN (?5) WHEN SUBSTR((local_relpath), LENGTH(?2)+1, 1) = '/' THEN (?5) || SUBSTR((local_relpath), LENGTH(?2)+1) END END), " \
2141 "WHERE wc_id = ?1 " \
2142 " AND (local_relpath = ?2 " \
2143 " OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
2144 " AND op_depth = ?3 " \
2147 #define STMT_HAS_LAYER_BETWEEN 196
2148 #define STMT_196_INFO {"STMT_HAS_LAYER_BETWEEN", NULL}
2150 "SELECT 1 FROM NODES " \
2151 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth > ?3 AND op_depth < ?4 " \
2154 #define STMT_SELECT_REPOS_PATH_REVISION 197
2155 #define STMT_197_INFO {"STMT_SELECT_REPOS_PATH_REVISION", NULL}
2157 "SELECT local_relpath, repos_path, revision FROM nodes " \
2158 "WHERE wc_id = ?1 " \
2159 " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
2160 " AND op_depth = 0 " \
2161 "ORDER BY local_relpath " \
2164 #define STMT_SELECT_HAS_NON_FILE_CHILDREN 198
2165 #define STMT_198_INFO {"STMT_SELECT_HAS_NON_FILE_CHILDREN", NULL}
2167 "SELECT 1 FROM nodes " \
2168 "WHERE wc_id = ?1 AND parent_relpath = ?2 AND op_depth = ?3 AND kind != 'file' " \
2172 #define STMT_SELECT_HAS_GRANDCHILDREN 199
2173 #define STMT_199_INFO {"STMT_SELECT_HAS_GRANDCHILDREN", NULL}
2175 "SELECT 1 FROM nodes " \
2176 "WHERE wc_id = ?1 " \
2177 " AND (((parent_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((parent_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
2178 " AND op_depth = ?3 " \
2179 " AND file_external IS NULL " \
2183 #define STMT_SELECT_ALL_NODES 200
2184 #define STMT_200_INFO {"STMT_SELECT_ALL_NODES", NULL}
2186 "SELECT op_depth, local_relpath, parent_relpath, file_external FROM nodes " \
2187 "WHERE wc_id = ?1 " \
2190 #define STMT_SELECT_IPROPS 201
2191 #define STMT_201_INFO {"STMT_SELECT_IPROPS", NULL}
2193 "SELECT inherited_props FROM nodes " \
2194 "WHERE wc_id = ?1 " \
2195 " AND local_relpath = ?2 " \
2196 " AND op_depth = 0 " \
2199 #define STMT_UPDATE_IPROP 202
2200 #define STMT_202_INFO {"STMT_UPDATE_IPROP", NULL}
2203 "SET inherited_props = ?3 " \
2204 "WHERE (wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0) " \
2207 #define STMT_SELECT_IPROPS_NODE 203
2208 #define STMT_203_INFO {"STMT_SELECT_IPROPS_NODE", NULL}
2210 "SELECT local_relpath, repos_path FROM nodes " \
2211 "WHERE wc_id = ?1 " \
2212 " AND local_relpath = ?2 " \
2213 " AND op_depth = 0 " \
2214 " AND (inherited_props not null) " \
2217 #define STMT_SELECT_IPROPS_RECURSIVE 204
2218 #define STMT_204_INFO {"STMT_SELECT_IPROPS_RECURSIVE", NULL}
2220 "SELECT local_relpath, repos_path FROM nodes " \
2221 "WHERE wc_id = ?1 " \
2222 " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
2223 " AND op_depth = 0 " \
2224 " AND (inherited_props not null) " \
2227 #define STMT_SELECT_IPROPS_CHILDREN 205
2228 #define STMT_205_INFO {"STMT_SELECT_IPROPS_CHILDREN", NULL}
2230 "SELECT local_relpath, repos_path FROM nodes " \
2231 "WHERE wc_id = ?1 " \
2232 " AND parent_relpath = ?2 " \
2233 " AND op_depth = 0 " \
2234 " AND (inherited_props not null) " \
2237 #define STMT_HAVE_STAT1_TABLE 206
2238 #define STMT_206_INFO {"STMT_HAVE_STAT1_TABLE", NULL}
2240 "SELECT 1 FROM sqlite_master WHERE name='sqlite_stat1' AND type='table' " \
2244 #define STMT_CREATE_SCHEMA 207
2245 #define STMT_207_INFO {"STMT_CREATE_SCHEMA", NULL}
2247 "CREATE TABLE REPOSITORY ( " \
2248 " id INTEGER PRIMARY KEY AUTOINCREMENT, " \
2249 " root TEXT UNIQUE NOT NULL, " \
2250 " uuid TEXT NOT NULL " \
2252 "CREATE INDEX I_UUID ON REPOSITORY (uuid); " \
2253 "CREATE INDEX I_ROOT ON REPOSITORY (root); " \
2254 "CREATE TABLE WCROOT ( " \
2255 " id INTEGER PRIMARY KEY AUTOINCREMENT, " \
2256 " local_abspath TEXT UNIQUE " \
2258 "CREATE UNIQUE INDEX I_LOCAL_ABSPATH ON WCROOT (local_abspath); " \
2259 "CREATE TABLE PRISTINE ( " \
2260 " checksum TEXT NOT NULL PRIMARY KEY, " \
2261 " compression INTEGER, " \
2262 " size INTEGER NOT NULL, " \
2263 " refcount INTEGER NOT NULL, " \
2264 " md5_checksum TEXT NOT NULL " \
2266 "CREATE INDEX I_PRISTINE_MD5 ON PRISTINE (md5_checksum); " \
2267 "CREATE TABLE ACTUAL_NODE ( " \
2268 " wc_id INTEGER NOT NULL REFERENCES WCROOT (id), " \
2269 " local_relpath TEXT NOT NULL, " \
2270 " parent_relpath TEXT, " \
2271 " properties BLOB, " \
2272 " conflict_old TEXT, " \
2273 " conflict_new TEXT, " \
2274 " conflict_working TEXT, " \
2275 " prop_reject TEXT, " \
2276 " changelist TEXT, " \
2277 " text_mod TEXT, " \
2278 " tree_conflict_data TEXT, " \
2279 " conflict_data BLOB, " \
2280 " older_checksum TEXT REFERENCES PRISTINE (checksum), " \
2281 " left_checksum TEXT REFERENCES PRISTINE (checksum), " \
2282 " right_checksum TEXT REFERENCES PRISTINE (checksum), " \
2283 " PRIMARY KEY (wc_id, local_relpath) " \
2285 "CREATE UNIQUE INDEX I_ACTUAL_PARENT ON ACTUAL_NODE (wc_id, parent_relpath, " \
2286 " local_relpath); " \
2287 "CREATE TABLE LOCK ( " \
2288 " repos_id INTEGER NOT NULL REFERENCES REPOSITORY (id), " \
2289 " repos_relpath TEXT NOT NULL, " \
2290 " lock_token TEXT NOT NULL, " \
2291 " lock_owner TEXT, " \
2292 " lock_comment TEXT, " \
2293 " lock_date INTEGER, " \
2294 " PRIMARY KEY (repos_id, repos_relpath) " \
2296 "CREATE TABLE WORK_QUEUE ( " \
2297 " id INTEGER PRIMARY KEY AUTOINCREMENT, " \
2298 " work BLOB NOT NULL " \
2300 "CREATE TABLE WC_LOCK ( " \
2301 " wc_id INTEGER NOT NULL REFERENCES WCROOT (id), " \
2302 " local_dir_relpath TEXT NOT NULL, " \
2303 " locked_levels INTEGER NOT NULL DEFAULT -1, " \
2304 " PRIMARY KEY (wc_id, local_dir_relpath) " \
2306 "PRAGMA user_version = " \
2307 APR_STRINGIFY(SVN_WC__VERSION) \
2311 #define STMT_CREATE_NODES 208
2312 #define STMT_208_INFO {"STMT_CREATE_NODES", NULL}
2314 "CREATE TABLE NODES ( " \
2315 " wc_id INTEGER NOT NULL REFERENCES WCROOT (id), " \
2316 " local_relpath TEXT NOT NULL, " \
2317 " op_depth INTEGER NOT NULL, " \
2318 " parent_relpath TEXT, " \
2319 " repos_id INTEGER REFERENCES REPOSITORY (id), " \
2320 " repos_path TEXT, " \
2321 " revision INTEGER, " \
2322 " presence TEXT NOT NULL, " \
2323 " moved_here INTEGER, " \
2324 " moved_to TEXT, " \
2325 " kind TEXT NOT NULL, " \
2326 " properties BLOB, " \
2328 " checksum TEXT REFERENCES PRISTINE (checksum), " \
2329 " symlink_target TEXT, " \
2330 " changed_revision INTEGER, " \
2331 " changed_date INTEGER, " \
2332 " changed_author TEXT, " \
2333 " translated_size INTEGER, " \
2334 " last_mod_time INTEGER, " \
2335 " dav_cache BLOB, " \
2336 " file_external INTEGER, " \
2337 " inherited_props BLOB, " \
2338 " PRIMARY KEY (wc_id, local_relpath, op_depth) " \
2340 "CREATE UNIQUE INDEX I_NODES_PARENT ON NODES (wc_id, parent_relpath, " \
2341 " local_relpath, op_depth); " \
2342 "CREATE UNIQUE INDEX I_NODES_MOVED ON NODES (wc_id, moved_to, op_depth); " \
2343 "CREATE VIEW NODES_CURRENT AS " \
2344 " SELECT * FROM nodes AS n " \
2345 " WHERE op_depth = (SELECT MAX(op_depth) FROM nodes AS n2 " \
2346 " WHERE n2.wc_id = n.wc_id " \
2347 " AND n2.local_relpath = n.local_relpath); " \
2348 "CREATE VIEW NODES_BASE AS " \
2349 " SELECT * FROM nodes " \
2350 " WHERE op_depth = 0; " \
2353 #define STMT_CREATE_NODES_TRIGGERS 209
2354 #define STMT_209_INFO {"STMT_CREATE_NODES_TRIGGERS", NULL}
2356 "CREATE TRIGGER nodes_insert_trigger " \
2357 "AFTER INSERT ON nodes " \
2358 "WHEN NEW.checksum IS NOT NULL " \
2360 " UPDATE pristine SET refcount = refcount + 1 " \
2361 " WHERE checksum = NEW.checksum; " \
2363 "CREATE TRIGGER nodes_delete_trigger " \
2364 "AFTER DELETE ON nodes " \
2365 "WHEN OLD.checksum IS NOT NULL " \
2367 " UPDATE pristine SET refcount = refcount - 1 " \
2368 " WHERE checksum = OLD.checksum; " \
2370 "CREATE TRIGGER nodes_update_checksum_trigger " \
2371 "AFTER UPDATE OF checksum ON nodes " \
2372 "WHEN NEW.checksum IS NOT OLD.checksum " \
2374 " UPDATE pristine SET refcount = refcount + 1 " \
2375 " WHERE checksum = NEW.checksum; " \
2376 " UPDATE pristine SET refcount = refcount - 1 " \
2377 " WHERE checksum = OLD.checksum; " \
2381 #define STMT_CREATE_EXTERNALS 210
2382 #define STMT_210_INFO {"STMT_CREATE_EXTERNALS", NULL}
2384 "CREATE TABLE EXTERNALS ( " \
2385 " wc_id INTEGER NOT NULL REFERENCES WCROOT (id), " \
2386 " local_relpath TEXT NOT NULL, " \
2387 " parent_relpath TEXT NOT NULL, " \
2388 " repos_id INTEGER NOT NULL REFERENCES REPOSITORY (id), " \
2389 " presence TEXT NOT NULL, " \
2390 " kind TEXT NOT NULL, " \
2391 " def_local_relpath TEXT NOT NULL, " \
2392 " def_repos_relpath TEXT NOT NULL, " \
2393 " def_operational_revision TEXT, " \
2394 " def_revision TEXT, " \
2395 " PRIMARY KEY (wc_id, local_relpath) " \
2397 "CREATE UNIQUE INDEX I_EXTERNALS_DEFINED ON EXTERNALS (wc_id, " \
2398 " def_local_relpath, " \
2399 " local_relpath); " \
2402 #define STMT_INSTALL_SCHEMA_STATISTICS 211
2403 #define STMT_211_INFO {"STMT_INSTALL_SCHEMA_STATISTICS", NULL}
2405 "ANALYZE sqlite_master; " \
2406 "DELETE FROM sqlite_stat1 " \
2407 "WHERE tbl in ('NODES', 'ACTUAL_NODE', 'LOCK', 'WC_LOCK', 'EXTERNALS'); " \
2408 "INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES " \
2409 " ('NODES', 'sqlite_autoindex_NODES_1', '8000 8000 2 1'); " \
2410 "INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES " \
2411 " ('NODES', 'I_NODES_PARENT', '8000 8000 10 2 1'); " \
2412 "INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES " \
2413 " ('NODES', 'I_NODES_MOVED', '8000 8000 1 1'); " \
2414 "INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES " \
2415 " ('ACTUAL_NODE', 'sqlite_autoindex_ACTUAL_NODE_1', '8000 8000 1'); " \
2416 "INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES " \
2417 " ('ACTUAL_NODE', 'I_ACTUAL_PARENT', '8000 8000 10 1'); " \
2418 "INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES " \
2419 " ('LOCK', 'sqlite_autoindex_LOCK_1', '100 100 1'); " \
2420 "INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES " \
2421 " ('WC_LOCK', 'sqlite_autoindex_WC_LOCK_1', '100 100 1'); " \
2422 "INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES " \
2423 " ('EXTERNALS','sqlite_autoindex_EXTERNALS_1', '100 100 1'); " \
2424 "INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES " \
2425 " ('EXTERNALS','I_EXTERNALS_DEFINED', '100 100 3 1'); " \
2426 "ANALYZE sqlite_master; " \
2429 #define STMT_UPGRADE_TO_20 212
2430 #define STMT_212_INFO {"STMT_UPGRADE_TO_20", NULL}
2432 "UPDATE BASE_NODE SET checksum = (SELECT checksum FROM pristine " \
2433 " WHERE md5_checksum = BASE_NODE.checksum) " \
2434 "WHERE EXISTS (SELECT 1 FROM pristine WHERE md5_checksum = BASE_NODE.checksum); " \
2435 "UPDATE WORKING_NODE SET checksum = (SELECT checksum FROM pristine " \
2436 " WHERE md5_checksum = WORKING_NODE.checksum) " \
2437 "WHERE EXISTS (SELECT 1 FROM pristine " \
2438 " WHERE md5_checksum = WORKING_NODE.checksum); " \
2439 "INSERT INTO NODES ( " \
2440 " wc_id, local_relpath, op_depth, parent_relpath, " \
2441 " repos_id, repos_path, revision, " \
2442 " presence, depth, moved_here, moved_to, kind, " \
2443 " changed_revision, changed_date, changed_author, " \
2444 " checksum, properties, translated_size, last_mod_time, " \
2445 " dav_cache, symlink_target, file_external ) " \
2446 "SELECT wc_id, local_relpath, 0 , parent_relpath, " \
2447 " repos_id, repos_relpath, revnum, " \
2448 " presence, depth, NULL , NULL , kind, " \
2449 " changed_rev, changed_date, changed_author, " \
2450 " checksum, properties, translated_size, last_mod_time, " \
2451 " dav_cache, symlink_target, file_external " \
2452 "FROM BASE_NODE; " \
2453 "INSERT INTO NODES ( " \
2454 " wc_id, local_relpath, op_depth, parent_relpath, " \
2455 " repos_id, repos_path, revision, " \
2456 " presence, depth, moved_here, moved_to, kind, " \
2457 " changed_revision, changed_date, changed_author, " \
2458 " checksum, properties, translated_size, last_mod_time, " \
2459 " dav_cache, symlink_target, file_external ) " \
2460 "SELECT wc_id, local_relpath, 2 , parent_relpath, " \
2461 " copyfrom_repos_id, copyfrom_repos_path, copyfrom_revnum, " \
2462 " presence, depth, NULL , NULL , kind, " \
2463 " changed_rev, changed_date, changed_author, " \
2464 " checksum, properties, translated_size, last_mod_time, " \
2465 " NULL , symlink_target, NULL " \
2466 "FROM WORKING_NODE; " \
2467 "DROP TABLE BASE_NODE; " \
2468 "DROP TABLE WORKING_NODE; " \
2469 "PRAGMA user_version = 20; " \
2472 #define STMT_UPGRADE_TO_21 213
2473 #define STMT_213_INFO {"STMT_UPGRADE_TO_21", NULL}
2475 "PRAGMA user_version = 21; " \
2478 #define STMT_UPGRADE_21_SELECT_OLD_TREE_CONFLICT 214
2479 #define STMT_214_INFO {"STMT_UPGRADE_21_SELECT_OLD_TREE_CONFLICT", NULL}
2481 "SELECT wc_id, local_relpath, tree_conflict_data " \
2482 "FROM actual_node " \
2483 "WHERE tree_conflict_data IS NOT NULL " \
2486 #define STMT_UPGRADE_21_ERASE_OLD_CONFLICTS 215
2487 #define STMT_215_INFO {"STMT_UPGRADE_21_ERASE_OLD_CONFLICTS", NULL}
2489 "UPDATE actual_node SET tree_conflict_data = NULL " \
2492 #define STMT_UPGRADE_TO_22 216
2493 #define STMT_216_INFO {"STMT_UPGRADE_TO_22", NULL}
2495 "UPDATE actual_node SET tree_conflict_data = conflict_data; " \
2496 "UPDATE actual_node SET conflict_data = NULL; " \
2497 "PRAGMA user_version = 22; " \
2500 #define STMT_UPGRADE_TO_23 217
2501 #define STMT_217_INFO {"STMT_UPGRADE_TO_23", NULL}
2503 "PRAGMA user_version = 23; " \
2506 #define STMT_UPGRADE_23_HAS_WORKING_NODES 218
2507 #define STMT_218_INFO {"STMT_UPGRADE_23_HAS_WORKING_NODES", NULL}
2509 "SELECT 1 FROM nodes WHERE op_depth > 0 " \
2513 #define STMT_UPGRADE_TO_24 219
2514 #define STMT_219_INFO {"STMT_UPGRADE_TO_24", NULL}
2516 "UPDATE pristine SET refcount = " \
2517 " (SELECT COUNT(*) FROM nodes " \
2518 " WHERE checksum = pristine.checksum ); " \
2519 "PRAGMA user_version = 24; " \
2522 #define STMT_UPGRADE_TO_25 220
2523 #define STMT_220_INFO {"STMT_UPGRADE_TO_25", NULL}
2525 "DROP VIEW IF EXISTS NODES_CURRENT; " \
2526 "CREATE VIEW NODES_CURRENT AS " \
2527 " SELECT * FROM nodes " \
2528 " JOIN (SELECT wc_id, local_relpath, MAX(op_depth) AS op_depth FROM nodes " \
2529 " GROUP BY wc_id, local_relpath) AS filter " \
2530 " ON nodes.wc_id = filter.wc_id " \
2531 " AND nodes.local_relpath = filter.local_relpath " \
2532 " AND nodes.op_depth = filter.op_depth; " \
2533 "PRAGMA user_version = 25; " \
2536 #define STMT_UPGRADE_TO_26 221
2537 #define STMT_221_INFO {"STMT_UPGRADE_TO_26", NULL}
2539 "DROP VIEW IF EXISTS NODES_BASE; " \
2540 "CREATE VIEW NODES_BASE AS " \
2541 " SELECT * FROM nodes " \
2542 " WHERE op_depth = 0; " \
2543 "PRAGMA user_version = 26; " \
2546 #define STMT_UPGRADE_TO_27 222
2547 #define STMT_222_INFO {"STMT_UPGRADE_TO_27", NULL}
2549 "PRAGMA user_version = 27; " \
2552 #define STMT_UPGRADE_27_HAS_ACTUAL_NODES_CONFLICTS 223
2553 #define STMT_223_INFO {"STMT_UPGRADE_27_HAS_ACTUAL_NODES_CONFLICTS", NULL}
2555 "SELECT 1 FROM actual_node " \
2556 "WHERE NOT ((prop_reject IS NULL) AND (conflict_old IS NULL) " \
2557 " AND (conflict_new IS NULL) AND (conflict_working IS NULL) " \
2558 " AND (tree_conflict_data IS NULL)) " \
2562 #define STMT_UPGRADE_TO_28 224
2563 #define STMT_224_INFO {"STMT_UPGRADE_TO_28", NULL}
2565 "UPDATE NODES SET checksum = (SELECT checksum FROM pristine " \
2566 " WHERE md5_checksum = nodes.checksum) " \
2567 "WHERE EXISTS (SELECT 1 FROM pristine WHERE md5_checksum = nodes.checksum); " \
2568 "PRAGMA user_version = 28; " \
2571 #define STMT_UPGRADE_TO_29 225
2572 #define STMT_225_INFO {"STMT_UPGRADE_TO_29", NULL}
2574 "DROP TRIGGER IF EXISTS nodes_update_checksum_trigger; " \
2575 "DROP TRIGGER IF EXISTS nodes_insert_trigger; " \
2576 "DROP TRIGGER IF EXISTS nodes_delete_trigger; " \
2577 "CREATE TRIGGER nodes_update_checksum_trigger " \
2578 "AFTER UPDATE OF checksum ON nodes " \
2579 "WHEN NEW.checksum IS NOT OLD.checksum " \
2581 " UPDATE pristine SET refcount = refcount + 1 " \
2582 " WHERE checksum = NEW.checksum; " \
2583 " UPDATE pristine SET refcount = refcount - 1 " \
2584 " WHERE checksum = OLD.checksum; " \
2586 "CREATE TRIGGER nodes_insert_trigger " \
2587 "AFTER INSERT ON nodes " \
2588 "WHEN NEW.checksum IS NOT NULL " \
2590 " UPDATE pristine SET refcount = refcount + 1 " \
2591 " WHERE checksum = NEW.checksum; " \
2593 "CREATE TRIGGER nodes_delete_trigger " \
2594 "AFTER DELETE ON nodes " \
2595 "WHEN OLD.checksum IS NOT NULL " \
2597 " UPDATE pristine SET refcount = refcount - 1 " \
2598 " WHERE checksum = OLD.checksum; " \
2600 "PRAGMA user_version = 29; " \
2603 #define STMT_UPGRADE_TO_30 226
2604 #define STMT_226_INFO {"STMT_UPGRADE_TO_30", NULL}
2606 "CREATE UNIQUE INDEX IF NOT EXISTS I_NODES_MOVED " \
2607 "ON NODES (wc_id, moved_to, op_depth); " \
2608 "CREATE INDEX IF NOT EXISTS I_PRISTINE_MD5 ON PRISTINE (md5_checksum); " \
2609 "UPDATE nodes SET presence = \"server-excluded\" WHERE presence = \"absent\"; " \
2610 "UPDATE nodes SET file_external=1 WHERE file_external IS NOT NULL; " \
2613 #define STMT_UPGRADE_30_SELECT_CONFLICT_SEPARATE 227
2614 #define STMT_227_INFO {"STMT_UPGRADE_30_SELECT_CONFLICT_SEPARATE", NULL}
2616 "SELECT wc_id, local_relpath, " \
2617 " conflict_old, conflict_working, conflict_new, prop_reject, tree_conflict_data " \
2618 "FROM actual_node " \
2619 "WHERE conflict_old IS NOT NULL " \
2620 " OR conflict_working IS NOT NULL " \
2621 " OR conflict_new IS NOT NULL " \
2622 " OR prop_reject IS NOT NULL " \
2623 " OR tree_conflict_data IS NOT NULL " \
2624 "ORDER by wc_id, local_relpath " \
2627 #define STMT_UPGRADE_30_SET_CONFLICT 228
2628 #define STMT_228_INFO {"STMT_UPGRADE_30_SET_CONFLICT", NULL}
2630 "UPDATE actual_node SET conflict_data = ?3, conflict_old = NULL, " \
2631 " conflict_working = NULL, conflict_new = NULL, prop_reject = NULL, " \
2632 " tree_conflict_data = NULL " \
2633 "WHERE wc_id = ?1 and local_relpath = ?2 " \
2636 #define STMT_UPGRADE_TO_31_ALTER_TABLE 229
2637 #define STMT_229_INFO {"STMT_UPGRADE_TO_31_ALTER_TABLE", NULL}
2639 "ALTER TABLE NODES ADD COLUMN inherited_props BLOB; " \
2642 #define STMT_UPGRADE_TO_31_FINALIZE 230
2643 #define STMT_230_INFO {"STMT_UPGRADE_TO_31_FINALIZE", NULL}
2645 "DROP INDEX IF EXISTS I_ACTUAL_CHANGELIST; " \
2646 "DROP INDEX IF EXISTS I_EXTERNALS_PARENT; " \
2647 "DROP INDEX I_NODES_PARENT; " \
2648 "CREATE UNIQUE INDEX I_NODES_PARENT ON NODES (wc_id, parent_relpath, " \
2649 " local_relpath, op_depth); " \
2650 "DROP INDEX I_ACTUAL_PARENT; " \
2651 "CREATE UNIQUE INDEX I_ACTUAL_PARENT ON ACTUAL_NODE (wc_id, parent_relpath, " \
2652 " local_relpath); " \
2653 "PRAGMA user_version = 31; " \
2656 #define STMT_UPGRADE_31_SELECT_WCROOT_NODES 231
2657 #define STMT_231_INFO {"STMT_UPGRADE_31_SELECT_WCROOT_NODES", NULL}
2659 "SELECT l.wc_id, l.local_relpath FROM nodes as l " \
2660 "LEFT OUTER JOIN nodes as r " \
2661 "ON l.wc_id = r.wc_id " \
2662 " AND r.local_relpath = l.parent_relpath " \
2663 " AND r.op_depth = 0 " \
2664 "WHERE l.op_depth = 0 " \
2665 " AND l.repos_path != '' " \
2666 " AND ((l.repos_id IS NOT r.repos_id) " \
2667 " OR (l.repos_path IS NOT (CASE WHEN (r.local_relpath) = '' THEN (CASE WHEN (r.repos_path) = '' THEN (l.local_relpath) WHEN (l.local_relpath) = '' THEN (r.repos_path) ELSE (r.repos_path) || '/' || (l.local_relpath) END) WHEN (r.repos_path) = '' THEN (CASE WHEN (r.local_relpath) = '' THEN (l.local_relpath) WHEN SUBSTR((l.local_relpath), 1, LENGTH(r.local_relpath)) = (r.local_relpath) THEN CASE WHEN LENGTH(r.local_relpath) = LENGTH(l.local_relpath) THEN '' WHEN SUBSTR((l.local_relpath), LENGTH(r.local_relpath)+1, 1) = '/' THEN SUBSTR((l.local_relpath), LENGTH(r.local_relpath)+2) END END) WHEN SUBSTR((l.local_relpath), 1, LENGTH(r.local_relpath)) = (r.local_relpath) THEN CASE WHEN LENGTH(r.local_relpath) = LENGTH(l.local_relpath) THEN (r.repos_path) WHEN SUBSTR((l.local_relpath), LENGTH(r.local_relpath)+1, 1) = '/' THEN (r.repos_path) || SUBSTR((l.local_relpath), LENGTH(r.local_relpath)+1) END END))) " \
2670 #define STMT_UPGRADE_TO_32 232
2671 #define STMT_232_INFO {"STMT_UPGRADE_TO_32", NULL}
2673 "DROP INDEX IF EXISTS I_ACTUAL_CHANGELIST; " \
2674 "DROP INDEX IF EXISTS I_EXTERNALS_PARENT; " \
2675 "CREATE INDEX I_EXTERNALS_PARENT ON EXTERNALS (wc_id, parent_relpath); " \
2676 "DROP INDEX I_NODES_PARENT; " \
2677 "CREATE UNIQUE INDEX I_NODES_PARENT ON NODES (wc_id, parent_relpath, " \
2678 " local_relpath, op_depth); " \
2679 "DROP INDEX I_ACTUAL_PARENT; " \
2680 "CREATE UNIQUE INDEX I_ACTUAL_PARENT ON ACTUAL_NODE (wc_id, parent_relpath, " \
2681 " local_relpath); " \
2685 #define WC_QUERIES_SQL_99 \
2686 "CREATE TABLE ACTUAL_NODE_BACKUP ( " \
2687 " wc_id INTEGER NOT NULL, " \
2688 " local_relpath TEXT NOT NULL, " \
2689 " parent_relpath TEXT, " \
2690 " properties BLOB, " \
2691 " conflict_old TEXT, " \
2692 " conflict_new TEXT, " \
2693 " conflict_working TEXT, " \
2694 " prop_reject TEXT, " \
2695 " changelist TEXT, " \
2698 "INSERT INTO ACTUAL_NODE_BACKUP SELECT " \
2699 " wc_id, local_relpath, parent_relpath, properties, conflict_old, " \
2700 " conflict_new, conflict_working, prop_reject, changelist, text_mod " \
2701 "FROM ACTUAL_NODE; " \
2702 "DROP TABLE ACTUAL_NODE; " \
2703 "CREATE TABLE ACTUAL_NODE ( " \
2704 " wc_id INTEGER NOT NULL REFERENCES WCROOT (id), " \
2705 " local_relpath TEXT NOT NULL, " \
2706 " parent_relpath TEXT, " \
2707 " properties BLOB, " \
2708 " conflict_old TEXT, " \
2709 " conflict_new TEXT, " \
2710 " conflict_working TEXT, " \
2711 " prop_reject TEXT, " \
2712 " changelist TEXT, " \
2713 " text_mod TEXT, " \
2714 " PRIMARY KEY (wc_id, local_relpath) " \
2716 "CREATE UNIQUE INDEX I_ACTUAL_PARENT ON ACTUAL_NODE (wc_id, parent_relpath, " \
2717 " local_relpath); " \
2718 "INSERT INTO ACTUAL_NODE SELECT " \
2719 " wc_id, local_relpath, parent_relpath, properties, conflict_old, " \
2720 " conflict_new, conflict_working, prop_reject, changelist, text_mod " \
2721 "FROM ACTUAL_NODE_BACKUP; " \
2722 "DROP TABLE ACTUAL_NODE_BACKUP; " \
2725 #define STMT_VERIFICATION_TRIGGERS 233
2726 #define STMT_233_INFO {"STMT_VERIFICATION_TRIGGERS", NULL}
2728 "CREATE TEMPORARY TRIGGER no_repository_updates BEFORE UPDATE ON repository " \
2730 " SELECT RAISE(FAIL, 'Updates to REPOSITORY are not allowed.'); " \
2732 "CREATE TEMPORARY TRIGGER validation_01 BEFORE INSERT ON nodes " \
2733 "WHEN NOT ((new.local_relpath = '' AND new.parent_relpath IS NULL) " \
2734 " OR (relpath_depth(new.local_relpath) " \
2735 " = relpath_depth(new.parent_relpath) + 1)) " \
2737 " SELECT RAISE(FAIL, 'WC DB validity check 01 failed'); " \
2739 "CREATE TEMPORARY TRIGGER validation_02 BEFORE INSERT ON nodes " \
2740 "WHEN NOT new.op_depth <= relpath_depth(new.local_relpath) " \
2742 " SELECT RAISE(FAIL, 'WC DB validity check 02 failed'); " \
2744 "CREATE TEMPORARY TRIGGER validation_03 BEFORE INSERT ON nodes " \
2746 " (new.op_depth = relpath_depth(new.local_relpath)) " \
2748 " (EXISTS (SELECT 1 FROM nodes " \
2749 " WHERE wc_id = new.wc_id AND op_depth = new.op_depth " \
2750 " AND local_relpath = new.parent_relpath)) " \
2752 " AND NOT (new.file_external IS NOT NULL AND new.op_depth = 0) " \
2754 " SELECT RAISE(FAIL, 'WC DB validity check 03 failed'); " \
2756 "CREATE TEMPORARY TRIGGER validation_04 BEFORE INSERT ON actual_node " \
2757 "WHEN NOT (new.local_relpath = '' " \
2758 " OR EXISTS (SELECT 1 FROM nodes " \
2759 " WHERE wc_id = new.wc_id " \
2760 " AND local_relpath = new.parent_relpath)) " \
2762 " SELECT RAISE(FAIL, 'WC DB validity check 04 failed'); " \
2766 #define STMT_STATIC_VERIFY 234
2767 #define STMT_234_INFO {"STMT_STATIC_VERIFY", NULL}
2769 "SELECT local_relpath, op_depth, 1, 'Invalid parent relpath set in NODES' " \
2770 "FROM nodes n WHERE local_relpath != '' " \
2771 " AND (parent_relpath IS NULL " \
2772 " OR NOT (((local_relpath) > (CASE (parent_relpath) WHEN '' THEN '' ELSE (parent_relpath) || '/' END)) AND ((local_relpath) < CASE (parent_relpath) WHEN '' THEN X'FFFF' ELSE (parent_relpath) || '0' END)) " \
2773 " OR relpath_depth(local_relpath) != relpath_depth(parent_relpath)+1) " \
2775 "SELECT local_relpath, -1, 2, 'Invalid parent relpath set in ACTUAL' " \
2776 "FROM actual_node a WHERE local_relpath != '' " \
2777 " AND (parent_relpath IS NULL " \
2778 " OR NOT (((local_relpath) > (CASE (parent_relpath) WHEN '' THEN '' ELSE (parent_relpath) || '/' END)) AND ((local_relpath) < CASE (parent_relpath) WHEN '' THEN X'FFFF' ELSE (parent_relpath) || '0' END)) " \
2779 " OR relpath_depth(local_relpath) != relpath_depth(parent_relpath)+1) " \
2781 "SELECT local_relpath, -1, 10, 'No ancestor in ACTUAL' " \
2782 "FROM actual_node a WHERE local_relpath != '' " \
2783 " AND NOT EXISTS(SELECT 1 from nodes i " \
2784 " WHERE i.wc_id=a.wc_id " \
2785 " AND i.local_relpath=a.parent_relpath) " \
2786 " AND NOT EXISTS(SELECT 1 from nodes i " \
2787 " WHERE i.wc_id=a.wc_id " \
2788 " AND i.local_relpath=a.local_relpath) " \
2790 "SELECT a.local_relpath, -1, 11, 'Bad or Unneeded actual data' " \
2791 "FROM actual_node a " \
2792 "LEFT JOIN nodes n on n.wc_id = a.wc_id AND n.local_relpath = a.local_relpath " \
2793 " AND n.op_depth = (SELECT MAX(op_depth) from nodes i " \
2794 " WHERE i.wc_id=a.wc_id AND i.local_relpath=a.local_relpath) " \
2795 "WHERE (a.properties IS NOT NULL " \
2796 " AND (n.presence IS NULL " \
2797 " OR n.presence NOT IN ('normal', 'incomplete'))) " \
2798 " OR (a.changelist IS NOT NULL AND (n.kind IS NOT NULL AND n.kind != 'file')) " \
2799 " OR (a.conflict_data IS NULL AND a.properties IS NULL AND a.changelist IS NULL) " \
2800 " AND NOT EXISTS(SELECT 1 from nodes i " \
2801 " WHERE i.wc_id=a.wc_id " \
2802 " AND i.local_relpath=a.parent_relpath) " \
2804 "SELECT local_relpath, op_depth, 20, 'No ancestor in NODES' " \
2805 "FROM nodes n WHERE local_relpath != '' " \
2806 " AND file_external IS NULL " \
2807 " AND NOT EXISTS(SELECT 1 from nodes i " \
2808 " WHERE i.wc_id=n.wc_id " \
2809 " AND i.local_relpath=n.parent_relpath " \
2810 " AND i.op_depth <= n.op_depth) " \
2812 "SELECT local_relpath, op_depth, 21, 'Unneeded node data' " \
2814 "WHERE presence NOT IN ('normal', 'incomplete') " \
2815 "AND (properties IS NOT NULL " \
2816 " OR checksum IS NOT NULL " \
2817 " OR depth IS NOT NULL " \
2818 " OR symlink_target IS NOT NULL " \
2819 " OR changed_revision IS NOT NULL " \
2820 " OR (changed_date IS NOT NULL AND changed_date != 0) " \
2821 " OR changed_author IS NOT NULL " \
2822 " OR translated_size IS NOT NULL " \
2823 " OR last_mod_time IS NOT NULL " \
2824 " OR dav_cache IS NOT NULL " \
2825 " OR file_external IS NOT NULL " \
2826 " OR inherited_props IS NOT NULL) " \
2828 "SELECT local_relpath, op_depth, 22, 'Unneeded base-deleted node data' " \
2830 "WHERE presence IN ('base-deleted') " \
2831 "AND (repos_id IS NOT NULL " \
2832 " OR repos_path IS NOT NULL " \
2833 " OR revision IS NOT NULL) " \
2835 "SELECT local_relpath, op_depth, 23, 'Kind specific data invalid on normal' " \
2837 "WHERE presence IN ('normal', 'incomplete') " \
2838 "AND (kind IS NULL " \
2839 " OR (repos_path IS NULL " \
2840 " AND (properties IS NOT NULL " \
2841 " OR changed_revision IS NOT NULL " \
2842 " OR changed_author IS NOT NULL " \
2843 " OR (changed_date IS NOT NULL AND changed_date != 0))) " \
2844 " OR (CASE WHEN kind = 'file' AND repos_path IS NOT NULL " \
2845 " THEN checksum IS NULL " \
2846 " ELSE checksum IS NOT NULL END) " \
2847 " OR (CASE WHEN kind = 'dir' THEN depth IS NULL " \
2848 " ELSE depth IS NOT NULL END) " \
2849 " OR (CASE WHEN kind = 'symlink' THEN symlink_target IS NULL " \
2850 " ELSE symlink_target IS NOT NULL END)) " \
2852 "SELECT local_relpath, op_depth, 24, 'Invalid op-depth for local add' " \
2854 "WHERE presence IN ('normal', 'incomplete') " \
2855 " AND repos_path IS NULL " \
2856 " AND op_depth != relpath_depth(local_relpath) " \
2858 "SELECT local_relpath, op_depth, 25, 'Node missing op-depth ancestor' " \
2860 "WHERE op_depth < relpath_depth(local_relpath) " \
2861 " AND file_external IS NULL " \
2862 " AND NOT EXISTS(SELECT 1 FROM nodes p " \
2863 " WHERE p.wc_id=n.wc_id AND p.local_relpath=n.parent_relpath " \
2864 " AND p.op_depth=n.op_depth " \
2865 " AND (p.presence IN ('normal', 'incomplete') " \
2866 " OR (p.presence IN ('base-deleted', 'not-present') " \
2867 " AND n.presence = 'base-deleted'))) " \
2869 "SELECT n.local_relpath, n.op_depth, 26, 'Copied descendant mismatch' " \
2872 " ON p.wc_id=n.wc_id AND p.local_relpath=n.parent_relpath " \
2873 " AND n.op_depth=p.op_depth " \
2874 "WHERE n.op_depth > 0 AND n.presence IN ('normal', 'incomplete') " \
2875 " AND (n.repos_id != p.repos_id " \
2876 " OR n.repos_path != " \
2877 " (CASE WHEN (n.parent_relpath) = '' THEN (CASE WHEN (p.repos_path) = '' THEN (n.local_relpath) WHEN (n.local_relpath) = '' THEN (p.repos_path) ELSE (p.repos_path) || '/' || (n.local_relpath) END) WHEN (p.repos_path) = '' THEN (CASE WHEN (n.parent_relpath) = '' THEN (n.local_relpath) WHEN SUBSTR((n.local_relpath), 1, LENGTH(n.parent_relpath)) = (n.parent_relpath) THEN CASE WHEN LENGTH(n.parent_relpath) = LENGTH(n.local_relpath) THEN '' WHEN SUBSTR((n.local_relpath), LENGTH(n.parent_relpath)+1, 1) = '/' THEN SUBSTR((n.local_relpath), LENGTH(n.parent_relpath)+2) END END) WHEN SUBSTR((n.local_relpath), 1, LENGTH(n.parent_relpath)) = (n.parent_relpath) THEN CASE WHEN LENGTH(n.parent_relpath) = LENGTH(n.local_relpath) THEN (p.repos_path) WHEN SUBSTR((n.local_relpath), LENGTH(n.parent_relpath)+1, 1) = '/' THEN (p.repos_path) || SUBSTR((n.local_relpath), LENGTH(n.parent_relpath)+1) END END) " \
2878 " OR n.revision != p.revision " \
2879 " OR p.kind != 'dir' " \
2880 " OR n.moved_here IS NOT p.moved_here) " \
2882 "SELECT n.local_relpath, n.op_depth, 27, 'Invalid op-root presence' " \
2884 "WHERE n.op_depth = relpath_depth(local_relpath) " \
2885 " AND presence NOT IN ('normal', 'incomplete', 'base-deleted') " \
2887 "SELECT n.local_relpath, s.op_depth, 28, 'Incomplete shadowing' " \
2889 "JOIN nodes s ON s.wc_id=n.wc_id AND s.local_relpath=n.local_relpath " \
2890 " AND s.op_depth = relpath_depth(s.local_relpath) " \
2891 " AND s.op_depth = (SELECT MIN(op_depth) FROM nodes d " \
2892 " WHERE d.wc_id=s.wc_id AND d.local_relpath=s.local_relpath " \
2893 " AND d.op_depth > n.op_depth) " \
2894 "WHERE n.presence IN ('normal', 'incomplete') " \
2895 " AND EXISTS(SELECT 1 " \
2897 " WHERE dn.wc_id=n.wc_id AND dn.op_depth=n.op_depth " \
2898 " AND dn.presence IN ('normal', 'incomplete') " \
2899 " AND (((dn.local_relpath) > (CASE (n.local_relpath) WHEN '' THEN '' ELSE (n.local_relpath) || '/' END)) AND ((dn.local_relpath) < CASE (n.local_relpath) WHEN '' THEN X'FFFF' ELSE (n.local_relpath) || '0' END)) " \
2900 " AND dn.file_external IS NULL " \
2901 " AND NOT EXISTS(SELECT 1 " \
2903 " WHERE ds.wc_id=n.wc_id AND ds.op_depth=s.op_depth " \
2904 " AND ds.local_relpath=dn.local_relpath)) " \
2906 "SELECT s.local_relpath, s.op_depth, 29, 'Invalid base-delete' " \
2908 "LEFT JOIN nodes n ON n.wc_id=s.wc_id AND n.local_relpath=s.local_relpath " \
2909 " AND n.op_depth = (SELECT MAX(op_depth) FROM nodes d " \
2910 " WHERE d.wc_id=s.wc_id AND d.local_relpath=s.local_relpath " \
2911 " AND d.op_depth < s.op_depth) " \
2912 "WHERE s.presence = 'base-deleted' " \
2913 " AND (n.presence IS NULL " \
2914 " OR n.presence NOT IN ('normal', 'incomplete') " \
2917 "SELECT n.local_relpath, n.op_depth, 30, 'Invalid data for BASE' " \
2919 "WHERE n.op_depth = 0 " \
2920 " AND (n.moved_to IS NOT NULL " \
2921 " OR n.moved_here IS NOT NULL) " \
2923 "SELECT d.local_relpath, d.op_depth, 60, 'Moved here without origin' " \
2925 "WHERE d.op_depth = relpath_depth(d.local_relpath) " \
2926 " AND d.moved_here IS NOT NULL " \
2927 " AND NOT EXISTS(SELECT 1 FROM nodes s " \
2928 " WHERE s.wc_id = d.wc_id AND s.moved_to = d.local_relpath) " \
2930 "SELECT s.local_relpath, s.op_depth, 61, 'Moved to without target' " \
2932 "WHERE s.moved_to IS NOT NULL " \
2933 " AND NOT EXISTS(SELECT 1 FROM nodes d " \
2934 " WHERE d.wc_id = s.wc_id AND d.local_relpath = s.moved_to " \
2935 " AND d.op_depth = relpath_depth(d.local_relpath) " \
2936 " AND d.moved_here =1 AND d.repos_path IS NOT NULL) " \
2939 #define WC_QUERIES_SQL_DECLARE_STATEMENTS(varname) \
2940 static const char * const varname[] = { \
3179 #define WC_QUERIES_SQL_DECLARE_STATEMENT_INFO(varname) \
3180 static const char * const varname[][2] = { \