]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/blob - contrib/subversion/subversion/libsvn_wc/wc-queries.h
MFC r275385 (by bapt):
[FreeBSD/stable/10.git] / contrib / subversion / subversion / libsvn_wc / wc-queries.h
1 /* This file is automatically generated from wc-queries.sql and .dist_sandbox/subversion-1.9.4/subversion/libsvn_wc/token-map.h.
2  * Do not edit this file -- edit the source and rerun gen-make.py */
3
4 #define STMT_SELECT_NODE_INFO 0
5 #define STMT_0_INFO {"STMT_SELECT_NODE_INFO", NULL}
6 #define STMT_0 \
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, " \
10   "  moved_to " \
11   "FROM nodes " \
12   "WHERE wc_id = ?1 AND local_relpath = ?2 " \
13   "ORDER BY op_depth DESC " \
14   ""
15
16 #define STMT_SELECT_NODE_INFO_WITH_LOCK 1
17 #define STMT_1_INFO {"STMT_SELECT_NODE_INFO_WITH_LOCK", NULL}
18 #define STMT_1 \
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 " \
24   "FROM nodes " \
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 " \
29   ""
30
31 #define STMT_SELECT_BASE_NODE 2
32 #define STMT_2_INFO {"STMT_SELECT_BASE_NODE", NULL}
33 #define STMT_2 \
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 " \
37   "FROM nodes " \
38   "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
39   ""
40
41 #define STMT_SELECT_BASE_NODE_WITH_LOCK 3
42 #define STMT_3_INFO {"STMT_SELECT_BASE_NODE_WITH_LOCK", NULL}
43 #define STMT_3 \
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 " \
48   "FROM nodes " \
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 " \
52   ""
53
54 #define STMT_SELECT_BASE_CHILDREN_INFO 4
55 #define STMT_4_INFO {"STMT_SELECT_BASE_CHILDREN_INFO", NULL}
56 #define STMT_4 \
57   "SELECT local_relpath, nodes.repos_id, nodes.repos_path, presence, kind, " \
58   "  revision, depth, file_external " \
59   "FROM nodes " \
60   "WHERE wc_id = ?1 AND parent_relpath = ?2 AND op_depth = 0 " \
61   ""
62
63 #define STMT_SELECT_BASE_CHILDREN_INFO_LOCK 5
64 #define STMT_5_INFO {"STMT_SELECT_BASE_CHILDREN_INFO_LOCK", NULL}
65 #define STMT_5 \
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 " \
69   "FROM nodes " \
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 " \
73   ""
74
75 #define STMT_SELECT_WORKING_NODE 6
76 #define STMT_6_INFO {"STMT_SELECT_WORKING_NODE", NULL}
77 #define STMT_6 \
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 " \
82   "FROM nodes " \
83   "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth > 0 " \
84   "ORDER BY op_depth DESC " \
85   "LIMIT 1 " \
86   ""
87
88 #define STMT_SELECT_DEPTH_NODE 7
89 #define STMT_7_INFO {"STMT_SELECT_DEPTH_NODE", NULL}
90 #define STMT_7 \
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 " \
94   "FROM nodes " \
95   "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \
96   ""
97
98 #define STMT_SELECT_LOWEST_WORKING_NODE 8
99 #define STMT_8_INFO {"STMT_SELECT_LOWEST_WORKING_NODE", NULL}
100 #define STMT_8 \
101   "SELECT op_depth, presence, kind, moved_to " \
102   "FROM nodes " \
103   "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth > ?3 " \
104   "ORDER BY op_depth " \
105   "LIMIT 1 " \
106   ""
107
108 #define STMT_SELECT_HIGHEST_WORKING_NODE 9
109 #define STMT_9_INFO {"STMT_SELECT_HIGHEST_WORKING_NODE", NULL}
110 #define STMT_9 \
111   "SELECT op_depth " \
112   "FROM nodes " \
113   "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth < ?3 " \
114   "ORDER BY op_depth DESC " \
115   "LIMIT 1 " \
116   ""
117
118 #define STMT_SELECT_ACTUAL_NODE 10
119 #define STMT_10_INFO {"STMT_SELECT_ACTUAL_NODE", NULL}
120 #define STMT_10 \
121   "SELECT changelist, properties, conflict_data " \
122   "FROM actual_node " \
123   "WHERE wc_id = ?1 AND local_relpath = ?2 " \
124   ""
125
126 #define STMT_SELECT_NODE_CHILDREN_INFO 11
127 #define STMT_11_INFO {"STMT_SELECT_NODE_CHILDREN_INFO", NULL}
128 #define STMT_11 \
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 " \
133   "FROM nodes " \
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 " \
138   ""
139
140 #define STMT_SELECT_BASE_NODE_CHILDREN_INFO 12
141 #define STMT_12_INFO {"STMT_SELECT_BASE_NODE_CHILDREN_INFO", NULL}
142 #define STMT_12 \
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 " \
147   "FROM nodes " \
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 " \
152   ""
153
154 #define STMT_SELECT_NODE_CHILDREN_WALKER_INFO 13
155 #define STMT_13_INFO {"STMT_SELECT_NODE_CHILDREN_WALKER_INFO", NULL}
156 #define STMT_13 \
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 " \
161   ""
162
163 #define STMT_SELECT_ACTUAL_CHILDREN_INFO 14
164 #define STMT_14_INFO {"STMT_SELECT_ACTUAL_CHILDREN_INFO", NULL}
165 #define STMT_14 \
166   "SELECT local_relpath, changelist, properties, conflict_data " \
167   "FROM actual_node " \
168   "WHERE wc_id = ?1 AND parent_relpath = ?2 " \
169   ""
170
171 #define STMT_SELECT_REPOSITORY_BY_ID 15
172 #define STMT_15_INFO {"STMT_SELECT_REPOSITORY_BY_ID", NULL}
173 #define STMT_15 \
174   "SELECT root, uuid FROM repository WHERE id = ?1 " \
175   ""
176
177 #define STMT_SELECT_WCROOT_NULL 16
178 #define STMT_16_INFO {"STMT_SELECT_WCROOT_NULL", NULL}
179 #define STMT_16 \
180   "SELECT id FROM wcroot WHERE local_abspath IS NULL " \
181   ""
182
183 #define STMT_SELECT_REPOSITORY 17
184 #define STMT_17_INFO {"STMT_SELECT_REPOSITORY", NULL}
185 #define STMT_17 \
186   "SELECT id FROM repository WHERE root = ?1 " \
187   ""
188
189 #define STMT_INSERT_REPOSITORY 18
190 #define STMT_18_INFO {"STMT_INSERT_REPOSITORY", NULL}
191 #define STMT_18 \
192   "INSERT INTO repository (root, uuid) VALUES (?1, ?2) " \
193   ""
194
195 #define STMT_INSERT_NODE 19
196 #define STMT_19_INFO {"STMT_INSERT_NODE", NULL}
197 #define STMT_19 \
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) " \
206   ""
207
208 #define STMT_SELECT_WORKING_PRESENT 20
209 #define STMT_20_INFO {"STMT_SELECT_WORKING_PRESENT", NULL}
210 #define STMT_20 \
211   "SELECT local_relpath, kind, checksum, translated_size, last_mod_time " \
212   "FROM nodes n " \
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) " \
217   "                  FROM NODES w " \
218   "                  WHERE w.wc_id = ?1 " \
219   "                    AND w.local_relpath = n.local_relpath) " \
220   "ORDER BY local_relpath DESC " \
221   ""
222
223 #define STMT_DELETE_NODE_RECURSIVE 21
224 #define STMT_21_INFO {"STMT_DELETE_NODE_RECURSIVE", NULL}
225 #define STMT_21 \
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)) " \
229   ""
230
231 #define STMT_DELETE_NODE 22
232 #define STMT_22_INFO {"STMT_DELETE_NODE", NULL}
233 #define STMT_22 \
234   "DELETE " \
235   "FROM NODES " \
236   "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \
237   ""
238
239 #define STMT_DELETE_ACTUAL_FOR_BASE_RECURSIVE 23
240 #define STMT_23_INFO {"STMT_DELETE_ACTUAL_FOR_BASE_RECURSIVE", NULL}
241 #define STMT_23 \
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')) " \
253   ""
254
255 #define STMT_DELETE_WORKING_BASE_DELETE 24
256 #define STMT_24_INFO {"STMT_DELETE_WORKING_BASE_DELETE", NULL}
257 #define STMT_24 \
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) " \
266   ""
267
268 #define STMT_DELETE_WORKING_BASE_DELETE_RECURSIVE 25
269 #define STMT_25_INFO {"STMT_DELETE_WORKING_BASE_DELETE_RECURSIVE", NULL}
270 #define STMT_25 \
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) " \
279   ""
280
281 #define STMT_DELETE_WORKING_RECURSIVE 26
282 #define STMT_26_INFO {"STMT_DELETE_WORKING_RECURSIVE", NULL}
283 #define STMT_26 \
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 " \
287   ""
288
289 #define STMT_DELETE_BASE_RECURSIVE 27
290 #define STMT_27_INFO {"STMT_DELETE_BASE_RECURSIVE", NULL}
291 #define STMT_27 \
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 " \
296   ""
297
298 #define STMT_DELETE_WORKING_OP_DEPTH 28
299 #define STMT_28_INFO {"STMT_DELETE_WORKING_OP_DEPTH", NULL}
300 #define STMT_28 \
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 " \
305   ""
306
307 #define STMT_SELECT_LAYER_FOR_REPLACE 29
308 #define STMT_29_INFO {"STMT_SELECT_LAYER_FOR_REPLACE", NULL}
309 #define STMT_29 \
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' " \
312   "FROM nodes s " \
313   "WHERE s.wc_id = ?1 AND s.local_relpath = ?2 AND s.op_depth = ?3 " \
314   "UNION ALL " \
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 " \
317   "FROM nodes s " \
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 " \
324   ""
325
326 #define STMT_SELECT_DESCENDANTS_OP_DEPTH_RV 30
327 #define STMT_30_INFO {"STMT_SELECT_DESCENDANTS_OP_DEPTH_RV", NULL}
328 #define STMT_30 \
329   "SELECT local_relpath, kind " \
330   "FROM nodes " \
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 " \
336   ""
337
338 #define STMT_COPY_NODE_MOVE 31
339 #define STMT_31_INFO {"STMT_COPY_NODE_MOVE", NULL}
340 #define STMT_31 \
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 ) " \
346   "SELECT " \
347   "    s.wc_id, ?4 , ?5 , ?6 , " \
348   "    s.repos_id, " \
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 " \
354   "FROM nodes s " \
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 " \
357   ""
358
359 #define STMT_SELECT_NO_LONGER_MOVED_RV 32
360 #define STMT_32_INFO {"STMT_SELECT_NO_LONGER_MOVED_RV", NULL}
361 #define STMT_32 \
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 " \
364   "FROM nodes d " \
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 " \
378   ""
379
380 #define STMT_SELECT_OP_DEPTH_CHILDREN 33
381 #define STMT_33_INFO {"STMT_SELECT_OP_DEPTH_CHILDREN", NULL}
382 #define STMT_33 \
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 " \
390   ""
391
392 #define STMT_SELECT_OP_DEPTH_CHILDREN_EXISTS 34
393 #define STMT_34_INFO {"STMT_SELECT_OP_DEPTH_CHILDREN_EXISTS", NULL}
394 #define STMT_34 \
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 " \
401   ""
402
403 #define STMT_SELECT_GE_OP_DEPTH_CHILDREN 35
404 #define STMT_35_INFO {"STMT_SELECT_GE_OP_DEPTH_CHILDREN", NULL}
405 #define STMT_35 \
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'))) " \
410   "UNION ALL " \
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) " \
415   ""
416
417 #define STMT_DELETE_SHADOWED_RECURSIVE 36
418 #define STMT_36_INFO {"STMT_DELETE_SHADOWED_RECURSIVE", NULL}
419 #define STMT_36 \
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')) " \
425   ""
426
427 #define STMT_CLEAR_MOVED_TO_FROM_DEST 37
428 #define STMT_37_INFO {"STMT_CLEAR_MOVED_TO_FROM_DEST", NULL}
429 #define STMT_37 \
430   "UPDATE NODES SET moved_to = NULL " \
431   "WHERE wc_id = ?1 " \
432   "  AND moved_to = ?2 " \
433   ""
434
435 #define STMT_SELECT_NOT_PRESENT_DESCENDANTS 38
436 #define STMT_38_INFO {"STMT_SELECT_NOT_PRESENT_DESCENDANTS", NULL}
437 #define STMT_38 \
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' " \
442   ""
443
444 #define STMT_COMMIT_DESCENDANTS_TO_BASE 39
445 #define STMT_39_INFO {"STMT_COMMIT_DESCENDANTS_TO_BASE", NULL}
446 #define STMT_39 \
447   "UPDATE NODES SET op_depth = 0, " \
448   "                 repos_id = ?4, " \
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), " \
450   "                 revision = ?6, " \
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' " \
458   "                            END " \
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 " \
462   ""
463
464 #define STMT_SELECT_NODE_CHILDREN 40
465 #define STMT_40_INFO {"STMT_SELECT_NODE_CHILDREN", NULL}
466 #define STMT_40 \
467   "SELECT DISTINCT local_relpath FROM nodes " \
468   "WHERE wc_id = ?1 AND parent_relpath = ?2 " \
469   "ORDER BY local_relpath " \
470   ""
471
472 #define STMT_SELECT_WORKING_CHILDREN 41
473 #define STMT_41_INFO {"STMT_SELECT_WORKING_CHILDREN", NULL}
474 #define STMT_41 \
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) " \
479   "       OR " \
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 " \
484   ""
485
486 #define STMT_SELECT_BASE_NOT_PRESENT_CHILDREN 42
487 #define STMT_42_INFO {"STMT_SELECT_BASE_NOT_PRESENT_CHILDREN", NULL}
488 #define STMT_42 \
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 " \
493   ""
494
495 #define STMT_SELECT_NODE_PROPS 43
496 #define STMT_43_INFO {"STMT_SELECT_NODE_PROPS", NULL}
497 #define STMT_43 \
498   "SELECT properties, presence FROM nodes " \
499   "WHERE wc_id = ?1 AND local_relpath = ?2 " \
500   "ORDER BY op_depth DESC " \
501   ""
502
503 #define STMT_SELECT_ACTUAL_PROPS 44
504 #define STMT_44_INFO {"STMT_SELECT_ACTUAL_PROPS", NULL}
505 #define STMT_44 \
506   "SELECT properties FROM actual_node " \
507   "WHERE wc_id = ?1 AND local_relpath = ?2 " \
508   ""
509
510 #define STMT_UPDATE_ACTUAL_PROPS 45
511 #define STMT_45_INFO {"STMT_UPDATE_ACTUAL_PROPS", NULL}
512 #define STMT_45 \
513   "UPDATE actual_node SET properties = ?3 " \
514   "WHERE wc_id = ?1 AND local_relpath = ?2 " \
515   ""
516
517 #define STMT_INSERT_ACTUAL_PROPS 46
518 #define STMT_46_INFO {"STMT_INSERT_ACTUAL_PROPS", NULL}
519 #define STMT_46 \
520   "INSERT INTO actual_node (wc_id, local_relpath, parent_relpath, properties) " \
521   "VALUES (?1, ?2, ?3, ?4) " \
522   ""
523
524 #define STMT_INSERT_LOCK 47
525 #define STMT_47_INFO {"STMT_INSERT_LOCK", NULL}
526 #define STMT_47 \
527   "INSERT OR REPLACE INTO lock " \
528   "(repos_id, repos_relpath, lock_token, lock_owner, lock_comment, " \
529   " lock_date) " \
530   "VALUES (?1, ?2, ?3, ?4, ?5, ?6) " \
531   ""
532
533 #define STMT_SELECT_BASE_NODE_LOCK_TOKENS_RECURSIVE 48
534 #define STMT_48_INFO {"STMT_SELECT_BASE_NODE_LOCK_TOKENS_RECURSIVE", NULL}
535 #define STMT_48 \
536   "SELECT nodes.repos_id, nodes.repos_path, lock_token " \
537   "FROM nodes " \
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)) " \
542   ""
543
544 #define STMT_INSERT_WCROOT 49
545 #define STMT_49_INFO {"STMT_INSERT_WCROOT", NULL}
546 #define STMT_49 \
547   "INSERT INTO wcroot (local_abspath) " \
548   "VALUES (?1) " \
549   ""
550
551 #define STMT_UPDATE_BASE_NODE_DAV_CACHE 50
552 #define STMT_50_INFO {"STMT_UPDATE_BASE_NODE_DAV_CACHE", NULL}
553 #define STMT_50 \
554   "UPDATE nodes SET dav_cache = ?3 " \
555   "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
556   ""
557
558 #define STMT_SELECT_BASE_DAV_CACHE 51
559 #define STMT_51_INFO {"STMT_SELECT_BASE_DAV_CACHE", NULL}
560 #define STMT_51 \
561   "SELECT dav_cache FROM nodes " \
562   "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
563   ""
564
565 #define STMT_SELECT_DELETION_INFO 52
566 #define STMT_52_INFO {"STMT_SELECT_DELETION_INFO", NULL}
567 #define STMT_52 \
568   "SELECT b.presence, w.presence, w.op_depth, w.moved_to " \
569   "FROM nodes w " \
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) " \
575   "LIMIT 1 " \
576   ""
577
578 #define STMT_SELECT_MOVED_TO_NODE 53
579 #define STMT_53_INFO {"STMT_SELECT_MOVED_TO_NODE", NULL}
580 #define STMT_53 \
581   "SELECT op_depth, moved_to " \
582   "FROM nodes " \
583   "WHERE wc_id = ?1 AND local_relpath = ?2 AND moved_to IS NOT NULL " \
584   "ORDER BY op_depth DESC " \
585   ""
586
587 #define STMT_SELECT_OP_DEPTH_MOVED_TO 54
588 #define STMT_54_INFO {"STMT_SELECT_OP_DEPTH_MOVED_TO", NULL}
589 #define STMT_54 \
590   "SELECT op_depth, moved_to " \
591   "FROM nodes " \
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 " \
597   "LIMIT 1 " \
598   ""
599
600 #define STMT_SELECT_MOVED_TO 55
601 #define STMT_55_INFO {"STMT_SELECT_MOVED_TO", NULL}
602 #define STMT_55 \
603   "SELECT moved_to " \
604   "FROM nodes " \
605   "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \
606   ""
607
608 #define STMT_SELECT_MOVED_BACK 56
609 #define STMT_56_INFO {"STMT_SELECT_MOVED_BACK", NULL}
610 #define STMT_56 \
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 " \
615   "FROM nodes u " \
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 " \
622   "UNION ALL " \
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 " \
627   "FROM nodes u " \
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 " \
634   ""
635
636 #define STMT_DELETE_LOCK 57
637 #define STMT_57_INFO {"STMT_DELETE_LOCK", NULL}
638 #define STMT_57 \
639   "DELETE FROM lock " \
640   "WHERE repos_id = ?1 AND repos_relpath = ?2 " \
641   ""
642
643 #define STMT_DELETE_LOCK_RECURSIVELY 58
644 #define STMT_58_INFO {"STMT_DELETE_LOCK_RECURSIVELY", NULL}
645 #define STMT_58 \
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))) " \
648   ""
649
650 #define STMT_CLEAR_BASE_NODE_RECURSIVE_DAV_CACHE 59
651 #define STMT_59_INFO {"STMT_CLEAR_BASE_NODE_RECURSIVE_DAV_CACHE", NULL}
652 #define STMT_59 \
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))) " \
657   ""
658
659 #define STMT_RECURSIVE_UPDATE_NODE_REPO 60
660 #define STMT_60_INFO {"STMT_RECURSIVE_UPDATE_NODE_REPO", NULL}
661 #define STMT_60 \
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) " \
666   ""
667
668 #define STMT_UPDATE_LOCK_REPOS_ID 61
669 #define STMT_61_INFO {"STMT_UPDATE_LOCK_REPOS_ID", NULL}
670 #define STMT_61 \
671   "UPDATE lock SET repos_id = ?2 " \
672   "WHERE repos_id = ?1 " \
673   ""
674
675 #define STMT_UPDATE_NODE_FILEINFO 62
676 #define STMT_62_INFO {"STMT_UPDATE_NODE_FILEINFO", NULL}
677 #define STMT_62 \
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) " \
682   ""
683
684 #define STMT_INSERT_ACTUAL_CONFLICT 63
685 #define STMT_63_INFO {"STMT_INSERT_ACTUAL_CONFLICT", NULL}
686 #define STMT_63 \
687   "INSERT INTO actual_node (wc_id, local_relpath, conflict_data, parent_relpath) " \
688   "VALUES (?1, ?2, ?3, ?4) " \
689   ""
690
691 #define STMT_UPDATE_ACTUAL_CONFLICT 64
692 #define STMT_64_INFO {"STMT_UPDATE_ACTUAL_CONFLICT", NULL}
693 #define STMT_64 \
694   "UPDATE actual_node SET conflict_data = ?3 " \
695   "WHERE wc_id = ?1 AND local_relpath = ?2 " \
696   ""
697
698 #define STMT_UPDATE_ACTUAL_CHANGELISTS 65
699 #define STMT_65_INFO {"STMT_UPDATE_ACTUAL_CHANGELISTS", NULL}
700 #define STMT_65 \
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') " \
708   ""
709
710 #define STMT_UPDATE_ACTUAL_CLEAR_CHANGELIST 66
711 #define STMT_66_INFO {"STMT_UPDATE_ACTUAL_CLEAR_CHANGELIST", NULL}
712 #define STMT_66 \
713   "UPDATE actual_node SET changelist = NULL " \
714   " WHERE wc_id = ?1 AND local_relpath = ?2 " \
715   ""
716
717 #define STMT_MARK_SKIPPED_CHANGELIST_DIRS 67
718 #define STMT_67_INFO {"STMT_MARK_SKIPPED_CHANGELIST_DIRS", NULL}
719 #define STMT_67 \
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' " \
726   ""
727
728 #define STMT_RESET_ACTUAL_WITH_CHANGELIST 68
729 #define STMT_68_INFO {"STMT_RESET_ACTUAL_WITH_CHANGELIST", NULL}
730 #define STMT_68 \
731   "REPLACE INTO actual_node ( " \
732   "  wc_id, local_relpath, parent_relpath, changelist) " \
733   "VALUES (?1, ?2, ?3, ?4) " \
734   ""
735
736 #define STMT_CREATE_CHANGELIST_LIST 69
737 #define STMT_69_INFO {"STMT_CREATE_CHANGELIST_LIST", NULL}
738 #define STMT_69 \
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) " \
746   ") " \
747   ""
748
749 #define STMT_CREATE_CHANGELIST_TRIGGER 70
750 #define STMT_70_INFO {"STMT_CREATE_CHANGELIST_TRIGGER", NULL}
751 #define STMT_70 \
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 " \
756   "BEGIN " \
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; " \
763   "END " \
764   ""
765
766 #define STMT_FINALIZE_CHANGELIST 71
767 #define STMT_71_INFO {"STMT_FINALIZE_CHANGELIST", NULL}
768 #define STMT_71 \
769   "DROP TRIGGER trigger_changelist_list_change; " \
770   "DROP TABLE changelist_list; " \
771   "DROP TABLE targets_list " \
772   ""
773
774 #define STMT_SELECT_CHANGELIST_LIST 72
775 #define STMT_72_INFO {"STMT_SELECT_CHANGELIST_LIST", NULL}
776 #define STMT_72 \
777   "SELECT wc_id, local_relpath, notify, changelist " \
778   "FROM changelist_list " \
779   "ORDER BY wc_id, local_relpath ASC, notify DESC " \
780   ""
781
782 #define STMT_CREATE_TARGETS_LIST 73
783 #define STMT_73_INFO {"STMT_CREATE_TARGETS_LIST", NULL}
784 #define STMT_73 \
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) " \
792   "  ); " \
793   ""
794
795 #define STMT_DROP_TARGETS_LIST 74
796 #define STMT_74_INFO {"STMT_DROP_TARGETS_LIST", NULL}
797 #define STMT_74 \
798   "DROP TABLE targets_list " \
799   ""
800
801 #define STMT_INSERT_TARGET 75
802 #define STMT_75_INFO {"STMT_INSERT_TARGET", NULL}
803 #define STMT_75 \
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 " \
809   ""
810
811 #define STMT_INSERT_TARGET_DEPTH_FILES 76
812 #define STMT_76_INFO {"STMT_INSERT_TARGET_DEPTH_FILES", NULL}
813 #define STMT_76 \
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' " \
820   ""
821
822 #define STMT_INSERT_TARGET_DEPTH_IMMEDIATES 77
823 #define STMT_77_INFO {"STMT_INSERT_TARGET_DEPTH_IMMEDIATES", NULL}
824 #define STMT_77 \
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 " \
830   ""
831
832 #define STMT_INSERT_TARGET_DEPTH_INFINITY 78
833 #define STMT_78_INFO {"STMT_INSERT_TARGET_DEPTH_INFINITY", NULL}
834 #define STMT_78 \
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)) " \
840   ""
841
842 #define STMT_INSERT_TARGET_WITH_CHANGELIST 79
843 #define STMT_79_INFO {"STMT_INSERT_TARGET_WITH_CHANGELIST", NULL}
844 #define STMT_79 \
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 " \
852   ""
853
854 #define STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_FILES 80
855 #define STMT_80_INFO {"STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_FILES", NULL}
856 #define STMT_80 \
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 " \
865   ""
866
867 #define STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_IMMEDIATES 81
868 #define STMT_81_INFO {"STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_IMMEDIATES", NULL}
869 #define STMT_81 \
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 " \
877   ""
878
879 #define STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_INFINITY 82
880 #define STMT_82_INFO {"STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_INFINITY", NULL}
881 #define STMT_82 \
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 " \
889   ""
890
891 #define STMT_INSERT_ACTUAL_EMPTIES 83
892 #define STMT_83_INFO {"STMT_INSERT_ACTUAL_EMPTIES", NULL}
893 #define STMT_83 \
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 " \
898   ""
899
900 #define STMT_INSERT_ACTUAL_EMPTIES_FILES 84
901 #define STMT_84_INFO {"STMT_INSERT_ACTUAL_EMPTIES_FILES", NULL}
902 #define STMT_84 \
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' " \
908   ""
909
910 #define STMT_DELETE_ACTUAL_EMPTY 85
911 #define STMT_85_INFO {"STMT_DELETE_ACTUAL_EMPTY", NULL}
912 #define STMT_85 \
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 " \
922   ""
923
924 #define STMT_DELETE_ACTUAL_EMPTIES 86
925 #define STMT_86_INFO {"STMT_DELETE_ACTUAL_EMPTIES", NULL}
926 #define STMT_86 \
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 " \
937   ""
938
939 #define STMT_DELETE_BASE_NODE 87
940 #define STMT_87_INFO {"STMT_DELETE_BASE_NODE", NULL}
941 #define STMT_87 \
942   "DELETE FROM nodes " \
943   "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
944   ""
945
946 #define STMT_DELETE_WORKING_NODE 88
947 #define STMT_88_INFO {"STMT_DELETE_WORKING_NODE", NULL}
948 #define STMT_88 \
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) " \
953   ""
954
955 #define STMT_DELETE_LOWEST_WORKING_NODE 89
956 #define STMT_89_INFO {"STMT_DELETE_LOWEST_WORKING_NODE", NULL}
957 #define STMT_89 \
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' " \
963   ""
964
965 #define STMT_DELETE_NODE_ALL_LAYERS 90
966 #define STMT_90_INFO {"STMT_DELETE_NODE_ALL_LAYERS", NULL}
967 #define STMT_90 \
968   "DELETE FROM nodes " \
969   "WHERE wc_id = ?1 AND local_relpath = ?2 " \
970   ""
971
972 #define STMT_DELETE_NODES_ABOVE_DEPTH_RECURSIVE 91
973 #define STMT_91_INFO {"STMT_DELETE_NODES_ABOVE_DEPTH_RECURSIVE", NULL}
974 #define STMT_91 \
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 " \
980   ""
981
982 #define STMT_DELETE_ACTUAL_NODE 92
983 #define STMT_92_INFO {"STMT_DELETE_ACTUAL_NODE", NULL}
984 #define STMT_92 \
985   "DELETE FROM actual_node " \
986   "WHERE wc_id = ?1 AND local_relpath = ?2 " \
987   ""
988
989 #define STMT_DELETE_ACTUAL_NODE_RECURSIVE 93
990 #define STMT_93_INFO {"STMT_DELETE_ACTUAL_NODE_RECURSIVE", NULL}
991 #define STMT_93 \
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))) " \
996   ""
997
998 #define STMT_DELETE_ACTUAL_NODE_LEAVING_CHANGELIST 94
999 #define STMT_94_INFO {"STMT_DELETE_ACTUAL_NODE_LEAVING_CHANGELIST", NULL}
1000 #define STMT_94 \
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')) " \
1008   ""
1009
1010 #define STMT_DELETE_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE 95
1011 #define STMT_95_INFO {"STMT_DELETE_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE", NULL}
1012 #define STMT_95 \
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')) " \
1022   ""
1023
1024 #define STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST 96
1025 #define STMT_96_INFO {"STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST", NULL}
1026 #define STMT_96 \
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 " \
1036   ""
1037
1038 #define STMT_CLEAR_ACTUAL_NODE_LEAVING_CONFLICT 97
1039 #define STMT_97_INFO {"STMT_CLEAR_ACTUAL_NODE_LEAVING_CONFLICT", NULL}
1040 #define STMT_97 \
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 " \
1050   ""
1051
1052 #define STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE 98
1053 #define STMT_98_INFO {"STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE", NULL}
1054 #define STMT_98 \
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))) " \
1066   ""
1067
1068 #define STMT_UPDATE_NODE_BASE_DEPTH 99
1069 #define STMT_99_INFO {"STMT_UPDATE_NODE_BASE_DEPTH", NULL}
1070 #define STMT_99 \
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') " \
1075   ""
1076
1077 #define STMT_UPDATE_NODE_BASE_PRESENCE 100
1078 #define STMT_100_INFO {"STMT_UPDATE_NODE_BASE_PRESENCE", NULL}
1079 #define STMT_100 \
1080   "UPDATE nodes SET presence = ?3 " \
1081   "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
1082   ""
1083
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}
1086 #define STMT_101 \
1087   "UPDATE nodes SET presence = ?3, revision = ?4, repos_path = ?5 " \
1088   "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
1089   ""
1090
1091 #define STMT_LOOK_FOR_WORK 102
1092 #define STMT_102_INFO {"STMT_LOOK_FOR_WORK", NULL}
1093 #define STMT_102 \
1094   "SELECT id FROM work_queue LIMIT 1 " \
1095   ""
1096
1097 #define STMT_INSERT_WORK_ITEM 103
1098 #define STMT_103_INFO {"STMT_INSERT_WORK_ITEM", NULL}
1099 #define STMT_103 \
1100   "INSERT INTO work_queue (work) VALUES (?1) " \
1101   ""
1102
1103 #define STMT_SELECT_WORK_ITEM 104
1104 #define STMT_104_INFO {"STMT_SELECT_WORK_ITEM", NULL}
1105 #define STMT_104 \
1106   "SELECT id, work FROM work_queue ORDER BY id LIMIT 1 " \
1107   ""
1108
1109 #define STMT_DELETE_WORK_ITEM 105
1110 #define STMT_105_INFO {"STMT_DELETE_WORK_ITEM", NULL}
1111 #define STMT_105 \
1112   "DELETE FROM work_queue WHERE id = ?1 " \
1113   ""
1114
1115 #define STMT_INSERT_OR_IGNORE_PRISTINE 106
1116 #define STMT_106_INFO {"STMT_INSERT_OR_IGNORE_PRISTINE", NULL}
1117 #define STMT_106 \
1118   "INSERT OR IGNORE INTO pristine (checksum, md5_checksum, size, refcount) " \
1119   "VALUES (?1, ?2, ?3, 0) " \
1120   ""
1121
1122 #define STMT_INSERT_PRISTINE 107
1123 #define STMT_107_INFO {"STMT_INSERT_PRISTINE", NULL}
1124 #define STMT_107 \
1125   "INSERT INTO pristine (checksum, md5_checksum, size, refcount) " \
1126   "VALUES (?1, ?2, ?3, 0) " \
1127   ""
1128
1129 #define STMT_SELECT_PRISTINE 108
1130 #define STMT_108_INFO {"STMT_SELECT_PRISTINE", NULL}
1131 #define STMT_108 \
1132   "SELECT md5_checksum " \
1133   "FROM pristine " \
1134   "WHERE checksum = ?1 " \
1135   ""
1136
1137 #define STMT_SELECT_PRISTINE_SIZE 109
1138 #define STMT_109_INFO {"STMT_SELECT_PRISTINE_SIZE", NULL}
1139 #define STMT_109 \
1140   "SELECT size " \
1141   "FROM pristine " \
1142   "WHERE checksum = ?1 LIMIT 1 " \
1143   ""
1144
1145 #define STMT_SELECT_PRISTINE_BY_MD5 110
1146 #define STMT_110_INFO {"STMT_SELECT_PRISTINE_BY_MD5", NULL}
1147 #define STMT_110 \
1148   "SELECT checksum " \
1149   "FROM pristine " \
1150   "WHERE md5_checksum = ?1 " \
1151   ""
1152
1153 #define STMT_SELECT_UNREFERENCED_PRISTINES 111
1154 #define STMT_111_INFO {"STMT_SELECT_UNREFERENCED_PRISTINES", NULL}
1155 #define STMT_111 \
1156   "SELECT checksum " \
1157   "FROM pristine " \
1158   "WHERE refcount = 0 " \
1159   ""
1160
1161 #define STMT_DELETE_PRISTINE_IF_UNREFERENCED 112
1162 #define STMT_112_INFO {"STMT_DELETE_PRISTINE_IF_UNREFERENCED", NULL}
1163 #define STMT_112 \
1164   "DELETE FROM pristine " \
1165   "WHERE checksum = ?1 AND refcount = 0 " \
1166   ""
1167
1168 #define STMT_SELECT_COPY_PRISTINES 113
1169 #define STMT_113_INFO {"STMT_SELECT_COPY_PRISTINES", NULL}
1170 #define STMT_113 \
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 " \
1177   "UNION ALL " \
1178   "SELECT n.checksum, md5_checksum, size " \
1179   "FROM nodes n " \
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 " \
1186   ""
1187
1188 #define STMT_VACUUM 114
1189 #define STMT_114_INFO {"STMT_VACUUM", NULL}
1190 #define STMT_114 \
1191   "VACUUM " \
1192   ""
1193
1194 #define STMT_SELECT_CONFLICT_VICTIMS 115
1195 #define STMT_115_INFO {"STMT_SELECT_CONFLICT_VICTIMS", NULL}
1196 #define STMT_115 \
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) " \
1201   ""
1202
1203 #define STMT_INSERT_WC_LOCK 116
1204 #define STMT_116_INFO {"STMT_INSERT_WC_LOCK", NULL}
1205 #define STMT_116 \
1206   "INSERT INTO wc_lock (wc_id, local_dir_relpath, locked_levels) " \
1207   "VALUES (?1, ?2, ?3) " \
1208   ""
1209
1210 #define STMT_SELECT_WC_LOCK 117
1211 #define STMT_117_INFO {"STMT_SELECT_WC_LOCK", NULL}
1212 #define STMT_117 \
1213   "SELECT locked_levels FROM wc_lock " \
1214   "WHERE wc_id = ?1 AND local_dir_relpath = ?2 " \
1215   ""
1216
1217 #define STMT_SELECT_ANCESTOR_WCLOCKS 118
1218 #define STMT_118_INFO {"STMT_SELECT_ANCESTOR_WCLOCKS", NULL}
1219 #define STMT_118 \
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 = '') " \
1224   ""
1225
1226 #define STMT_DELETE_WC_LOCK 119
1227 #define STMT_119_INFO {"STMT_DELETE_WC_LOCK", NULL}
1228 #define STMT_119 \
1229   "DELETE FROM wc_lock " \
1230   "WHERE wc_id = ?1 AND local_dir_relpath = ?2 " \
1231   ""
1232
1233 #define STMT_FIND_WC_LOCK 120
1234 #define STMT_120_INFO {"STMT_FIND_WC_LOCK", NULL}
1235 #define STMT_120 \
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)) " \
1239   ""
1240
1241 #define STMT_FIND_CONFLICT_DESCENDANT 121
1242 #define STMT_121_INFO {"STMT_FIND_CONFLICT_DESCENDANT", NULL}
1243 #define STMT_121 \
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 " \
1249   "LIMIT 1 " \
1250   ""
1251
1252 #define STMT_DELETE_WC_LOCK_ORPHAN 122
1253 #define STMT_122_INFO {"STMT_DELETE_WC_LOCK_ORPHAN", NULL}
1254 #define STMT_122 \
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) " \
1260   ""
1261
1262 #define STMT_DELETE_WC_LOCK_ORPHAN_RECURSIVE 123
1263 #define STMT_123_INFO {"STMT_DELETE_WC_LOCK_ORPHAN_RECURSIVE", NULL}
1264 #define STMT_123 \
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) " \
1272   ""
1273
1274 #define STMT_APPLY_CHANGES_TO_BASE_NODE 124
1275 #define STMT_124_INFO {"STMT_APPLY_CHANGES_TO_BASE_NODE", NULL}
1276 #define STMT_124 \
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)) " \
1288   ""
1289
1290 #define STMT_INSTALL_WORKING_NODE_FOR_DELETE 125
1291 #define STMT_125_INFO {"STMT_INSTALL_WORKING_NODE_FOR_DELETE", NULL}
1292 #define STMT_125 \
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) " \
1297   ""
1298
1299 #define STMT_REPLACE_WITH_BASE_DELETED 126
1300 #define STMT_126_INFO {"STMT_REPLACE_WITH_BASE_DELETED", NULL}
1301 #define STMT_126 \
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' " \
1306   "  FROM nodes " \
1307   " WHERE wc_id = ?1 " \
1308   "   AND local_relpath = ?2 " \
1309   "   AND op_depth = ?3 " \
1310   ""
1311
1312 #define STMT_INSERT_DELETE_FROM_NODE_RECURSIVE 127
1313 #define STMT_127_INFO {"STMT_INSERT_DELETE_FROM_NODE_RECURSIVE", NULL}
1314 #define STMT_127 \
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', " \
1318   "       kind " \
1319   "FROM nodes " \
1320   "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \
1321   "UNION ALL " \
1322   "SELECT wc_id, local_relpath, ?4 , parent_relpath, 'base-deleted', " \
1323   "       kind " \
1324   "FROM nodes " \
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 " \
1331   ""
1332
1333 #define STMT_INSERT_WORKING_NODE_FROM_BASE_COPY 128
1334 #define STMT_128_INFO {"STMT_INSERT_WORKING_NODE_FROM_BASE_COPY", NULL}
1335 #define STMT_128 \
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 " \
1347   "FROM nodes " \
1348   "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
1349   ""
1350
1351 #define STMT_INSERT_DELETE_FROM_BASE 129
1352 #define STMT_129_INFO {"STMT_INSERT_DELETE_FROM_BASE", NULL}
1353 #define STMT_129 \
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 " \
1358   "FROM nodes " \
1359   "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
1360   ""
1361
1362 #define STMT_UPDATE_OP_DEPTH_INCREASE_RECURSIVE 130
1363 #define STMT_130_INFO {"STMT_UPDATE_OP_DEPTH_INCREASE_RECURSIVE", NULL}
1364 #define STMT_130 \
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 " \
1369   ""
1370
1371 #define STMT_COPY_OP_DEPTH_RECURSIVE 131
1372 #define STMT_131_INFO {"STMT_COPY_OP_DEPTH_RECURSIVE", NULL}
1373 #define STMT_131 \
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 ) " \
1379   "SELECT " \
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 " \
1384   "FROM nodes " \
1385   "WHERE wc_id = ?1 AND op_depth = ?3 AND local_relpath = ?2 " \
1386   "UNION ALL " \
1387   "SELECT " \
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 " \
1392   "FROM nodes " \
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 " \
1396   ""
1397
1398 #define STMT_DOES_NODE_EXIST 132
1399 #define STMT_132_INFO {"STMT_DOES_NODE_EXIST", NULL}
1400 #define STMT_132 \
1401   "SELECT 1 FROM nodes WHERE wc_id = ?1 AND local_relpath = ?2 " \
1402   "LIMIT 1 " \
1403   ""
1404
1405 #define STMT_HAS_SERVER_EXCLUDED_DESCENDANTS 133
1406 #define STMT_133_INFO {"STMT_HAS_SERVER_EXCLUDED_DESCENDANTS", NULL}
1407 #define STMT_133 \
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' " \
1412   "LIMIT 1 " \
1413   ""
1414
1415 #define STMT_SELECT_ALL_EXCLUDED_DESCENDANTS 134
1416 #define STMT_134_INFO {"STMT_SELECT_ALL_EXCLUDED_DESCENDANTS", NULL}
1417 #define STMT_134 \
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') " \
1423   ""
1424
1425 #define STMT_INSERT_WORKING_NODE_COPY_FROM 135
1426 #define STMT_135_INFO {"STMT_INSERT_WORKING_NODE_COPY_FROM", NULL}
1427 #define STMT_135 \
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 " \
1444   ""
1445
1446 #define STMT_INSERT_WORKING_NODE_COPY_FROM_DEPTH 136
1447 #define STMT_136_INFO {"STMT_INSERT_WORKING_NODE_COPY_FROM_DEPTH", NULL}
1448 #define STMT_136 \
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) " \
1463   "FROM nodes " \
1464   "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?7 " \
1465   ""
1466
1467 #define STMT_UPDATE_BASE_REVISION 137
1468 #define STMT_137_INFO {"STMT_UPDATE_BASE_REVISION", NULL}
1469 #define STMT_137 \
1470   "UPDATE nodes SET revision = ?3 " \
1471   "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
1472   ""
1473
1474 #define STMT_UPDATE_BASE_REPOS 138
1475 #define STMT_138_INFO {"STMT_UPDATE_BASE_REPOS", NULL}
1476 #define STMT_138 \
1477   "UPDATE nodes SET repos_id = ?3, repos_path = ?4 " \
1478   "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
1479   ""
1480
1481 #define STMT_ACTUAL_HAS_CHILDREN 139
1482 #define STMT_139_INFO {"STMT_ACTUAL_HAS_CHILDREN", NULL}
1483 #define STMT_139 \
1484   "SELECT 1 FROM actual_node " \
1485   "WHERE wc_id = ?1 AND parent_relpath = ?2 " \
1486   "LIMIT 1 " \
1487   ""
1488
1489 #define STMT_INSERT_EXTERNAL 140
1490 #define STMT_140_INFO {"STMT_INSERT_EXTERNAL", NULL}
1491 #define STMT_140 \
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) " \
1496   ""
1497
1498 #define STMT_SELECT_EXTERNAL_INFO 141
1499 #define STMT_141_INFO {"STMT_SELECT_EXTERNAL_INFO", NULL}
1500 #define STMT_141 \
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 " \
1504   "LIMIT 1 " \
1505   ""
1506
1507 #define STMT_DELETE_FILE_EXTERNALS 142
1508 #define STMT_142_INFO {"STMT_DELETE_FILE_EXTERNALS", NULL}
1509 #define STMT_142 \
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 " \
1515   ""
1516
1517 #define STMT_DELETE_FILE_EXTERNAL_REGISTATIONS 143
1518 #define STMT_143_INFO {"STMT_DELETE_FILE_EXTERNAL_REGISTATIONS", NULL}
1519 #define STMT_143 \
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' " \
1524   ""
1525
1526 #define STMT_DELETE_EXTERNAL_REGISTATIONS 144
1527 #define STMT_144_INFO {"STMT_DELETE_EXTERNAL_REGISTATIONS", NULL}
1528 #define STMT_144 \
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)) " \
1532   ""
1533
1534 #define STMT_SELECT_COMMITTABLE_EXTERNALS_BELOW 145
1535 #define STMT_145_INFO {"STMT_SELECT_COMMITTABLE_EXTERNALS_BELOW", NULL}
1536 #define STMT_145 \
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)) " \
1552   ""
1553
1554 #define STMT_SELECT_COMMITTABLE_EXTERNALS_IMMEDIATELY_BELOW 146
1555 #define STMT_146_INFO {"STMT_SELECT_COMMITTABLE_EXTERNALS_IMMEDIATELY_BELOW", NULL}
1556 #define STMT_146 \
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)) " \
1573   ""
1574
1575 #define STMT_SELECT_EXTERNALS_DEFINED 147
1576 #define STMT_147_INFO {"STMT_SELECT_EXTERNALS_DEFINED", NULL}
1577 #define STMT_147 \
1578   "SELECT local_relpath, def_local_relpath " \
1579   "FROM externals " \
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))) " \
1582   ""
1583
1584 #define STMT_DELETE_EXTERNAL 148
1585 #define STMT_148_INFO {"STMT_DELETE_EXTERNAL", NULL}
1586 #define STMT_148 \
1587   "DELETE FROM externals " \
1588   "WHERE wc_id = ?1 AND local_relpath = ?2 " \
1589   ""
1590
1591 #define STMT_SELECT_EXTERNAL_PROPERTIES 149
1592 #define STMT_149_INFO {"STMT_SELECT_EXTERNAL_PROPERTIES", NULL}
1593 #define STMT_149 \
1594   "SELECT IFNULL((SELECT properties FROM actual_node a " \
1595   "               WHERE a.wc_id = ?1 AND A.local_relpath = n.local_relpath), " \
1596   "              properties), " \
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') " \
1601   "UNION ALL " \
1602   "SELECT IFNULL((SELECT properties FROM actual_node a " \
1603   "               WHERE a.wc_id = ?1 AND A.local_relpath = n.local_relpath), " \
1604   "              properties), " \
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') " \
1609   ""
1610
1611 #define STMT_SELECT_CURRENT_PROPS_RECURSIVE 150
1612 #define STMT_150_INFO {"STMT_SELECT_CURRENT_PROPS_RECURSIVE", NULL}
1613 #define STMT_150 \
1614   "SELECT IFNULL((SELECT properties FROM actual_node a " \
1615   "               WHERE a.wc_id = ?1 AND A.local_relpath = n.local_relpath), " \
1616   "              properties), " \
1617   "       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))) " \
1621   ""
1622
1623 #define STMT_PRAGMA_LOCKING_MODE 151
1624 #define STMT_151_INFO {"STMT_PRAGMA_LOCKING_MODE", NULL}
1625 #define STMT_151 \
1626   "PRAGMA locking_mode = exclusive; " \
1627   "PRAGMA journal_mode = DELETE " \
1628   ""
1629
1630 #define STMT_INSERT_ACTUAL_NODE 152
1631 #define STMT_152_INFO {"STMT_INSERT_ACTUAL_NODE", NULL}
1632 #define STMT_152 \
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) " \
1636   ""
1637
1638 #define STMT_SELECT_ALL_FILES 153
1639 #define STMT_153_INFO {"STMT_SELECT_ALL_FILES", NULL}
1640 #define STMT_153 \
1641   "SELECT local_relpath FROM nodes_current " \
1642   "WHERE wc_id = ?1 AND parent_relpath = ?2 AND kind = 'file' " \
1643   ""
1644
1645 #define STMT_UPDATE_NODE_PROPS 154
1646 #define STMT_154_INFO {"STMT_UPDATE_NODE_PROPS", NULL}
1647 #define STMT_154 \
1648   "UPDATE nodes SET properties = ?4 " \
1649   "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \
1650   ""
1651
1652 #define STMT_PRAGMA_TABLE_INFO_NODES 155
1653 #define STMT_155_INFO {"STMT_PRAGMA_TABLE_INFO_NODES", NULL}
1654 #define STMT_155 \
1655   "PRAGMA table_info(\"NODES\") " \
1656   ""
1657
1658 #define STMT_CREATE_TARGET_PROP_CACHE 156
1659 #define STMT_156_INFO {"STMT_CREATE_TARGET_PROP_CACHE", NULL}
1660 #define STMT_156 \
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 " \
1666   "); " \
1667   ""
1668
1669 #define STMT_CACHE_TARGET_PROPS 157
1670 #define STMT_157_INFO {"STMT_CACHE_TARGET_PROPS", NULL}
1671 #define STMT_157 \
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), " \
1677   "               n.properties) " \
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 " \
1688   ""
1689
1690 #define STMT_CACHE_TARGET_PRISTINE_PROPS 158
1691 #define STMT_158_INFO {"STMT_CACHE_TARGET_PRISTINE_PROPS", NULL}
1692 #define STMT_158 \
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 " \
1715   ""
1716
1717 #define STMT_SELECT_ALL_TARGET_PROP_CACHE 159
1718 #define STMT_159_INFO {"STMT_SELECT_ALL_TARGET_PROP_CACHE", NULL}
1719 #define STMT_159 \
1720   "SELECT local_relpath, properties FROM target_prop_cache " \
1721   "ORDER BY local_relpath " \
1722   ""
1723
1724 #define STMT_DROP_TARGET_PROP_CACHE 160
1725 #define STMT_160_INFO {"STMT_DROP_TARGET_PROP_CACHE", NULL}
1726 #define STMT_160 \
1727   "DROP TABLE target_prop_cache; " \
1728   ""
1729
1730 #define STMT_CREATE_REVERT_LIST 161
1731 #define STMT_161_INFO {"STMT_CREATE_REVERT_LIST", NULL}
1732 #define STMT_161 \
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, " \
1741   "   kind TEXT, " \
1742   "   PRIMARY KEY (local_relpath, actual) " \
1743   "   ); " \
1744   "DROP TRIGGER IF EXISTS   trigger_revert_list_nodes; " \
1745   "CREATE TEMPORARY TRIGGER trigger_revert_list_nodes " \
1746   "BEFORE DELETE ON nodes " \
1747   "BEGIN " \
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; " \
1751   "END; " \
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 " \
1755   "BEGIN " \
1756   "   INSERT OR REPLACE INTO revert_list(local_relpath, actual, conflict_data, " \
1757   "                                      notify) " \
1758   "   SELECT OLD.local_relpath, 1, OLD.conflict_data, " \
1759   "          CASE " \
1760   "            WHEN OLD.properties IS NOT NULL " \
1761   "            THEN 1 " \
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) " \
1765   "            THEN 1 " \
1766   "          END notify " \
1767   "   WHERE OLD.conflict_data IS NOT NULL " \
1768   "      OR notify IS NOT NULL; " \
1769   "END; " \
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 " \
1773   "BEGIN " \
1774   "   INSERT OR REPLACE INTO revert_list(local_relpath, actual, conflict_data, " \
1775   "                                      notify) " \
1776   "   SELECT OLD.local_relpath, 1, OLD.conflict_data, " \
1777   "          CASE " \
1778   "            WHEN OLD.properties IS NOT NULL " \
1779   "            THEN 1 " \
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) " \
1783   "            THEN 1 " \
1784   "          END notify " \
1785   "   WHERE OLD.conflict_data IS NOT NULL " \
1786   "      OR notify IS NOT NULL; " \
1787   "END " \
1788   ""
1789
1790 #define STMT_DROP_REVERT_LIST_TRIGGERS 162
1791 #define STMT_162_INFO {"STMT_DROP_REVERT_LIST_TRIGGERS", NULL}
1792 #define STMT_162 \
1793   "DROP TRIGGER trigger_revert_list_nodes; " \
1794   "DROP TRIGGER trigger_revert_list_actual_delete; " \
1795   "DROP TRIGGER trigger_revert_list_actual_update " \
1796   ""
1797
1798 #define STMT_SELECT_REVERT_LIST 163
1799 #define STMT_163_INFO {"STMT_SELECT_REVERT_LIST", NULL}
1800 #define STMT_163 \
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 " \
1805   ""
1806
1807 #define STMT_SELECT_REVERT_LIST_COPIED_CHILDREN 164
1808 #define STMT_164_INFO {"STMT_SELECT_REVERT_LIST_COPIED_CHILDREN", NULL}
1809 #define STMT_164 \
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 " \
1816   ""
1817
1818 #define STMT_DELETE_REVERT_LIST 165
1819 #define STMT_165_INFO {"STMT_DELETE_REVERT_LIST", NULL}
1820 #define STMT_165 \
1821   "DELETE FROM revert_list WHERE local_relpath = ?1 " \
1822   ""
1823
1824 #define STMT_SELECT_REVERT_LIST_RECURSIVE 166
1825 #define STMT_166_INFO {"STMT_SELECT_REVERT_LIST_RECURSIVE", NULL}
1826 #define STMT_166 \
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 " \
1835   ""
1836
1837 #define STMT_DELETE_REVERT_LIST_RECURSIVE 167
1838 #define STMT_167_INFO {"STMT_DELETE_REVERT_LIST_RECURSIVE", NULL}
1839 #define STMT_167 \
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))) " \
1843   ""
1844
1845 #define STMT_DROP_REVERT_LIST 168
1846 #define STMT_168_INFO {"STMT_DROP_REVERT_LIST", NULL}
1847 #define STMT_168 \
1848   "DROP TABLE IF EXISTS revert_list " \
1849   ""
1850
1851 #define STMT_CREATE_DELETE_LIST 169
1852 #define STMT_169_INFO {"STMT_CREATE_DELETE_LIST", NULL}
1853 #define STMT_169 \
1854   "DROP TABLE IF EXISTS delete_list; " \
1855   "CREATE TEMPORARY TABLE delete_list ( " \
1856   "   local_relpath TEXT PRIMARY KEY NOT NULL UNIQUE " \
1857   "   ) " \
1858   ""
1859
1860 #define STMT_INSERT_DELETE_LIST 170
1861 #define STMT_170_INFO {"STMT_INSERT_DELETE_LIST", NULL}
1862 #define STMT_170 \
1863   "INSERT INTO delete_list(local_relpath) " \
1864   "SELECT ?2 " \
1865   "UNION ALL " \
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 " \
1876   ""
1877
1878 #define STMT_SELECT_DELETE_LIST 171
1879 #define STMT_171_INFO {"STMT_SELECT_DELETE_LIST", NULL}
1880 #define STMT_171 \
1881   "SELECT local_relpath FROM delete_list " \
1882   "ORDER BY local_relpath " \
1883   ""
1884
1885 #define STMT_FINALIZE_DELETE 172
1886 #define STMT_172_INFO {"STMT_FINALIZE_DELETE", NULL}
1887 #define STMT_172 \
1888   "DROP TABLE IF EXISTS delete_list " \
1889   ""
1890
1891 #define STMT_CREATE_UPDATE_MOVE_LIST 173
1892 #define STMT_173_INFO {"STMT_CREATE_UPDATE_MOVE_LIST", NULL}
1893 #define STMT_173 \
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 " \
1901   "  ) " \
1902   ""
1903
1904 #define STMT_INSERT_UPDATE_MOVE_LIST 174
1905 #define STMT_174_INFO {"STMT_INSERT_UPDATE_MOVE_LIST", NULL}
1906 #define STMT_174 \
1907   "INSERT INTO update_move_list(local_relpath, action, kind, content_state, " \
1908   "  prop_state) " \
1909   "VALUES (?1, ?2, ?3, ?4, ?5) " \
1910   ""
1911
1912 #define STMT_SELECT_UPDATE_MOVE_LIST 175
1913 #define STMT_175_INFO {"STMT_SELECT_UPDATE_MOVE_LIST", NULL}
1914 #define STMT_175 \
1915   "SELECT local_relpath, action, kind, content_state, prop_state " \
1916   "FROM update_move_list " \
1917   "ORDER BY local_relpath " \
1918   ""
1919
1920 #define STMT_FINALIZE_UPDATE_MOVE 176
1921 #define STMT_176_INFO {"STMT_FINALIZE_UPDATE_MOVE", NULL}
1922 #define STMT_176 \
1923   "DROP TABLE IF EXISTS update_move_list " \
1924   ""
1925
1926 #define STMT_MOVE_NOTIFY_TO_REVERT 177
1927 #define STMT_177_INFO {"STMT_MOVE_NOTIFY_TO_REVERT", NULL}
1928 #define STMT_177 \
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 " \
1932   ""
1933
1934 #define STMT_SELECT_MIN_MAX_REVISIONS 178
1935 #define STMT_178_INFO {"STMT_SELECT_MIN_MAX_REVISIONS", NULL}
1936 #define STMT_178 \
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 " \
1945   ""
1946
1947 #define STMT_HAS_SPARSE_NODES 179
1948 #define STMT_179_INFO {"STMT_HAS_SPARSE_NODES", NULL}
1949 #define STMT_179 \
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 " \
1958   "LIMIT 1 " \
1959   ""
1960
1961 #define STMT_SUBTREE_HAS_TREE_MODIFICATIONS 180
1962 #define STMT_180_INFO {"STMT_SUBTREE_HAS_TREE_MODIFICATIONS", NULL}
1963 #define STMT_180 \
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 " \
1969   "LIMIT 1 " \
1970   ""
1971
1972 #define STMT_SUBTREE_HAS_PROP_MODIFICATIONS 181
1973 #define STMT_181_INFO {"STMT_SUBTREE_HAS_PROP_MODIFICATIONS", NULL}
1974 #define STMT_181 \
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 " \
1980   "LIMIT 1 " \
1981   ""
1982
1983 #define STMT_HAS_SWITCHED 182
1984 #define STMT_182_INFO {"STMT_HAS_SWITCHED", NULL}
1985 #define STMT_182 \
1986   "SELECT 1 " \
1987   "FROM nodes " \
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) " \
1994   "LIMIT 1 " \
1995   ""
1996
1997 #define STMT_SELECT_MOVED_FROM_RELPATH 183
1998 #define STMT_183_INFO {"STMT_SELECT_MOVED_FROM_RELPATH", NULL}
1999 #define STMT_183 \
2000   "SELECT local_relpath, op_depth FROM nodes " \
2001   "WHERE wc_id = ?1 AND moved_to = ?2 AND op_depth > 0 " \
2002   ""
2003
2004 #define STMT_UPDATE_MOVED_TO_RELPATH 184
2005 #define STMT_184_INFO {"STMT_UPDATE_MOVED_TO_RELPATH", NULL}
2006 #define STMT_184 \
2007   "UPDATE nodes SET moved_to = ?4 " \
2008   "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \
2009   ""
2010
2011 #define STMT_CLEAR_MOVED_TO_RELPATH 185
2012 #define STMT_185_INFO {"STMT_CLEAR_MOVED_TO_RELPATH", NULL}
2013 #define STMT_185 \
2014   "UPDATE nodes SET moved_to = NULL " \
2015   "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \
2016   ""
2017
2018 #define STMT_CLEAR_MOVED_HERE_RECURSIVE 186
2019 #define STMT_186_INFO {"STMT_CLEAR_MOVED_HERE_RECURSIVE", NULL}
2020 #define STMT_186 \
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 " \
2025   ""
2026
2027 #define STMT_SELECT_MOVED_HERE_CHILDREN 187
2028 #define STMT_187_INFO {"STMT_SELECT_MOVED_HERE_CHILDREN", NULL}
2029 #define STMT_187 \
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)) " \
2033   ""
2034
2035 #define STMT_SELECT_MOVED_FOR_DELETE 188
2036 #define STMT_188_INFO {"STMT_SELECT_MOVED_FOR_DELETE", NULL}
2037 #define STMT_188 \
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 " \
2044   " FROM nodes n " \
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 " \
2049   ""
2050
2051 #define STMT_SELECT_MOVED_FROM_FOR_DELETE 189
2052 #define STMT_189_INFO {"STMT_SELECT_MOVED_FROM_FOR_DELETE", NULL}
2053 #define STMT_189 \
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 " \
2060   " FROM nodes n " \
2061   "WHERE wc_id = ?1 AND moved_to = ?2 AND op_depth > 0 " \
2062   ""
2063
2064 #define STMT_UPDATE_MOVED_TO_DESCENDANTS 190
2065 #define STMT_190_INFO {"STMT_UPDATE_MOVED_TO_DESCENDANTS", NULL}
2066 #define STMT_190 \
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)) " \
2070   ""
2071
2072 #define STMT_CLEAR_MOVED_TO_DESCENDANTS 191
2073 #define STMT_191_INFO {"STMT_CLEAR_MOVED_TO_DESCENDANTS", NULL}
2074 #define STMT_191 \
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)) " \
2078   ""
2079
2080 #define STMT_SELECT_MOVED_PAIR3 192
2081 #define STMT_192_INFO {"STMT_SELECT_MOVED_PAIR3", NULL}
2082 #define STMT_192 \
2083   "SELECT n.local_relpath, d.moved_to, d.op_depth, n.kind " \
2084   "FROM nodes n " \
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) " \
2087   "                    FROM nodes dd " \
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 " \
2093   "UNION ALL " \
2094   "SELECT n.local_relpath, d.moved_to, d.op_depth, n.kind " \
2095   "FROM nodes n " \
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) " \
2098   "                    FROM nodes dd " \
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 " \
2106   ""
2107
2108 #define STMT_SELECT_MOVED_OUTSIDE 193
2109 #define STMT_193_INFO {"STMT_SELECT_MOVED_OUTSIDE", NULL}
2110 #define STMT_193 \
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)) " \
2117   ""
2118
2119 #define STMT_SELECT_MOVED_DESCENDANTS_SRC 194
2120 #define STMT_194_INFO {"STMT_SELECT_MOVED_DESCENDANTS_SRC", NULL}
2121 #define STMT_194 \
2122   "SELECT s.op_depth, n.local_relpath, n.kind, n.repos_path, s.moved_to " \
2123   "FROM nodes n " \
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) " \
2126   "                    FROM nodes d " \
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 " \
2133   ""
2134
2135 #define STMT_COMMIT_UPDATE_ORIGIN 195
2136 #define STMT_195_INFO {"STMT_COMMIT_UPDATE_ORIGIN", NULL}
2137 #define STMT_195 \
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), " \
2140   "                 revision = ?6 " \
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 " \
2145   ""
2146
2147 #define STMT_HAS_LAYER_BETWEEN 196
2148 #define STMT_196_INFO {"STMT_HAS_LAYER_BETWEEN", NULL}
2149 #define STMT_196 \
2150   "SELECT 1 FROM NODES " \
2151   "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth > ?3 AND op_depth < ?4 " \
2152   ""
2153
2154 #define STMT_SELECT_REPOS_PATH_REVISION 197
2155 #define STMT_197_INFO {"STMT_SELECT_REPOS_PATH_REVISION", NULL}
2156 #define STMT_197 \
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 " \
2162   ""
2163
2164 #define STMT_SELECT_HAS_NON_FILE_CHILDREN 198
2165 #define STMT_198_INFO {"STMT_SELECT_HAS_NON_FILE_CHILDREN", NULL}
2166 #define STMT_198 \
2167   "SELECT 1 FROM nodes " \
2168   "WHERE wc_id = ?1 AND parent_relpath = ?2 AND op_depth = ?3 AND kind != 'file' " \
2169   "LIMIT 1 " \
2170   ""
2171
2172 #define STMT_SELECT_HAS_GRANDCHILDREN 199
2173 #define STMT_199_INFO {"STMT_SELECT_HAS_GRANDCHILDREN", NULL}
2174 #define STMT_199 \
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 " \
2180   "LIMIT 1 " \
2181   ""
2182
2183 #define STMT_SELECT_ALL_NODES 200
2184 #define STMT_200_INFO {"STMT_SELECT_ALL_NODES", NULL}
2185 #define STMT_200 \
2186   "SELECT op_depth, local_relpath, parent_relpath, file_external FROM nodes " \
2187   "WHERE wc_id = ?1 " \
2188   ""
2189
2190 #define STMT_SELECT_IPROPS 201
2191 #define STMT_201_INFO {"STMT_SELECT_IPROPS", NULL}
2192 #define STMT_201 \
2193   "SELECT inherited_props FROM nodes " \
2194   "WHERE wc_id = ?1 " \
2195   "  AND local_relpath = ?2 " \
2196   "  AND op_depth = 0 " \
2197   ""
2198
2199 #define STMT_UPDATE_IPROP 202
2200 #define STMT_202_INFO {"STMT_UPDATE_IPROP", NULL}
2201 #define STMT_202 \
2202   "UPDATE nodes " \
2203   "SET inherited_props = ?3 " \
2204   "WHERE (wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0) " \
2205   ""
2206
2207 #define STMT_SELECT_IPROPS_NODE 203
2208 #define STMT_203_INFO {"STMT_SELECT_IPROPS_NODE", NULL}
2209 #define STMT_203 \
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) " \
2215   ""
2216
2217 #define STMT_SELECT_IPROPS_RECURSIVE 204
2218 #define STMT_204_INFO {"STMT_SELECT_IPROPS_RECURSIVE", NULL}
2219 #define STMT_204 \
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) " \
2225   ""
2226
2227 #define STMT_SELECT_IPROPS_CHILDREN 205
2228 #define STMT_205_INFO {"STMT_SELECT_IPROPS_CHILDREN", NULL}
2229 #define STMT_205 \
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) " \
2235   ""
2236
2237 #define STMT_HAVE_STAT1_TABLE 206
2238 #define STMT_206_INFO {"STMT_HAVE_STAT1_TABLE", NULL}
2239 #define STMT_206 \
2240   "SELECT 1 FROM sqlite_master WHERE name='sqlite_stat1' AND type='table' " \
2241   "LIMIT 1 " \
2242   ""
2243
2244 #define STMT_CREATE_SCHEMA 207
2245 #define STMT_207_INFO {"STMT_CREATE_SCHEMA", NULL}
2246 #define STMT_207 \
2247   "CREATE TABLE REPOSITORY ( " \
2248   "  id INTEGER PRIMARY KEY AUTOINCREMENT, " \
2249   "  root  TEXT UNIQUE NOT NULL, " \
2250   "  uuid  TEXT NOT NULL " \
2251   "  ); " \
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 " \
2257   "  ); " \
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 " \
2265   "  ); " \
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) " \
2284   "  ); " \
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) " \
2295   "  ); " \
2296   "CREATE TABLE WORK_QUEUE ( " \
2297   "  id  INTEGER PRIMARY KEY AUTOINCREMENT, " \
2298   "  work  BLOB NOT NULL " \
2299   "  ); " \
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) " \
2305   " ); " \
2306   "PRAGMA user_version = " \
2307   APR_STRINGIFY(SVN_WC__VERSION) \
2308   "; " \
2309   ""
2310
2311 #define STMT_CREATE_NODES 208
2312 #define STMT_208_INFO {"STMT_CREATE_NODES", NULL}
2313 #define STMT_208 \
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, " \
2327   "  depth  TEXT, " \
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) " \
2339   "  ); " \
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; " \
2351   ""
2352
2353 #define STMT_CREATE_NODES_TRIGGERS 209
2354 #define STMT_209_INFO {"STMT_CREATE_NODES_TRIGGERS", NULL}
2355 #define STMT_209 \
2356   "CREATE TRIGGER nodes_insert_trigger " \
2357   "AFTER INSERT ON nodes " \
2358   "WHEN NEW.checksum IS NOT NULL " \
2359   "BEGIN " \
2360   "  UPDATE pristine SET refcount = refcount + 1 " \
2361   "  WHERE checksum = NEW.checksum; " \
2362   "END; " \
2363   "CREATE TRIGGER nodes_delete_trigger " \
2364   "AFTER DELETE ON nodes " \
2365   "WHEN OLD.checksum IS NOT NULL " \
2366   "BEGIN " \
2367   "  UPDATE pristine SET refcount = refcount - 1 " \
2368   "  WHERE checksum = OLD.checksum; " \
2369   "END; " \
2370   "CREATE TRIGGER nodes_update_checksum_trigger " \
2371   "AFTER UPDATE OF checksum ON nodes " \
2372   "WHEN NEW.checksum IS NOT OLD.checksum " \
2373   "BEGIN " \
2374   "  UPDATE pristine SET refcount = refcount + 1 " \
2375   "  WHERE checksum = NEW.checksum; " \
2376   "  UPDATE pristine SET refcount = refcount - 1 " \
2377   "  WHERE checksum = OLD.checksum; " \
2378   "END; " \
2379   ""
2380
2381 #define STMT_CREATE_EXTERNALS 210
2382 #define STMT_210_INFO {"STMT_CREATE_EXTERNALS", NULL}
2383 #define STMT_210 \
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) " \
2396   "); " \
2397   "CREATE UNIQUE INDEX I_EXTERNALS_DEFINED ON EXTERNALS (wc_id, " \
2398   "                                                      def_local_relpath, " \
2399   "                                                      local_relpath); " \
2400   ""
2401
2402 #define STMT_INSTALL_SCHEMA_STATISTICS 211
2403 #define STMT_211_INFO {"STMT_INSTALL_SCHEMA_STATISTICS", NULL}
2404 #define STMT_211 \
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; " \
2427   ""
2428
2429 #define STMT_UPGRADE_TO_20 212
2430 #define STMT_212_INFO {"STMT_UPGRADE_TO_20", NULL}
2431 #define STMT_212 \
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; " \
2470   ""
2471
2472 #define STMT_UPGRADE_TO_21 213
2473 #define STMT_213_INFO {"STMT_UPGRADE_TO_21", NULL}
2474 #define STMT_213 \
2475   "PRAGMA user_version = 21; " \
2476   ""
2477
2478 #define STMT_UPGRADE_21_SELECT_OLD_TREE_CONFLICT 214
2479 #define STMT_214_INFO {"STMT_UPGRADE_21_SELECT_OLD_TREE_CONFLICT", NULL}
2480 #define STMT_214 \
2481   "SELECT wc_id, local_relpath, tree_conflict_data " \
2482   "FROM actual_node " \
2483   "WHERE tree_conflict_data IS NOT NULL " \
2484   ""
2485
2486 #define STMT_UPGRADE_21_ERASE_OLD_CONFLICTS 215
2487 #define STMT_215_INFO {"STMT_UPGRADE_21_ERASE_OLD_CONFLICTS", NULL}
2488 #define STMT_215 \
2489   "UPDATE actual_node SET tree_conflict_data = NULL " \
2490   ""
2491
2492 #define STMT_UPGRADE_TO_22 216
2493 #define STMT_216_INFO {"STMT_UPGRADE_TO_22", NULL}
2494 #define STMT_216 \
2495   "UPDATE actual_node SET tree_conflict_data = conflict_data; " \
2496   "UPDATE actual_node SET conflict_data = NULL; " \
2497   "PRAGMA user_version = 22; " \
2498   ""
2499
2500 #define STMT_UPGRADE_TO_23 217
2501 #define STMT_217_INFO {"STMT_UPGRADE_TO_23", NULL}
2502 #define STMT_217 \
2503   "PRAGMA user_version = 23; " \
2504   ""
2505
2506 #define STMT_UPGRADE_23_HAS_WORKING_NODES 218
2507 #define STMT_218_INFO {"STMT_UPGRADE_23_HAS_WORKING_NODES", NULL}
2508 #define STMT_218 \
2509   "SELECT 1 FROM nodes WHERE op_depth > 0 " \
2510   "LIMIT 1 " \
2511   ""
2512
2513 #define STMT_UPGRADE_TO_24 219
2514 #define STMT_219_INFO {"STMT_UPGRADE_TO_24", NULL}
2515 #define STMT_219 \
2516   "UPDATE pristine SET refcount = " \
2517   "  (SELECT COUNT(*) FROM nodes " \
2518   "   WHERE checksum = pristine.checksum ); " \
2519   "PRAGMA user_version = 24; " \
2520   ""
2521
2522 #define STMT_UPGRADE_TO_25 220
2523 #define STMT_220_INFO {"STMT_UPGRADE_TO_25", NULL}
2524 #define STMT_220 \
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; " \
2534   ""
2535
2536 #define STMT_UPGRADE_TO_26 221
2537 #define STMT_221_INFO {"STMT_UPGRADE_TO_26", NULL}
2538 #define STMT_221 \
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; " \
2544   ""
2545
2546 #define STMT_UPGRADE_TO_27 222
2547 #define STMT_222_INFO {"STMT_UPGRADE_TO_27", NULL}
2548 #define STMT_222 \
2549   "PRAGMA user_version = 27; " \
2550   ""
2551
2552 #define STMT_UPGRADE_27_HAS_ACTUAL_NODES_CONFLICTS 223
2553 #define STMT_223_INFO {"STMT_UPGRADE_27_HAS_ACTUAL_NODES_CONFLICTS", NULL}
2554 #define STMT_223 \
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)) " \
2559   "LIMIT 1 " \
2560   ""
2561
2562 #define STMT_UPGRADE_TO_28 224
2563 #define STMT_224_INFO {"STMT_UPGRADE_TO_28", NULL}
2564 #define STMT_224 \
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; " \
2569   ""
2570
2571 #define STMT_UPGRADE_TO_29 225
2572 #define STMT_225_INFO {"STMT_UPGRADE_TO_29", NULL}
2573 #define STMT_225 \
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 " \
2580   "BEGIN " \
2581   "  UPDATE pristine SET refcount = refcount + 1 " \
2582   "  WHERE checksum = NEW.checksum; " \
2583   "  UPDATE pristine SET refcount = refcount - 1 " \
2584   "  WHERE checksum = OLD.checksum; " \
2585   "END; " \
2586   "CREATE TRIGGER nodes_insert_trigger " \
2587   "AFTER INSERT ON nodes " \
2588   "WHEN NEW.checksum IS NOT NULL " \
2589   "BEGIN " \
2590   "  UPDATE pristine SET refcount = refcount + 1 " \
2591   "  WHERE checksum = NEW.checksum; " \
2592   "END; " \
2593   "CREATE TRIGGER nodes_delete_trigger " \
2594   "AFTER DELETE ON nodes " \
2595   "WHEN OLD.checksum IS NOT NULL " \
2596   "BEGIN " \
2597   "  UPDATE pristine SET refcount = refcount - 1 " \
2598   "  WHERE checksum = OLD.checksum; " \
2599   "END; " \
2600   "PRAGMA user_version = 29; " \
2601   ""
2602
2603 #define STMT_UPGRADE_TO_30 226
2604 #define STMT_226_INFO {"STMT_UPGRADE_TO_30", NULL}
2605 #define STMT_226 \
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; " \
2611   ""
2612
2613 #define STMT_UPGRADE_30_SELECT_CONFLICT_SEPARATE 227
2614 #define STMT_227_INFO {"STMT_UPGRADE_30_SELECT_CONFLICT_SEPARATE", NULL}
2615 #define STMT_227 \
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 " \
2625   ""
2626
2627 #define STMT_UPGRADE_30_SET_CONFLICT 228
2628 #define STMT_228_INFO {"STMT_UPGRADE_30_SET_CONFLICT", NULL}
2629 #define STMT_228 \
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 " \
2634   ""
2635
2636 #define STMT_UPGRADE_TO_31_ALTER_TABLE 229
2637 #define STMT_229_INFO {"STMT_UPGRADE_TO_31_ALTER_TABLE", NULL}
2638 #define STMT_229 \
2639   "ALTER TABLE NODES ADD COLUMN inherited_props BLOB; " \
2640   ""
2641
2642 #define STMT_UPGRADE_TO_31_FINALIZE 230
2643 #define STMT_230_INFO {"STMT_UPGRADE_TO_31_FINALIZE", NULL}
2644 #define STMT_230 \
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; " \
2654   ""
2655
2656 #define STMT_UPGRADE_31_SELECT_WCROOT_NODES 231
2657 #define STMT_231_INFO {"STMT_UPGRADE_31_SELECT_WCROOT_NODES", NULL}
2658 #define STMT_231 \
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))) " \
2668   ""
2669
2670 #define STMT_UPGRADE_TO_32 232
2671 #define STMT_232_INFO {"STMT_UPGRADE_TO_32", NULL}
2672 #define STMT_232 \
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); " \
2682   "-- format: YYY " \
2683   ""
2684
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, " \
2696   "  text_mod  TEXT " \
2697   "  ); " \
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) " \
2715   "  ); " \
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; " \
2723   ""
2724
2725 #define STMT_VERIFICATION_TRIGGERS 233
2726 #define STMT_233_INFO {"STMT_VERIFICATION_TRIGGERS", NULL}
2727 #define STMT_233 \
2728   "CREATE TEMPORARY TRIGGER no_repository_updates BEFORE UPDATE ON repository " \
2729   "BEGIN " \
2730   "  SELECT RAISE(FAIL, 'Updates to REPOSITORY are not allowed.'); " \
2731   "END; " \
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)) " \
2736   "BEGIN " \
2737   "  SELECT RAISE(FAIL, 'WC DB validity check 01 failed'); " \
2738   "END; " \
2739   "CREATE TEMPORARY TRIGGER validation_02 BEFORE INSERT ON nodes " \
2740   "WHEN NOT new.op_depth <= relpath_depth(new.local_relpath) " \
2741   "BEGIN " \
2742   "  SELECT RAISE(FAIL, 'WC DB validity check 02 failed'); " \
2743   "END; " \
2744   "CREATE TEMPORARY TRIGGER validation_03 BEFORE INSERT ON nodes " \
2745   "WHEN NOT ( " \
2746   "    (new.op_depth = relpath_depth(new.local_relpath)) " \
2747   "    OR " \
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)) " \
2751   "  ) " \
2752   " AND NOT (new.file_external IS NOT NULL AND new.op_depth = 0) " \
2753   "BEGIN " \
2754   "  SELECT RAISE(FAIL, 'WC DB validity check 03 failed'); " \
2755   "END; " \
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)) " \
2761   "BEGIN " \
2762   "  SELECT RAISE(FAIL, 'WC DB validity check 04 failed'); " \
2763   "END; " \
2764   ""
2765
2766 #define STMT_STATIC_VERIFY 234
2767 #define STMT_234_INFO {"STMT_STATIC_VERIFY", NULL}
2768 #define STMT_234 \
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) " \
2774   "UNION ALL " \
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) " \
2780   "UNION ALL " \
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) " \
2789   "UNION ALL " \
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) " \
2803   "UNION ALL " \
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) " \
2811   "UNION ALL " \
2812   "SELECT local_relpath, op_depth, 21, 'Unneeded node data' " \
2813   "FROM nodes " \
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) " \
2827   "UNION ALL " \
2828   "SELECT local_relpath, op_depth, 22, 'Unneeded base-deleted node data' " \
2829   "FROM nodes " \
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) " \
2834   "UNION ALL " \
2835   "SELECT local_relpath, op_depth, 23, 'Kind specific data invalid on normal' " \
2836   "FROM nodes " \
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)) " \
2851   "UNION ALL " \
2852   "SELECT local_relpath, op_depth, 24, 'Invalid op-depth for local add' " \
2853   "FROM nodes " \
2854   "WHERE presence IN ('normal', 'incomplete') " \
2855   "  AND repos_path IS NULL " \
2856   "  AND op_depth != relpath_depth(local_relpath) " \
2857   "UNION ALL " \
2858   "SELECT local_relpath, op_depth, 25, 'Node missing op-depth ancestor' " \
2859   "FROM nodes n " \
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'))) " \
2868   "UNION ALL " \
2869   "SELECT n.local_relpath, n.op_depth, 26, 'Copied descendant mismatch' " \
2870   "FROM nodes n " \
2871   "JOIN nodes p " \
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) " \
2881   "UNION ALL " \
2882   "SELECT n.local_relpath, n.op_depth, 27, 'Invalid op-root presence' " \
2883   "FROM nodes n " \
2884   "WHERE n.op_depth = relpath_depth(local_relpath) " \
2885   "  AND presence NOT IN ('normal', 'incomplete', 'base-deleted') " \
2886   "UNION ALL " \
2887   "SELECT n.local_relpath, s.op_depth, 28, 'Incomplete shadowing' " \
2888   "FROM nodes n " \
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 " \
2896   "             FROM nodes dn " \
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 " \
2902   "                              FROM nodes ds " \
2903   "                              WHERE ds.wc_id=n.wc_id AND ds.op_depth=s.op_depth " \
2904   "                                AND ds.local_relpath=dn.local_relpath)) " \
2905   "UNION ALL " \
2906   "SELECT s.local_relpath, s.op_depth, 29, 'Invalid base-delete' " \
2907   "FROM nodes s " \
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') " \
2915   "       ) " \
2916   "UNION ALL " \
2917   "SELECT n.local_relpath, n.op_depth, 30, 'Invalid data for BASE' " \
2918   "FROM nodes n " \
2919   "WHERE n.op_depth = 0 " \
2920   "  AND (n.moved_to IS NOT NULL " \
2921   "       OR n.moved_here IS NOT NULL) " \
2922   "UNION ALL " \
2923   "SELECT d.local_relpath, d.op_depth, 60, 'Moved here without origin' " \
2924   "FROM nodes d " \
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) " \
2929   "UNION ALL " \
2930   "SELECT s.local_relpath, s.op_depth, 61, 'Moved to without target' " \
2931   "FROM nodes s " \
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) " \
2937   ""
2938
2939 #define WC_QUERIES_SQL_DECLARE_STATEMENTS(varname) \
2940   static const char * const varname[] = { \
2941     STMT_0, \
2942     STMT_1, \
2943     STMT_2, \
2944     STMT_3, \
2945     STMT_4, \
2946     STMT_5, \
2947     STMT_6, \
2948     STMT_7, \
2949     STMT_8, \
2950     STMT_9, \
2951     STMT_10, \
2952     STMT_11, \
2953     STMT_12, \
2954     STMT_13, \
2955     STMT_14, \
2956     STMT_15, \
2957     STMT_16, \
2958     STMT_17, \
2959     STMT_18, \
2960     STMT_19, \
2961     STMT_20, \
2962     STMT_21, \
2963     STMT_22, \
2964     STMT_23, \
2965     STMT_24, \
2966     STMT_25, \
2967     STMT_26, \
2968     STMT_27, \
2969     STMT_28, \
2970     STMT_29, \
2971     STMT_30, \
2972     STMT_31, \
2973     STMT_32, \
2974     STMT_33, \
2975     STMT_34, \
2976     STMT_35, \
2977     STMT_36, \
2978     STMT_37, \
2979     STMT_38, \
2980     STMT_39, \
2981     STMT_40, \
2982     STMT_41, \
2983     STMT_42, \
2984     STMT_43, \
2985     STMT_44, \
2986     STMT_45, \
2987     STMT_46, \
2988     STMT_47, \
2989     STMT_48, \
2990     STMT_49, \
2991     STMT_50, \
2992     STMT_51, \
2993     STMT_52, \
2994     STMT_53, \
2995     STMT_54, \
2996     STMT_55, \
2997     STMT_56, \
2998     STMT_57, \
2999     STMT_58, \
3000     STMT_59, \
3001     STMT_60, \
3002     STMT_61, \
3003     STMT_62, \
3004     STMT_63, \
3005     STMT_64, \
3006     STMT_65, \
3007     STMT_66, \
3008     STMT_67, \
3009     STMT_68, \
3010     STMT_69, \
3011     STMT_70, \
3012     STMT_71, \
3013     STMT_72, \
3014     STMT_73, \
3015     STMT_74, \
3016     STMT_75, \
3017     STMT_76, \
3018     STMT_77, \
3019     STMT_78, \
3020     STMT_79, \
3021     STMT_80, \
3022     STMT_81, \
3023     STMT_82, \
3024     STMT_83, \
3025     STMT_84, \
3026     STMT_85, \
3027     STMT_86, \
3028     STMT_87, \
3029     STMT_88, \
3030     STMT_89, \
3031     STMT_90, \
3032     STMT_91, \
3033     STMT_92, \
3034     STMT_93, \
3035     STMT_94, \
3036     STMT_95, \
3037     STMT_96, \
3038     STMT_97, \
3039     STMT_98, \
3040     STMT_99, \
3041     STMT_100, \
3042     STMT_101, \
3043     STMT_102, \
3044     STMT_103, \
3045     STMT_104, \
3046     STMT_105, \
3047     STMT_106, \
3048     STMT_107, \
3049     STMT_108, \
3050     STMT_109, \
3051     STMT_110, \
3052     STMT_111, \
3053     STMT_112, \
3054     STMT_113, \
3055     STMT_114, \
3056     STMT_115, \
3057     STMT_116, \
3058     STMT_117, \
3059     STMT_118, \
3060     STMT_119, \
3061     STMT_120, \
3062     STMT_121, \
3063     STMT_122, \
3064     STMT_123, \
3065     STMT_124, \
3066     STMT_125, \
3067     STMT_126, \
3068     STMT_127, \
3069     STMT_128, \
3070     STMT_129, \
3071     STMT_130, \
3072     STMT_131, \
3073     STMT_132, \
3074     STMT_133, \
3075     STMT_134, \
3076     STMT_135, \
3077     STMT_136, \
3078     STMT_137, \
3079     STMT_138, \
3080     STMT_139, \
3081     STMT_140, \
3082     STMT_141, \
3083     STMT_142, \
3084     STMT_143, \
3085     STMT_144, \
3086     STMT_145, \
3087     STMT_146, \
3088     STMT_147, \
3089     STMT_148, \
3090     STMT_149, \
3091     STMT_150, \
3092     STMT_151, \
3093     STMT_152, \
3094     STMT_153, \
3095     STMT_154, \
3096     STMT_155, \
3097     STMT_156, \
3098     STMT_157, \
3099     STMT_158, \
3100     STMT_159, \
3101     STMT_160, \
3102     STMT_161, \
3103     STMT_162, \
3104     STMT_163, \
3105     STMT_164, \
3106     STMT_165, \
3107     STMT_166, \
3108     STMT_167, \
3109     STMT_168, \
3110     STMT_169, \
3111     STMT_170, \
3112     STMT_171, \
3113     STMT_172, \
3114     STMT_173, \
3115     STMT_174, \
3116     STMT_175, \
3117     STMT_176, \
3118     STMT_177, \
3119     STMT_178, \
3120     STMT_179, \
3121     STMT_180, \
3122     STMT_181, \
3123     STMT_182, \
3124     STMT_183, \
3125     STMT_184, \
3126     STMT_185, \
3127     STMT_186, \
3128     STMT_187, \
3129     STMT_188, \
3130     STMT_189, \
3131     STMT_190, \
3132     STMT_191, \
3133     STMT_192, \
3134     STMT_193, \
3135     STMT_194, \
3136     STMT_195, \
3137     STMT_196, \
3138     STMT_197, \
3139     STMT_198, \
3140     STMT_199, \
3141     STMT_200, \
3142     STMT_201, \
3143     STMT_202, \
3144     STMT_203, \
3145     STMT_204, \
3146     STMT_205, \
3147     STMT_206, \
3148     STMT_207, \
3149     STMT_208, \
3150     STMT_209, \
3151     STMT_210, \
3152     STMT_211, \
3153     STMT_212, \
3154     STMT_213, \
3155     STMT_214, \
3156     STMT_215, \
3157     STMT_216, \
3158     STMT_217, \
3159     STMT_218, \
3160     STMT_219, \
3161     STMT_220, \
3162     STMT_221, \
3163     STMT_222, \
3164     STMT_223, \
3165     STMT_224, \
3166     STMT_225, \
3167     STMT_226, \
3168     STMT_227, \
3169     STMT_228, \
3170     STMT_229, \
3171     STMT_230, \
3172     STMT_231, \
3173     STMT_232, \
3174     STMT_233, \
3175     STMT_234, \
3176     NULL \
3177   }
3178
3179 #define WC_QUERIES_SQL_DECLARE_STATEMENT_INFO(varname) \
3180   static const char * const varname[][2] = { \
3181     STMT_0_INFO, \
3182     STMT_1_INFO, \
3183     STMT_2_INFO, \
3184     STMT_3_INFO, \
3185     STMT_4_INFO, \
3186     STMT_5_INFO, \
3187     STMT_6_INFO, \
3188     STMT_7_INFO, \
3189     STMT_8_INFO, \
3190     STMT_9_INFO, \
3191     STMT_10_INFO, \
3192     STMT_11_INFO, \
3193     STMT_12_INFO, \
3194     STMT_13_INFO, \
3195     STMT_14_INFO, \
3196     STMT_15_INFO, \
3197     STMT_16_INFO, \
3198     STMT_17_INFO, \
3199     STMT_18_INFO, \
3200     STMT_19_INFO, \
3201     STMT_20_INFO, \
3202     STMT_21_INFO, \
3203     STMT_22_INFO, \
3204     STMT_23_INFO, \
3205     STMT_24_INFO, \
3206     STMT_25_INFO, \
3207     STMT_26_INFO, \
3208     STMT_27_INFO, \
3209     STMT_28_INFO, \
3210     STMT_29_INFO, \
3211     STMT_30_INFO, \
3212     STMT_31_INFO, \
3213     STMT_32_INFO, \
3214     STMT_33_INFO, \
3215     STMT_34_INFO, \
3216     STMT_35_INFO, \
3217     STMT_36_INFO, \
3218     STMT_37_INFO, \
3219     STMT_38_INFO, \
3220     STMT_39_INFO, \
3221     STMT_40_INFO, \
3222     STMT_41_INFO, \
3223     STMT_42_INFO, \
3224     STMT_43_INFO, \
3225     STMT_44_INFO, \
3226     STMT_45_INFO, \
3227     STMT_46_INFO, \
3228     STMT_47_INFO, \
3229     STMT_48_INFO, \
3230     STMT_49_INFO, \
3231     STMT_50_INFO, \
3232     STMT_51_INFO, \
3233     STMT_52_INFO, \
3234     STMT_53_INFO, \
3235     STMT_54_INFO, \
3236     STMT_55_INFO, \
3237     STMT_56_INFO, \
3238     STMT_57_INFO, \
3239     STMT_58_INFO, \
3240     STMT_59_INFO, \
3241     STMT_60_INFO, \
3242     STMT_61_INFO, \
3243     STMT_62_INFO, \
3244     STMT_63_INFO, \
3245     STMT_64_INFO, \
3246     STMT_65_INFO, \
3247     STMT_66_INFO, \
3248     STMT_67_INFO, \
3249     STMT_68_INFO, \
3250     STMT_69_INFO, \
3251     STMT_70_INFO, \
3252     STMT_71_INFO, \
3253     STMT_72_INFO, \
3254     STMT_73_INFO, \
3255     STMT_74_INFO, \
3256     STMT_75_INFO, \
3257     STMT_76_INFO, \
3258     STMT_77_INFO, \
3259     STMT_78_INFO, \
3260     STMT_79_INFO, \
3261     STMT_80_INFO, \
3262     STMT_81_INFO, \
3263     STMT_82_INFO, \
3264     STMT_83_INFO, \
3265     STMT_84_INFO, \
3266     STMT_85_INFO, \
3267     STMT_86_INFO, \
3268     STMT_87_INFO, \
3269     STMT_88_INFO, \
3270     STMT_89_INFO, \
3271     STMT_90_INFO, \
3272     STMT_91_INFO, \
3273     STMT_92_INFO, \
3274     STMT_93_INFO, \
3275     STMT_94_INFO, \
3276     STMT_95_INFO, \
3277     STMT_96_INFO, \
3278     STMT_97_INFO, \
3279     STMT_98_INFO, \
3280     STMT_99_INFO, \
3281     STMT_100_INFO, \
3282     STMT_101_INFO, \
3283     STMT_102_INFO, \
3284     STMT_103_INFO, \
3285     STMT_104_INFO, \
3286     STMT_105_INFO, \
3287     STMT_106_INFO, \
3288     STMT_107_INFO, \
3289     STMT_108_INFO, \
3290     STMT_109_INFO, \
3291     STMT_110_INFO, \
3292     STMT_111_INFO, \
3293     STMT_112_INFO, \
3294     STMT_113_INFO, \
3295     STMT_114_INFO, \
3296     STMT_115_INFO, \
3297     STMT_116_INFO, \
3298     STMT_117_INFO, \
3299     STMT_118_INFO, \
3300     STMT_119_INFO, \
3301     STMT_120_INFO, \
3302     STMT_121_INFO, \
3303     STMT_122_INFO, \
3304     STMT_123_INFO, \
3305     STMT_124_INFO, \
3306     STMT_125_INFO, \
3307     STMT_126_INFO, \
3308     STMT_127_INFO, \
3309     STMT_128_INFO, \
3310     STMT_129_INFO, \
3311     STMT_130_INFO, \
3312     STMT_131_INFO, \
3313     STMT_132_INFO, \
3314     STMT_133_INFO, \
3315     STMT_134_INFO, \
3316     STMT_135_INFO, \
3317     STMT_136_INFO, \
3318     STMT_137_INFO, \
3319     STMT_138_INFO, \
3320     STMT_139_INFO, \
3321     STMT_140_INFO, \
3322     STMT_141_INFO, \
3323     STMT_142_INFO, \
3324     STMT_143_INFO, \
3325     STMT_144_INFO, \
3326     STMT_145_INFO, \
3327     STMT_146_INFO, \
3328     STMT_147_INFO, \
3329     STMT_148_INFO, \
3330     STMT_149_INFO, \
3331     STMT_150_INFO, \
3332     STMT_151_INFO, \
3333     STMT_152_INFO, \
3334     STMT_153_INFO, \
3335     STMT_154_INFO, \
3336     STMT_155_INFO, \
3337     STMT_156_INFO, \
3338     STMT_157_INFO, \
3339     STMT_158_INFO, \
3340     STMT_159_INFO, \
3341     STMT_160_INFO, \
3342     STMT_161_INFO, \
3343     STMT_162_INFO, \
3344     STMT_163_INFO, \
3345     STMT_164_INFO, \
3346     STMT_165_INFO, \
3347     STMT_166_INFO, \
3348     STMT_167_INFO, \
3349     STMT_168_INFO, \
3350     STMT_169_INFO, \
3351     STMT_170_INFO, \
3352     STMT_171_INFO, \
3353     STMT_172_INFO, \
3354     STMT_173_INFO, \
3355     STMT_174_INFO, \
3356     STMT_175_INFO, \
3357     STMT_176_INFO, \
3358     STMT_177_INFO, \
3359     STMT_178_INFO, \
3360     STMT_179_INFO, \
3361     STMT_180_INFO, \
3362     STMT_181_INFO, \
3363     STMT_182_INFO, \
3364     STMT_183_INFO, \
3365     STMT_184_INFO, \
3366     STMT_185_INFO, \
3367     STMT_186_INFO, \
3368     STMT_187_INFO, \
3369     STMT_188_INFO, \
3370     STMT_189_INFO, \
3371     STMT_190_INFO, \
3372     STMT_191_INFO, \
3373     STMT_192_INFO, \
3374     STMT_193_INFO, \
3375     STMT_194_INFO, \
3376     STMT_195_INFO, \
3377     STMT_196_INFO, \
3378     STMT_197_INFO, \
3379     STMT_198_INFO, \
3380     STMT_199_INFO, \
3381     STMT_200_INFO, \
3382     STMT_201_INFO, \
3383     STMT_202_INFO, \
3384     STMT_203_INFO, \
3385     STMT_204_INFO, \
3386     STMT_205_INFO, \
3387     STMT_206_INFO, \
3388     STMT_207_INFO, \
3389     STMT_208_INFO, \
3390     STMT_209_INFO, \
3391     STMT_210_INFO, \
3392     STMT_211_INFO, \
3393     STMT_212_INFO, \
3394     STMT_213_INFO, \
3395     STMT_214_INFO, \
3396     STMT_215_INFO, \
3397     STMT_216_INFO, \
3398     STMT_217_INFO, \
3399     STMT_218_INFO, \
3400     STMT_219_INFO, \
3401     STMT_220_INFO, \
3402     STMT_221_INFO, \
3403     STMT_222_INFO, \
3404     STMT_223_INFO, \
3405     STMT_224_INFO, \
3406     STMT_225_INFO, \
3407     STMT_226_INFO, \
3408     STMT_227_INFO, \
3409     STMT_228_INFO, \
3410     STMT_229_INFO, \
3411     STMT_230_INFO, \
3412     STMT_231_INFO, \
3413     STMT_232_INFO, \
3414     STMT_233_INFO, \
3415     STMT_234_INFO, \
3416     {NULL, NULL} \
3417   }