1362181Sdim/* This file is automatically generated from wc-queries.sql and token-map.h.
2251881Speter * Do not edit this file -- edit the source and rerun gen-make.py */
3251881Speter
4251881Speter#define STMT_SELECT_NODE_INFO 0
5251881Speter#define STMT_0_INFO {"STMT_SELECT_NODE_INFO", NULL}
6251881Speter#define STMT_0 \
7251881Speter  "SELECT op_depth, repos_id, repos_path, presence, kind, revision, checksum, " \
8251881Speter  "  translated_size, changed_revision, changed_date, changed_author, depth, " \
9251881Speter  "  symlink_target, last_mod_time, properties, moved_here, inherited_props, " \
10251881Speter  "  moved_to " \
11251881Speter  "FROM nodes " \
12251881Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 " \
13251881Speter  "ORDER BY op_depth DESC " \
14251881Speter  ""
15251881Speter
16251881Speter#define STMT_SELECT_NODE_INFO_WITH_LOCK 1
17251881Speter#define STMT_1_INFO {"STMT_SELECT_NODE_INFO_WITH_LOCK", NULL}
18251881Speter#define STMT_1 \
19251881Speter  "SELECT op_depth, nodes.repos_id, nodes.repos_path, presence, kind, revision, " \
20251881Speter  "  checksum, translated_size, changed_revision, changed_date, changed_author, " \
21251881Speter  "  depth, symlink_target, last_mod_time, properties, moved_here, " \
22251881Speter  "  inherited_props, " \
23251881Speter  "  lock_token, lock_owner, lock_comment, lock_date " \
24251881Speter  "FROM nodes " \
25251881Speter  "LEFT OUTER JOIN lock ON nodes.repos_id = lock.repos_id " \
26362181Sdim  "  AND nodes.repos_path = lock.repos_relpath AND nodes.op_depth=0 " \
27251881Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 " \
28251881Speter  "ORDER BY op_depth DESC " \
29251881Speter  ""
30251881Speter
31251881Speter#define STMT_SELECT_BASE_NODE 2
32251881Speter#define STMT_2_INFO {"STMT_SELECT_BASE_NODE", NULL}
33251881Speter#define STMT_2 \
34251881Speter  "SELECT repos_id, repos_path, presence, kind, revision, checksum, " \
35251881Speter  "  translated_size, changed_revision, changed_date, changed_author, depth, " \
36251881Speter  "  symlink_target, last_mod_time, properties, file_external " \
37251881Speter  "FROM nodes " \
38251881Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
39251881Speter  ""
40251881Speter
41251881Speter#define STMT_SELECT_BASE_NODE_WITH_LOCK 3
42251881Speter#define STMT_3_INFO {"STMT_SELECT_BASE_NODE_WITH_LOCK", NULL}
43251881Speter#define STMT_3 \
44251881Speter  "SELECT nodes.repos_id, nodes.repos_path, presence, kind, revision, " \
45251881Speter  "  checksum, translated_size, changed_revision, changed_date, changed_author, " \
46251881Speter  "  depth, symlink_target, last_mod_time, properties, file_external, " \
47251881Speter  "  lock_token, lock_owner, lock_comment, lock_date " \
48251881Speter  "FROM nodes " \
49251881Speter  "LEFT OUTER JOIN lock ON nodes.repos_id = lock.repos_id " \
50251881Speter  "  AND nodes.repos_path = lock.repos_relpath " \
51251881Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
52251881Speter  ""
53251881Speter
54251881Speter#define STMT_SELECT_BASE_CHILDREN_INFO 4
55251881Speter#define STMT_4_INFO {"STMT_SELECT_BASE_CHILDREN_INFO", NULL}
56251881Speter#define STMT_4 \
57251881Speter  "SELECT local_relpath, nodes.repos_id, nodes.repos_path, presence, kind, " \
58289180Speter  "  revision, depth, file_external " \
59289180Speter  "FROM nodes " \
60289180Speter  "WHERE wc_id = ?1 AND parent_relpath = ?2 AND op_depth = 0 " \
61289180Speter  ""
62289180Speter
63289180Speter#define STMT_SELECT_BASE_CHILDREN_INFO_LOCK 5
64289180Speter#define STMT_5_INFO {"STMT_SELECT_BASE_CHILDREN_INFO_LOCK", NULL}
65289180Speter#define STMT_5 \
66289180Speter  "SELECT local_relpath, nodes.repos_id, nodes.repos_path, presence, kind, " \
67251881Speter  "  revision, depth, file_external, " \
68251881Speter  "  lock_token, lock_owner, lock_comment, lock_date " \
69251881Speter  "FROM nodes " \
70251881Speter  "LEFT OUTER JOIN lock ON nodes.repos_id = lock.repos_id " \
71251881Speter  "  AND nodes.repos_path = lock.repos_relpath " \
72251881Speter  "WHERE wc_id = ?1 AND parent_relpath = ?2 AND op_depth = 0 " \
73251881Speter  ""
74251881Speter
75289180Speter#define STMT_SELECT_WORKING_NODE 6
76289180Speter#define STMT_6_INFO {"STMT_SELECT_WORKING_NODE", NULL}
77289180Speter#define STMT_6 \
78251881Speter  "SELECT op_depth, presence, kind, checksum, translated_size, " \
79251881Speter  "  changed_revision, changed_date, changed_author, depth, symlink_target, " \
80251881Speter  "  repos_id, repos_path, revision, " \
81251881Speter  "  moved_here, moved_to, last_mod_time, properties " \
82251881Speter  "FROM nodes " \
83251881Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth > 0 " \
84251881Speter  "ORDER BY op_depth DESC " \
85251881Speter  "LIMIT 1 " \
86251881Speter  ""
87251881Speter
88289180Speter#define STMT_SELECT_DEPTH_NODE 7
89289180Speter#define STMT_7_INFO {"STMT_SELECT_DEPTH_NODE", NULL}
90289180Speter#define STMT_7 \
91251881Speter  "SELECT repos_id, repos_path, presence, kind, revision, checksum, " \
92251881Speter  "  translated_size, changed_revision, changed_date, changed_author, depth, " \
93289180Speter  "  symlink_target, properties, moved_to, moved_here " \
94251881Speter  "FROM nodes " \
95251881Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \
96251881Speter  ""
97251881Speter
98289180Speter#define STMT_SELECT_LOWEST_WORKING_NODE 8
99289180Speter#define STMT_8_INFO {"STMT_SELECT_LOWEST_WORKING_NODE", NULL}
100289180Speter#define STMT_8 \
101251881Speter  "SELECT op_depth, presence, kind, moved_to " \
102251881Speter  "FROM nodes " \
103251881Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth > ?3 " \
104251881Speter  "ORDER BY op_depth " \
105251881Speter  "LIMIT 1 " \
106251881Speter  ""
107251881Speter
108289180Speter#define STMT_SELECT_HIGHEST_WORKING_NODE 9
109289180Speter#define STMT_9_INFO {"STMT_SELECT_HIGHEST_WORKING_NODE", NULL}
110289180Speter#define STMT_9 \
111251881Speter  "SELECT op_depth " \
112251881Speter  "FROM nodes " \
113251881Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth < ?3 " \
114251881Speter  "ORDER BY op_depth DESC " \
115251881Speter  "LIMIT 1 " \
116251881Speter  ""
117251881Speter
118362181Sdim#define STMT_SELECT_PRESENT_HIGHEST_WORKING_NODES_BY_BASENAME_AND_KIND 10
119362181Sdim#define STMT_10_INFO {"STMT_SELECT_PRESENT_HIGHEST_WORKING_NODES_BY_BASENAME_AND_KIND", NULL}
120289180Speter#define STMT_10 \
121362181Sdim  "SELECT presence, local_relpath " \
122362181Sdim  "FROM nodes n " \
123362181Sdim  "WHERE wc_id = ?1 AND local_relpath = (CASE WHEN (parent_relpath) = '' THEN (?2) WHEN (?2) = '' THEN (parent_relpath) ELSE (parent_relpath) || '/' || (?2) END) " \
124362181Sdim  "  AND kind = ?3 " \
125362181Sdim  "  AND presence in ('normal', 'incomplete') " \
126362181Sdim  "  AND op_depth = (SELECT MAX(op_depth) " \
127362181Sdim  "                  FROM NODES w " \
128362181Sdim  "                  WHERE w.wc_id = ?1 " \
129362181Sdim  "                    AND w.local_relpath = n.local_relpath) " \
130362181Sdim  ""
131362181Sdim
132362181Sdim#define STMT_SELECT_ACTUAL_NODE 11
133362181Sdim#define STMT_11_INFO {"STMT_SELECT_ACTUAL_NODE", NULL}
134362181Sdim#define STMT_11 \
135251881Speter  "SELECT changelist, properties, conflict_data " \
136251881Speter  "FROM actual_node " \
137251881Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 " \
138251881Speter  ""
139251881Speter
140362181Sdim#define STMT_SELECT_NODE_CHILDREN_INFO 12
141362181Sdim#define STMT_12_INFO {"STMT_SELECT_NODE_CHILDREN_INFO", NULL}
142362181Sdim#define STMT_12 \
143251881Speter  "SELECT op_depth, nodes.repos_id, nodes.repos_path, presence, kind, revision, " \
144251881Speter  "  checksum, translated_size, changed_revision, changed_date, changed_author, " \
145251881Speter  "  depth, symlink_target, last_mod_time, properties, lock_token, lock_owner, " \
146251881Speter  "  lock_comment, lock_date, local_relpath, moved_here, moved_to, file_external " \
147251881Speter  "FROM nodes " \
148251881Speter  "LEFT OUTER JOIN lock ON nodes.repos_id = lock.repos_id " \
149362181Sdim  "  AND nodes.repos_path = lock.repos_relpath AND nodes.op_depth = 0 " \
150251881Speter  "WHERE wc_id = ?1 AND parent_relpath = ?2 " \
151289180Speter  "ORDER BY local_relpath DESC, op_depth DESC " \
152251881Speter  ""
153251881Speter
154362181Sdim#define STMT_SELECT_BASE_NODE_CHILDREN_INFO 13
155362181Sdim#define STMT_13_INFO {"STMT_SELECT_BASE_NODE_CHILDREN_INFO", NULL}
156362181Sdim#define STMT_13 \
157289180Speter  "SELECT op_depth, nodes.repos_id, nodes.repos_path, presence, kind, revision, " \
158289180Speter  "  checksum, translated_size, changed_revision, changed_date, changed_author, " \
159289180Speter  "  depth, symlink_target, last_mod_time, properties, lock_token, lock_owner, " \
160289180Speter  "  lock_comment, lock_date, local_relpath, moved_here, moved_to, file_external " \
161289180Speter  "FROM nodes " \
162289180Speter  "LEFT OUTER JOIN lock ON nodes.repos_id = lock.repos_id " \
163362181Sdim  "  AND nodes.repos_path = lock.repos_relpath " \
164289180Speter  "WHERE wc_id = ?1 AND parent_relpath = ?2 AND op_depth = 0 " \
165289180Speter  "ORDER BY local_relpath DESC " \
166289180Speter  ""
167289180Speter
168362181Sdim#define STMT_SELECT_NODE_CHILDREN_WALKER_INFO 14
169362181Sdim#define STMT_14_INFO {"STMT_SELECT_NODE_CHILDREN_WALKER_INFO", NULL}
170362181Sdim#define STMT_14 \
171251881Speter  "SELECT local_relpath, op_depth, presence, kind " \
172251881Speter  "FROM nodes_current " \
173251881Speter  "WHERE wc_id = ?1 AND parent_relpath = ?2 " \
174289180Speter  "ORDER BY local_relpath " \
175251881Speter  ""
176251881Speter
177362181Sdim#define STMT_SELECT_ACTUAL_CHILDREN_INFO 15
178362181Sdim#define STMT_15_INFO {"STMT_SELECT_ACTUAL_CHILDREN_INFO", NULL}
179362181Sdim#define STMT_15 \
180251881Speter  "SELECT local_relpath, changelist, properties, conflict_data " \
181251881Speter  "FROM actual_node " \
182251881Speter  "WHERE wc_id = ?1 AND parent_relpath = ?2 " \
183251881Speter  ""
184251881Speter
185362181Sdim#define STMT_SELECT_REPOSITORY_BY_ID 16
186362181Sdim#define STMT_16_INFO {"STMT_SELECT_REPOSITORY_BY_ID", NULL}
187362181Sdim#define STMT_16 \
188251881Speter  "SELECT root, uuid FROM repository WHERE id = ?1 " \
189251881Speter  ""
190251881Speter
191362181Sdim#define STMT_SELECT_WCROOT_NULL 17
192362181Sdim#define STMT_17_INFO {"STMT_SELECT_WCROOT_NULL", NULL}
193362181Sdim#define STMT_17 \
194251881Speter  "SELECT id FROM wcroot WHERE local_abspath IS NULL " \
195251881Speter  ""
196251881Speter
197362181Sdim#define STMT_SELECT_REPOSITORY 18
198362181Sdim#define STMT_18_INFO {"STMT_SELECT_REPOSITORY", NULL}
199362181Sdim#define STMT_18 \
200251881Speter  "SELECT id FROM repository WHERE root = ?1 " \
201251881Speter  ""
202251881Speter
203362181Sdim#define STMT_INSERT_REPOSITORY 19
204362181Sdim#define STMT_19_INFO {"STMT_INSERT_REPOSITORY", NULL}
205362181Sdim#define STMT_19 \
206251881Speter  "INSERT INTO repository (root, uuid) VALUES (?1, ?2) " \
207251881Speter  ""
208251881Speter
209362181Sdim#define STMT_INSERT_NODE 20
210362181Sdim#define STMT_20_INFO {"STMT_INSERT_NODE", NULL}
211362181Sdim#define STMT_20 \
212251881Speter  "INSERT OR REPLACE INTO nodes ( " \
213251881Speter  "  wc_id, local_relpath, op_depth, parent_relpath, repos_id, repos_path, " \
214251881Speter  "  revision, presence, depth, kind, changed_revision, changed_date, " \
215251881Speter  "  changed_author, checksum, properties, translated_size, last_mod_time, " \
216251881Speter  "  dav_cache, symlink_target, file_external, moved_to, moved_here, " \
217251881Speter  "  inherited_props) " \
218251881Speter  "VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10, ?11, ?12, ?13, ?14, " \
219251881Speter  "        ?15, ?16, ?17, ?18, ?19, ?20, ?21, ?22, ?23) " \
220251881Speter  ""
221251881Speter
222362181Sdim#define STMT_SELECT_WORKING_PRESENT 21
223362181Sdim#define STMT_21_INFO {"STMT_SELECT_WORKING_PRESENT", NULL}
224362181Sdim#define STMT_21 \
225251881Speter  "SELECT local_relpath, kind, checksum, translated_size, last_mod_time " \
226251881Speter  "FROM nodes n " \
227251881Speter  "WHERE wc_id = ?1 " \
228251881Speter  "  AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
229251881Speter  "  AND presence in ('normal', 'incomplete') " \
230251881Speter  "  AND op_depth = (SELECT MAX(op_depth) " \
231251881Speter  "                  FROM NODES w " \
232251881Speter  "                  WHERE w.wc_id = ?1 " \
233251881Speter  "                    AND w.local_relpath = n.local_relpath) " \
234251881Speter  "ORDER BY local_relpath DESC " \
235251881Speter  ""
236251881Speter
237362181Sdim#define STMT_DELETE_NODE_RECURSIVE 22
238362181Sdim#define STMT_22_INFO {"STMT_DELETE_NODE_RECURSIVE", NULL}
239362181Sdim#define STMT_22 \
240251881Speter  "DELETE FROM NODES " \
241251881Speter  "WHERE wc_id = ?1 " \
242251881Speter  "  AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
243251881Speter  ""
244251881Speter
245362181Sdim#define STMT_DELETE_NODE 23
246362181Sdim#define STMT_23_INFO {"STMT_DELETE_NODE", NULL}
247362181Sdim#define STMT_23 \
248251881Speter  "DELETE " \
249251881Speter  "FROM NODES " \
250266731Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \
251251881Speter  ""
252251881Speter
253362181Sdim#define STMT_DELETE_ACTUAL_FOR_BASE_RECURSIVE 24
254362181Sdim#define STMT_24_INFO {"STMT_DELETE_ACTUAL_FOR_BASE_RECURSIVE", NULL}
255362181Sdim#define STMT_24 \
256251881Speter  "DELETE FROM actual_node " \
257251881Speter  "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)) " \
258251881Speter  "  AND EXISTS(SELECT 1 FROM NODES b " \
259251881Speter  "             WHERE b.wc_id = ?1 " \
260251881Speter  "               AND b.local_relpath = actual_node.local_relpath " \
261251881Speter  "               AND op_depth = 0) " \
262251881Speter  "  AND NOT EXISTS(SELECT 1 FROM NODES w " \
263251881Speter  "                 WHERE w.wc_id = ?1 " \
264251881Speter  "                   AND w.local_relpath = actual_node.local_relpath " \
265251881Speter  "                   AND op_depth > 0 " \
266251881Speter  "                   AND presence in ('normal', 'incomplete', 'not-present')) " \
267251881Speter  ""
268251881Speter
269362181Sdim#define STMT_DELETE_WORKING_BASE_DELETE 25
270362181Sdim#define STMT_25_INFO {"STMT_DELETE_WORKING_BASE_DELETE", NULL}
271362181Sdim#define STMT_25 \
272251881Speter  "DELETE FROM nodes " \
273289180Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 " \
274251881Speter  "  AND presence = 'base-deleted' " \
275289180Speter  "  AND op_depth > ?3 " \
276251881Speter  "  AND op_depth = (SELECT MIN(op_depth) FROM nodes n " \
277251881Speter  "                    WHERE n.wc_id = ?1 " \
278251881Speter  "                      AND n.local_relpath = nodes.local_relpath " \
279289180Speter  "                      AND op_depth > ?3) " \
280251881Speter  ""
281251881Speter
282362181Sdim#define STMT_DELETE_WORKING_BASE_DELETE_RECURSIVE 26
283362181Sdim#define STMT_26_INFO {"STMT_DELETE_WORKING_BASE_DELETE_RECURSIVE", NULL}
284362181Sdim#define STMT_26 \
285251881Speter  "DELETE FROM nodes " \
286251881Speter  "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)) " \
287289180Speter  "  AND presence = 'base-deleted' " \
288289180Speter  "  AND op_depth > ?3 " \
289289180Speter  "  AND op_depth = (SELECT MIN(op_depth) FROM nodes n " \
290289180Speter  "                    WHERE n.wc_id = ?1 " \
291289180Speter  "                      AND n.local_relpath = nodes.local_relpath " \
292289180Speter  "                      AND op_depth > ?3) " \
293251881Speter  ""
294251881Speter
295362181Sdim#define STMT_DELETE_WORKING_RECURSIVE 27
296362181Sdim#define STMT_27_INFO {"STMT_DELETE_WORKING_RECURSIVE", NULL}
297362181Sdim#define STMT_27 \
298251881Speter  "DELETE FROM nodes " \
299289180Speter  "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)) " \
300289180Speter  "  AND op_depth > 0 " \
301251881Speter  ""
302251881Speter
303362181Sdim#define STMT_DELETE_BASE_RECURSIVE 28
304362181Sdim#define STMT_28_INFO {"STMT_DELETE_BASE_RECURSIVE", NULL}
305362181Sdim#define STMT_28 \
306251881Speter  "DELETE FROM nodes " \
307289180Speter  "WHERE wc_id = ?1 AND (local_relpath = ?2 " \
308289180Speter  "                      OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
309289180Speter  "  AND op_depth = 0 " \
310251881Speter  ""
311251881Speter
312362181Sdim#define STMT_DELETE_WORKING_OP_DEPTH 29
313362181Sdim#define STMT_29_INFO {"STMT_DELETE_WORKING_OP_DEPTH", NULL}
314362181Sdim#define STMT_29 \
315289180Speter  "DELETE FROM nodes " \
316251881Speter  "WHERE wc_id = ?1 " \
317251881Speter  "  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))) " \
318251881Speter  "  AND op_depth = ?3 " \
319251881Speter  ""
320251881Speter
321362181Sdim#define STMT_SELECT_LAYER_FOR_REPLACE 30
322362181Sdim#define STMT_30_INFO {"STMT_SELECT_LAYER_FOR_REPLACE", NULL}
323362181Sdim#define STMT_30 \
324289180Speter  "SELECT s.local_relpath, s.kind, " \
325289180Speter  "  (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' " \
326289180Speter  "FROM nodes s " \
327289180Speter  "WHERE s.wc_id = ?1 AND s.local_relpath = ?2 AND s.op_depth = ?3 " \
328289180Speter  "UNION ALL " \
329289180Speter  "SELECT s.local_relpath, s.kind, " \
330289180Speter  "  (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 " \
331289180Speter  "FROM nodes s " \
332289180Speter  "LEFT OUTER JOIN nodes d ON d.wc_id= ?1 AND d.op_depth = ?5 " \
333289180Speter  "     AND d.local_relpath = drp " \
334289180Speter  "WHERE s.wc_id = ?1 " \
335289180Speter  "  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)) " \
336289180Speter  "  AND s.op_depth = ?3 " \
337289180Speter  "ORDER BY s.local_relpath " \
338289180Speter  ""
339289180Speter
340362181Sdim#define STMT_SELECT_DESCENDANTS_OP_DEPTH_RV 31
341362181Sdim#define STMT_31_INFO {"STMT_SELECT_DESCENDANTS_OP_DEPTH_RV", NULL}
342362181Sdim#define STMT_31 \
343251881Speter  "SELECT local_relpath, kind " \
344251881Speter  "FROM nodes " \
345251881Speter  "WHERE wc_id = ?1 " \
346251881Speter  "  AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
347251881Speter  "  AND op_depth = ?3 " \
348289180Speter  "  AND presence in ('normal', 'incomplete') " \
349251881Speter  "ORDER BY local_relpath DESC " \
350251881Speter  ""
351251881Speter
352362181Sdim#define STMT_COPY_NODE_MOVE 32
353362181Sdim#define STMT_32_INFO {"STMT_COPY_NODE_MOVE", NULL}
354362181Sdim#define STMT_32 \
355251881Speter  "INSERT OR REPLACE INTO nodes ( " \
356251881Speter  "    wc_id, local_relpath, op_depth, parent_relpath, repos_id, repos_path, " \
357251881Speter  "    revision, presence, depth, kind, changed_revision, changed_date, " \
358251881Speter  "    changed_author, checksum, properties, translated_size, last_mod_time, " \
359251881Speter  "    symlink_target, moved_here, moved_to ) " \
360251881Speter  "SELECT " \
361289180Speter  "    s.wc_id, ?4 , ?5 , ?6 , " \
362289180Speter  "    s.repos_id, " \
363289180Speter  "    s.repos_path, s.revision, s.presence, s.depth, s.kind, s.changed_revision, " \
364289180Speter  "    s.changed_date, s.changed_author, s.checksum, s.properties, " \
365289180Speter  "    CASE WHEN d.checksum=s.checksum THEN d.translated_size END, " \
366289180Speter  "    CASE WHEN d.checksum=s.checksum THEN d.last_mod_time END, " \
367289180Speter  "    s.symlink_target, 1, d.moved_to " \
368289180Speter  "FROM nodes s " \
369289180Speter  "LEFT JOIN nodes d ON d.wc_id=?1 AND d.local_relpath=?4 AND d.op_depth=?5 " \
370289180Speter  "WHERE s.wc_id = ?1 AND s.local_relpath = ?2 AND s.op_depth = ?3 " \
371251881Speter  ""
372251881Speter
373362181Sdim#define STMT_SELECT_NO_LONGER_MOVED_RV 33
374362181Sdim#define STMT_33_INFO {"STMT_SELECT_NO_LONGER_MOVED_RV", NULL}
375362181Sdim#define STMT_33 \
376289180Speter  "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, " \
377289180Speter  "       b.presence, b.op_depth " \
378289180Speter  "FROM nodes d " \
379289180Speter  "LEFT OUTER JOIN nodes b ON b.wc_id = ?1 AND b.local_relpath = d.local_relpath " \
380289180Speter  "            AND b.op_depth = (SELECT MAX(x.op_depth) FROM nodes x " \
381289180Speter  "                              WHERE x.wc_id = ?1 " \
382289180Speter  "                                AND x.local_relpath = b.local_relpath " \
383289180Speter  "                                AND x.op_depth < ?3) " \
384289180Speter  "WHERE d.wc_id = ?1 " \
385289180Speter  "  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)) " \
386289180Speter  "  AND d.op_depth = ?3 " \
387289180Speter  "  AND NOT EXISTS(SELECT * FROM nodes s " \
388289180Speter  "                 WHERE s.wc_id = ?1 " \
389289180Speter  "                   AND s.local_relpath = srp " \
390289180Speter  "                   AND s.op_depth = ?5) " \
391289180Speter  "ORDER BY d.local_relpath DESC " \
392289180Speter  ""
393289180Speter
394362181Sdim#define STMT_SELECT_OP_DEPTH_CHILDREN 34
395362181Sdim#define STMT_34_INFO {"STMT_SELECT_OP_DEPTH_CHILDREN", NULL}
396362181Sdim#define STMT_34 \
397251881Speter  "SELECT local_relpath, kind FROM nodes " \
398251881Speter  "WHERE wc_id = ?1 " \
399251881Speter  "  AND parent_relpath = ?2 " \
400251881Speter  "  AND op_depth = ?3 " \
401251881Speter  "  AND presence != 'base-deleted' " \
402251881Speter  "  AND file_external is NULL " \
403289180Speter  "ORDER BY local_relpath " \
404251881Speter  ""
405251881Speter
406362181Sdim#define STMT_SELECT_OP_DEPTH_CHILDREN_EXISTS 35
407362181Sdim#define STMT_35_INFO {"STMT_SELECT_OP_DEPTH_CHILDREN_EXISTS", NULL}
408362181Sdim#define STMT_35 \
409289180Speter  "SELECT local_relpath, kind FROM nodes " \
410289180Speter  "WHERE wc_id = ?1 " \
411289180Speter  "  AND parent_relpath = ?2 " \
412289180Speter  "  AND op_depth = ?3 " \
413289180Speter  "  AND presence IN ('normal', 'incomplete') " \
414289180Speter  "ORDER BY local_relpath " \
415289180Speter  ""
416289180Speter
417362181Sdim#define STMT_SELECT_GE_OP_DEPTH_CHILDREN 36
418362181Sdim#define STMT_36_INFO {"STMT_SELECT_GE_OP_DEPTH_CHILDREN", NULL}
419362181Sdim#define STMT_36 \
420251881Speter  "SELECT 1 FROM nodes " \
421251881Speter  "WHERE wc_id = ?1 AND parent_relpath = ?2 " \
422289180Speter  "  AND (op_depth > ?3 OR (op_depth = ?3 " \
423289180Speter  "                         AND presence IN ('normal', 'incomplete'))) " \
424251881Speter  "UNION ALL " \
425251881Speter  "SELECT 1 FROM ACTUAL_NODE a " \
426251881Speter  "WHERE wc_id = ?1 AND parent_relpath = ?2 " \
427251881Speter  "  AND NOT EXISTS (SELECT 1 FROM nodes n " \
428251881Speter  "                   WHERE wc_id = ?1 AND n.local_relpath = a.local_relpath) " \
429251881Speter  ""
430251881Speter
431362181Sdim#define STMT_DELETE_SHADOWED_RECURSIVE 37
432362181Sdim#define STMT_37_INFO {"STMT_DELETE_SHADOWED_RECURSIVE", NULL}
433362181Sdim#define STMT_37 \
434251881Speter  "DELETE FROM nodes " \
435251881Speter  "WHERE wc_id = ?1 " \
436251881Speter  "  AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
437251881Speter  "  AND (op_depth < ?3 " \
438251881Speter  "       OR (op_depth = ?3 AND presence = 'base-deleted')) " \
439251881Speter  ""
440251881Speter
441362181Sdim#define STMT_CLEAR_MOVED_TO_FROM_DEST 38
442362181Sdim#define STMT_38_INFO {"STMT_CLEAR_MOVED_TO_FROM_DEST", NULL}
443362181Sdim#define STMT_38 \
444251881Speter  "UPDATE NODES SET moved_to = NULL " \
445251881Speter  "WHERE wc_id = ?1 " \
446251881Speter  "  AND moved_to = ?2 " \
447251881Speter  ""
448251881Speter
449362181Sdim#define STMT_SELECT_NOT_PRESENT_DESCENDANTS 39
450362181Sdim#define STMT_39_INFO {"STMT_SELECT_NOT_PRESENT_DESCENDANTS", NULL}
451362181Sdim#define STMT_39 \
452251881Speter  "SELECT local_relpath FROM nodes " \
453251881Speter  "WHERE wc_id = ?1 AND op_depth = ?3 " \
454251881Speter  "  AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
455251881Speter  "  AND presence = 'not-present' " \
456251881Speter  ""
457251881Speter
458362181Sdim#define STMT_COMMIT_DESCENDANTS_TO_BASE 40
459362181Sdim#define STMT_40_INFO {"STMT_COMMIT_DESCENDANTS_TO_BASE", NULL}
460362181Sdim#define STMT_40 \
461251881Speter  "UPDATE NODES SET op_depth = 0, " \
462251881Speter  "                 repos_id = ?4, " \
463289180Speter  "                 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), " \
464251881Speter  "                 revision = ?6, " \
465251881Speter  "                 dav_cache = NULL, " \
466251881Speter  "                 moved_here = NULL, " \
467289180Speter  "                 moved_to = NULL, " \
468251881Speter  "                 presence = CASE presence " \
469251881Speter  "                              WHEN 'normal' THEN 'normal' " \
470251881Speter  "                              WHEN 'excluded' THEN 'excluded' " \
471251881Speter  "                              ELSE 'not-present' " \
472251881Speter  "                            END " \
473251881Speter  "WHERE wc_id = ?1 " \
474251881Speter  "  AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
475251881Speter  "  AND op_depth = ?3 " \
476251881Speter  ""
477251881Speter
478362181Sdim#define STMT_SELECT_NODE_CHILDREN 41
479362181Sdim#define STMT_41_INFO {"STMT_SELECT_NODE_CHILDREN", NULL}
480362181Sdim#define STMT_41 \
481289180Speter  "SELECT DISTINCT local_relpath FROM nodes " \
482251881Speter  "WHERE wc_id = ?1 AND parent_relpath = ?2 " \
483289180Speter  "ORDER BY local_relpath " \
484251881Speter  ""
485251881Speter
486362181Sdim#define STMT_SELECT_WORKING_CHILDREN 42
487362181Sdim#define STMT_42_INFO {"STMT_SELECT_WORKING_CHILDREN", NULL}
488362181Sdim#define STMT_42 \
489289180Speter  "SELECT DISTINCT local_relpath FROM nodes " \
490251881Speter  "WHERE wc_id = ?1 AND parent_relpath = ?2 " \
491251881Speter  "  AND (op_depth > (SELECT MAX(op_depth) FROM nodes " \
492251881Speter  "                   WHERE wc_id = ?1 AND local_relpath = ?2) " \
493251881Speter  "       OR " \
494251881Speter  "       (op_depth = (SELECT MAX(op_depth) FROM nodes " \
495251881Speter  "                    WHERE wc_id = ?1 AND local_relpath = ?2) " \
496289180Speter  "        AND presence IN ('normal', 'incomplete'))) " \
497289180Speter  "ORDER BY local_relpath " \
498251881Speter  ""
499251881Speter
500362181Sdim#define STMT_SELECT_BASE_NOT_PRESENT_CHILDREN 43
501362181Sdim#define STMT_43_INFO {"STMT_SELECT_BASE_NOT_PRESENT_CHILDREN", NULL}
502362181Sdim#define STMT_43 \
503289180Speter  "SELECT local_relpath FROM nodes " \
504289180Speter  "WHERE wc_id = ?1 AND parent_relpath = ?2 AND op_depth = 0 " \
505289180Speter  "  AND presence = 'not-present' " \
506289180Speter  "ORDER BY local_relpath " \
507289180Speter  ""
508289180Speter
509362181Sdim#define STMT_SELECT_NODE_PROPS 44
510362181Sdim#define STMT_44_INFO {"STMT_SELECT_NODE_PROPS", NULL}
511362181Sdim#define STMT_44 \
512251881Speter  "SELECT properties, presence FROM nodes " \
513251881Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 " \
514251881Speter  "ORDER BY op_depth DESC " \
515251881Speter  ""
516251881Speter
517362181Sdim#define STMT_SELECT_ACTUAL_PROPS 45
518362181Sdim#define STMT_45_INFO {"STMT_SELECT_ACTUAL_PROPS", NULL}
519362181Sdim#define STMT_45 \
520251881Speter  "SELECT properties FROM actual_node " \
521251881Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 " \
522251881Speter  ""
523251881Speter
524362181Sdim#define STMT_UPDATE_ACTUAL_PROPS 46
525362181Sdim#define STMT_46_INFO {"STMT_UPDATE_ACTUAL_PROPS", NULL}
526362181Sdim#define STMT_46 \
527251881Speter  "UPDATE actual_node SET properties = ?3 " \
528251881Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 " \
529251881Speter  ""
530251881Speter
531362181Sdim#define STMT_INSERT_ACTUAL_PROPS 47
532362181Sdim#define STMT_47_INFO {"STMT_INSERT_ACTUAL_PROPS", NULL}
533362181Sdim#define STMT_47 \
534251881Speter  "INSERT INTO actual_node (wc_id, local_relpath, parent_relpath, properties) " \
535251881Speter  "VALUES (?1, ?2, ?3, ?4) " \
536251881Speter  ""
537251881Speter
538362181Sdim#define STMT_INSERT_LOCK 48
539362181Sdim#define STMT_48_INFO {"STMT_INSERT_LOCK", NULL}
540362181Sdim#define STMT_48 \
541251881Speter  "INSERT OR REPLACE INTO lock " \
542251881Speter  "(repos_id, repos_relpath, lock_token, lock_owner, lock_comment, " \
543251881Speter  " lock_date) " \
544251881Speter  "VALUES (?1, ?2, ?3, ?4, ?5, ?6) " \
545251881Speter  ""
546251881Speter
547362181Sdim#define STMT_SELECT_BASE_NODE_LOCK_TOKENS_RECURSIVE 49
548362181Sdim#define STMT_49_INFO {"STMT_SELECT_BASE_NODE_LOCK_TOKENS_RECURSIVE", NULL}
549362181Sdim#define STMT_49 \
550251881Speter  "SELECT nodes.repos_id, nodes.repos_path, lock_token " \
551251881Speter  "FROM nodes " \
552251881Speter  "LEFT JOIN lock ON nodes.repos_id = lock.repos_id " \
553251881Speter  "  AND nodes.repos_path = lock.repos_relpath " \
554251881Speter  "WHERE wc_id = ?1 AND op_depth = 0 " \
555251881Speter  "  AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
556251881Speter  ""
557251881Speter
558362181Sdim#define STMT_INSERT_WCROOT 50
559362181Sdim#define STMT_50_INFO {"STMT_INSERT_WCROOT", NULL}
560362181Sdim#define STMT_50 \
561251881Speter  "INSERT INTO wcroot (local_abspath) " \
562251881Speter  "VALUES (?1) " \
563251881Speter  ""
564251881Speter
565362181Sdim#define STMT_UPDATE_BASE_NODE_DAV_CACHE 51
566362181Sdim#define STMT_51_INFO {"STMT_UPDATE_BASE_NODE_DAV_CACHE", NULL}
567362181Sdim#define STMT_51 \
568251881Speter  "UPDATE nodes SET dav_cache = ?3 " \
569251881Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
570251881Speter  ""
571251881Speter
572362181Sdim#define STMT_SELECT_BASE_DAV_CACHE 52
573362181Sdim#define STMT_52_INFO {"STMT_SELECT_BASE_DAV_CACHE", NULL}
574362181Sdim#define STMT_52 \
575251881Speter  "SELECT dav_cache FROM nodes " \
576251881Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
577251881Speter  ""
578251881Speter
579362181Sdim#define STMT_SELECT_DELETION_INFO 53
580362181Sdim#define STMT_53_INFO {"STMT_SELECT_DELETION_INFO", NULL}
581362181Sdim#define STMT_53 \
582289180Speter  "SELECT b.presence, w.presence, w.op_depth, w.moved_to " \
583289180Speter  "FROM nodes w " \
584289180Speter  "LEFT JOIN nodes b ON b.wc_id = ?1 AND b.local_relpath = ?2 AND b.op_depth = 0 " \
585289180Speter  "WHERE w.wc_id = ?1 AND w.local_relpath = ?2 " \
586289180Speter  "  AND w.op_depth = (SELECT MAX(op_depth) FROM nodes d " \
587289180Speter  "                    WHERE d.wc_id = ?1 AND d.local_relpath = ?2 " \
588289180Speter  "                      AND d.op_depth > 0) " \
589251881Speter  "LIMIT 1 " \
590251881Speter  ""
591251881Speter
592362181Sdim#define STMT_SELECT_MOVED_TO_NODE 54
593362181Sdim#define STMT_54_INFO {"STMT_SELECT_MOVED_TO_NODE", NULL}
594362181Sdim#define STMT_54 \
595266731Speter  "SELECT op_depth, moved_to " \
596266731Speter  "FROM nodes " \
597266731Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 AND moved_to IS NOT NULL " \
598266731Speter  "ORDER BY op_depth DESC " \
599266731Speter  ""
600266731Speter
601362181Sdim#define STMT_SELECT_OP_DEPTH_MOVED_TO 55
602362181Sdim#define STMT_55_INFO {"STMT_SELECT_OP_DEPTH_MOVED_TO", NULL}
603362181Sdim#define STMT_55 \
604289180Speter  "SELECT op_depth, moved_to " \
605251881Speter  "FROM nodes " \
606289180Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth > ?3 " \
607289180Speter  "  AND EXISTS(SELECT * from nodes " \
608289180Speter  "             WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \
609289180Speter  "             AND presence IN ('normal', 'incomplete')) " \
610289180Speter  "ORDER BY op_depth ASC " \
611289180Speter  "LIMIT 1 " \
612251881Speter  ""
613251881Speter
614362181Sdim#define STMT_SELECT_MOVED_TO 56
615362181Sdim#define STMT_56_INFO {"STMT_SELECT_MOVED_TO", NULL}
616362181Sdim#define STMT_56 \
617251881Speter  "SELECT moved_to " \
618251881Speter  "FROM nodes " \
619251881Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \
620251881Speter  ""
621251881Speter
622362181Sdim#define STMT_SELECT_MOVED_BACK 57
623362181Sdim#define STMT_57_INFO {"STMT_SELECT_MOVED_BACK", NULL}
624362181Sdim#define STMT_57 \
625251881Speter  "SELECT u.local_relpath, " \
626251881Speter  "       u.presence, u.repos_id, u.repos_path, u.revision, " \
627251881Speter  "       l.presence, l.repos_id, l.repos_path, l.revision, " \
628251881Speter  "       u.moved_here, u.moved_to " \
629251881Speter  "FROM nodes u " \
630251881Speter  "LEFT OUTER JOIN nodes l ON l.wc_id = ?1 " \
631251881Speter  "                       AND l.local_relpath = u.local_relpath " \
632251881Speter  "                       AND l.op_depth = ?3 " \
633251881Speter  "WHERE u.wc_id = ?1 " \
634251881Speter  "  AND u.local_relpath = ?2 " \
635251881Speter  "  AND u.op_depth = ?4 " \
636251881Speter  "UNION ALL " \
637251881Speter  "SELECT u.local_relpath, " \
638251881Speter  "       u.presence, u.repos_id, u.repos_path, u.revision, " \
639251881Speter  "       l.presence, l.repos_id, l.repos_path, l.revision, " \
640251881Speter  "       u.moved_here, NULL " \
641251881Speter  "FROM nodes u " \
642251881Speter  "LEFT OUTER JOIN nodes l ON l.wc_id=?1 " \
643251881Speter  "                       AND l.local_relpath=u.local_relpath " \
644251881Speter  "                       AND l.op_depth=?3 " \
645251881Speter  "WHERE u.wc_id = ?1 " \
646251881Speter  "  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)) " \
647251881Speter  "  AND u.op_depth = ?4 " \
648251881Speter  ""
649251881Speter
650362181Sdim#define STMT_DELETE_LOCK 58
651362181Sdim#define STMT_58_INFO {"STMT_DELETE_LOCK", NULL}
652362181Sdim#define STMT_58 \
653251881Speter  "DELETE FROM lock " \
654251881Speter  "WHERE repos_id = ?1 AND repos_relpath = ?2 " \
655251881Speter  ""
656251881Speter
657362181Sdim#define STMT_DELETE_LOCK_RECURSIVELY 59
658362181Sdim#define STMT_59_INFO {"STMT_DELETE_LOCK_RECURSIVELY", NULL}
659362181Sdim#define STMT_59 \
660253734Speter  "DELETE FROM lock " \
661253734Speter  "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))) " \
662253734Speter  ""
663253734Speter
664362181Sdim#define STMT_CLEAR_BASE_NODE_RECURSIVE_DAV_CACHE 60
665362181Sdim#define STMT_60_INFO {"STMT_CLEAR_BASE_NODE_RECURSIVE_DAV_CACHE", NULL}
666362181Sdim#define STMT_60 \
667251881Speter  "UPDATE nodes SET dav_cache = NULL " \
668251881Speter  "WHERE dav_cache IS NOT NULL AND wc_id = ?1 AND op_depth = 0 " \
669251881Speter  "  AND (local_relpath = ?2 " \
670251881Speter  "       OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
671251881Speter  ""
672251881Speter
673362181Sdim#define STMT_RECURSIVE_UPDATE_NODE_REPO 61
674362181Sdim#define STMT_61_INFO {"STMT_RECURSIVE_UPDATE_NODE_REPO", NULL}
675362181Sdim#define STMT_61 \
676251881Speter  "UPDATE nodes SET repos_id = ?4, dav_cache = NULL " \
677251881Speter  "WHERE (wc_id = ?1 AND local_relpath = ?2 AND repos_id = ?3) " \
678251881Speter  "   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)) " \
679251881Speter  "       AND repos_id = ?3) " \
680251881Speter  ""
681251881Speter
682362181Sdim#define STMT_UPDATE_LOCK_REPOS_ID 62
683362181Sdim#define STMT_62_INFO {"STMT_UPDATE_LOCK_REPOS_ID", NULL}
684362181Sdim#define STMT_62 \
685251881Speter  "UPDATE lock SET repos_id = ?2 " \
686251881Speter  "WHERE repos_id = ?1 " \
687251881Speter  ""
688251881Speter
689362181Sdim#define STMT_UPDATE_NODE_FILEINFO 63
690362181Sdim#define STMT_63_INFO {"STMT_UPDATE_NODE_FILEINFO", NULL}
691362181Sdim#define STMT_63 \
692251881Speter  "UPDATE nodes SET translated_size = ?3, last_mod_time = ?4 " \
693251881Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 " \
694251881Speter  "  AND op_depth = (SELECT MAX(op_depth) FROM nodes " \
695251881Speter  "                  WHERE wc_id = ?1 AND local_relpath = ?2) " \
696251881Speter  ""
697251881Speter
698362181Sdim#define STMT_INSERT_ACTUAL_CONFLICT 64
699362181Sdim#define STMT_64_INFO {"STMT_INSERT_ACTUAL_CONFLICT", NULL}
700362181Sdim#define STMT_64 \
701251881Speter  "INSERT INTO actual_node (wc_id, local_relpath, conflict_data, parent_relpath) " \
702251881Speter  "VALUES (?1, ?2, ?3, ?4) " \
703251881Speter  ""
704251881Speter
705362181Sdim#define STMT_UPDATE_ACTUAL_CONFLICT 65
706362181Sdim#define STMT_65_INFO {"STMT_UPDATE_ACTUAL_CONFLICT", NULL}
707362181Sdim#define STMT_65 \
708251881Speter  "UPDATE actual_node SET conflict_data = ?3 " \
709251881Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 " \
710251881Speter  ""
711251881Speter
712362181Sdim#define STMT_UPDATE_ACTUAL_CHANGELISTS 66
713362181Sdim#define STMT_66_INFO {"STMT_UPDATE_ACTUAL_CHANGELISTS", NULL}
714362181Sdim#define STMT_66 \
715251881Speter  "UPDATE actual_node SET changelist = ?3 " \
716251881Speter  "WHERE wc_id = ?1 " \
717251881Speter  "  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))) " \
718251881Speter  "  AND local_relpath = (SELECT local_relpath FROM targets_list AS t " \
719251881Speter  "                       WHERE wc_id = ?1 " \
720251881Speter  "                         AND t.local_relpath = actual_node.local_relpath " \
721251881Speter  "                         AND kind = 'file') " \
722251881Speter  ""
723251881Speter
724362181Sdim#define STMT_UPDATE_ACTUAL_CLEAR_CHANGELIST 67
725362181Sdim#define STMT_67_INFO {"STMT_UPDATE_ACTUAL_CLEAR_CHANGELIST", NULL}
726362181Sdim#define STMT_67 \
727251881Speter  "UPDATE actual_node SET changelist = NULL " \
728251881Speter  " WHERE wc_id = ?1 AND local_relpath = ?2 " \
729251881Speter  ""
730251881Speter
731362181Sdim#define STMT_MARK_SKIPPED_CHANGELIST_DIRS 68
732362181Sdim#define STMT_68_INFO {"STMT_MARK_SKIPPED_CHANGELIST_DIRS", NULL}
733362181Sdim#define STMT_68 \
734251881Speter  "INSERT INTO changelist_list (wc_id, local_relpath, notify, changelist) " \
735251881Speter  "SELECT wc_id, local_relpath, 7, ?3 " \
736251881Speter  "FROM targets_list " \
737251881Speter  "WHERE wc_id = ?1 " \
738251881Speter  "  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))) " \
739251881Speter  "  AND kind = 'dir' " \
740251881Speter  ""
741251881Speter
742362181Sdim#define STMT_RESET_ACTUAL_WITH_CHANGELIST 69
743362181Sdim#define STMT_69_INFO {"STMT_RESET_ACTUAL_WITH_CHANGELIST", NULL}
744362181Sdim#define STMT_69 \
745251881Speter  "REPLACE INTO actual_node ( " \
746251881Speter  "  wc_id, local_relpath, parent_relpath, changelist) " \
747251881Speter  "VALUES (?1, ?2, ?3, ?4) " \
748251881Speter  ""
749251881Speter
750362181Sdim#define STMT_CREATE_CHANGELIST_LIST 70
751362181Sdim#define STMT_70_INFO {"STMT_CREATE_CHANGELIST_LIST", NULL}
752362181Sdim#define STMT_70 \
753251881Speter  "DROP TABLE IF EXISTS changelist_list; " \
754251881Speter  "CREATE TEMPORARY TABLE changelist_list ( " \
755251881Speter  "  wc_id  INTEGER NOT NULL, " \
756251881Speter  "  local_relpath TEXT NOT NULL, " \
757251881Speter  "  notify INTEGER NOT NULL, " \
758251881Speter  "  changelist TEXT NOT NULL, " \
759251881Speter  "  PRIMARY KEY (wc_id, local_relpath, notify DESC) " \
760251881Speter  ") " \
761251881Speter  ""
762251881Speter
763362181Sdim#define STMT_CREATE_CHANGELIST_TRIGGER 71
764362181Sdim#define STMT_71_INFO {"STMT_CREATE_CHANGELIST_TRIGGER", NULL}
765362181Sdim#define STMT_71 \
766251881Speter  "DROP TRIGGER IF EXISTS   trigger_changelist_list_change; " \
767251881Speter  "CREATE TEMPORARY TRIGGER trigger_changelist_list_change " \
768251881Speter  "BEFORE UPDATE ON actual_node " \
769251881Speter  "WHEN old.changelist IS NOT new.changelist " \
770251881Speter  "BEGIN " \
771251881Speter  "  INSERT INTO changelist_list(wc_id, local_relpath, notify, changelist) " \
772251881Speter  "  SELECT old.wc_id, old.local_relpath, 27, old.changelist " \
773251881Speter  "   WHERE old.changelist is NOT NULL; " \
774251881Speter  "  INSERT INTO changelist_list(wc_id, local_relpath, notify, changelist) " \
775251881Speter  "  SELECT new.wc_id, new.local_relpath, 26, new.changelist " \
776251881Speter  "   WHERE new.changelist IS NOT NULL; " \
777251881Speter  "END " \
778251881Speter  ""
779251881Speter
780362181Sdim#define STMT_FINALIZE_CHANGELIST 72
781362181Sdim#define STMT_72_INFO {"STMT_FINALIZE_CHANGELIST", NULL}
782362181Sdim#define STMT_72 \
783251881Speter  "DROP TRIGGER trigger_changelist_list_change; " \
784251881Speter  "DROP TABLE changelist_list; " \
785251881Speter  "DROP TABLE targets_list " \
786251881Speter  ""
787251881Speter
788362181Sdim#define STMT_SELECT_CHANGELIST_LIST 73
789362181Sdim#define STMT_73_INFO {"STMT_SELECT_CHANGELIST_LIST", NULL}
790362181Sdim#define STMT_73 \
791251881Speter  "SELECT wc_id, local_relpath, notify, changelist " \
792251881Speter  "FROM changelist_list " \
793251881Speter  "ORDER BY wc_id, local_relpath ASC, notify DESC " \
794251881Speter  ""
795251881Speter
796362181Sdim#define STMT_CREATE_TARGETS_LIST 74
797362181Sdim#define STMT_74_INFO {"STMT_CREATE_TARGETS_LIST", NULL}
798362181Sdim#define STMT_74 \
799251881Speter  "DROP TABLE IF EXISTS targets_list; " \
800251881Speter  "CREATE TEMPORARY TABLE targets_list ( " \
801251881Speter  "  wc_id  INTEGER NOT NULL, " \
802251881Speter  "  local_relpath TEXT NOT NULL, " \
803251881Speter  "  parent_relpath TEXT, " \
804251881Speter  "  kind TEXT NOT NULL, " \
805251881Speter  "  PRIMARY KEY (wc_id, local_relpath) " \
806251881Speter  "  ); " \
807251881Speter  ""
808251881Speter
809362181Sdim#define STMT_DROP_TARGETS_LIST 75
810362181Sdim#define STMT_75_INFO {"STMT_DROP_TARGETS_LIST", NULL}
811362181Sdim#define STMT_75 \
812251881Speter  "DROP TABLE targets_list " \
813251881Speter  ""
814251881Speter
815362181Sdim#define STMT_INSERT_TARGET 76
816362181Sdim#define STMT_76_INFO {"STMT_INSERT_TARGET", NULL}
817362181Sdim#define STMT_76 \
818251881Speter  "INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \
819251881Speter  "SELECT wc_id, local_relpath, parent_relpath, kind " \
820251881Speter  "FROM nodes_current " \
821251881Speter  "WHERE wc_id = ?1 " \
822251881Speter  "  AND local_relpath = ?2 " \
823251881Speter  ""
824251881Speter
825362181Sdim#define STMT_INSERT_TARGET_DEPTH_FILES 77
826362181Sdim#define STMT_77_INFO {"STMT_INSERT_TARGET_DEPTH_FILES", NULL}
827362181Sdim#define STMT_77 \
828251881Speter  "INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \
829251881Speter  "SELECT wc_id, local_relpath, parent_relpath, kind " \
830251881Speter  "FROM nodes_current " \
831251881Speter  "WHERE wc_id = ?1 " \
832251881Speter  "  AND parent_relpath = ?2 " \
833251881Speter  "  AND kind = 'file' " \
834251881Speter  ""
835251881Speter
836362181Sdim#define STMT_INSERT_TARGET_DEPTH_IMMEDIATES 78
837362181Sdim#define STMT_78_INFO {"STMT_INSERT_TARGET_DEPTH_IMMEDIATES", NULL}
838362181Sdim#define STMT_78 \
839251881Speter  "INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \
840251881Speter  "SELECT wc_id, local_relpath, parent_relpath, kind " \
841251881Speter  "FROM nodes_current " \
842251881Speter  "WHERE wc_id = ?1 " \
843251881Speter  "  AND parent_relpath = ?2 " \
844251881Speter  ""
845251881Speter
846362181Sdim#define STMT_INSERT_TARGET_DEPTH_INFINITY 79
847362181Sdim#define STMT_79_INFO {"STMT_INSERT_TARGET_DEPTH_INFINITY", NULL}
848362181Sdim#define STMT_79 \
849251881Speter  "INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \
850251881Speter  "SELECT wc_id, local_relpath, parent_relpath, kind " \
851251881Speter  "FROM nodes_current " \
852251881Speter  "WHERE wc_id = ?1 " \
853251881Speter  "  AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
854251881Speter  ""
855251881Speter
856362181Sdim#define STMT_INSERT_TARGET_WITH_CHANGELIST 80
857362181Sdim#define STMT_80_INFO {"STMT_INSERT_TARGET_WITH_CHANGELIST", NULL}
858362181Sdim#define STMT_80 \
859251881Speter  "INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \
860251881Speter  "SELECT N.wc_id, N.local_relpath, N.parent_relpath, N.kind " \
861251881Speter  "  FROM actual_node AS A JOIN nodes_current AS N " \
862251881Speter  "    ON A.wc_id = N.wc_id AND A.local_relpath = N.local_relpath " \
863251881Speter  " WHERE N.wc_id = ?1 " \
864251881Speter  "   AND N.local_relpath = ?2 " \
865251881Speter  "   AND A.changelist = ?3 " \
866251881Speter  ""
867251881Speter
868362181Sdim#define STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_FILES 81
869362181Sdim#define STMT_81_INFO {"STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_FILES", NULL}
870362181Sdim#define STMT_81 \
871251881Speter  "INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \
872251881Speter  "SELECT N.wc_id, N.local_relpath, N.parent_relpath, N.kind " \
873251881Speter  "  FROM actual_node AS A JOIN nodes_current AS N " \
874251881Speter  "    ON A.wc_id = N.wc_id AND A.local_relpath = N.local_relpath " \
875251881Speter  " WHERE N.wc_id = ?1 " \
876251881Speter  "   AND N.parent_relpath = ?2 " \
877251881Speter  "   AND kind = 'file' " \
878251881Speter  "   AND A.changelist = ?3 " \
879251881Speter  ""
880251881Speter
881362181Sdim#define STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_IMMEDIATES 82
882362181Sdim#define STMT_82_INFO {"STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_IMMEDIATES", NULL}
883362181Sdim#define STMT_82 \
884251881Speter  "INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \
885251881Speter  "SELECT N.wc_id, N.local_relpath, N.parent_relpath, N.kind " \
886251881Speter  "  FROM actual_node AS A JOIN nodes_current AS N " \
887251881Speter  "    ON A.wc_id = N.wc_id AND A.local_relpath = N.local_relpath " \
888251881Speter  " WHERE N.wc_id = ?1 " \
889251881Speter  "   AND N.parent_relpath = ?2 " \
890251881Speter  "  AND A.changelist = ?3 " \
891251881Speter  ""
892251881Speter
893362181Sdim#define STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_INFINITY 83
894362181Sdim#define STMT_83_INFO {"STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_INFINITY", NULL}
895362181Sdim#define STMT_83 \
896251881Speter  "INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \
897251881Speter  "SELECT N.wc_id, N.local_relpath, N.parent_relpath, N.kind " \
898251881Speter  "  FROM actual_node AS A JOIN nodes_current AS N " \
899251881Speter  "    ON A.wc_id = N.wc_id AND A.local_relpath = N.local_relpath " \
900251881Speter  " WHERE N.wc_id = ?1 " \
901251881Speter  "   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)) " \
902251881Speter  "   AND A.changelist = ?3 " \
903251881Speter  ""
904251881Speter
905362181Sdim#define STMT_INSERT_ACTUAL_EMPTIES 84
906362181Sdim#define STMT_84_INFO {"STMT_INSERT_ACTUAL_EMPTIES", NULL}
907362181Sdim#define STMT_84 \
908251881Speter  "INSERT OR IGNORE INTO actual_node ( " \
909251881Speter  "     wc_id, local_relpath, parent_relpath) " \
910251881Speter  "SELECT wc_id, local_relpath, parent_relpath " \
911251881Speter  "FROM targets_list " \
912251881Speter  ""
913251881Speter
914362181Sdim#define STMT_INSERT_ACTUAL_EMPTIES_FILES 85
915362181Sdim#define STMT_85_INFO {"STMT_INSERT_ACTUAL_EMPTIES_FILES", NULL}
916362181Sdim#define STMT_85 \
917289180Speter  "INSERT OR IGNORE INTO actual_node ( " \
918289180Speter  "     wc_id, local_relpath, parent_relpath) " \
919289180Speter  "SELECT wc_id, local_relpath, parent_relpath " \
920289180Speter  "FROM targets_list " \
921289180Speter  "WHERE kind='file' " \
922289180Speter  ""
923289180Speter
924362181Sdim#define STMT_DELETE_ACTUAL_EMPTY 86
925362181Sdim#define STMT_86_INFO {"STMT_DELETE_ACTUAL_EMPTY", NULL}
926362181Sdim#define STMT_86 \
927251881Speter  "DELETE FROM actual_node " \
928251881Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 " \
929251881Speter  "  AND properties IS NULL " \
930251881Speter  "  AND conflict_data IS NULL " \
931251881Speter  "  AND changelist IS NULL " \
932251881Speter  "  AND text_mod IS NULL " \
933251881Speter  "  AND older_checksum IS NULL " \
934251881Speter  "  AND right_checksum IS NULL " \
935251881Speter  "  AND left_checksum IS NULL " \
936251881Speter  ""
937251881Speter
938362181Sdim#define STMT_DELETE_ACTUAL_EMPTIES 87
939362181Sdim#define STMT_87_INFO {"STMT_DELETE_ACTUAL_EMPTIES", NULL}
940362181Sdim#define STMT_87 \
941251881Speter  "DELETE FROM actual_node " \
942251881Speter  "WHERE wc_id = ?1 " \
943289180Speter  "  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))) " \
944251881Speter  "  AND properties IS NULL " \
945251881Speter  "  AND conflict_data IS NULL " \
946251881Speter  "  AND changelist IS NULL " \
947251881Speter  "  AND text_mod IS NULL " \
948251881Speter  "  AND older_checksum IS NULL " \
949251881Speter  "  AND right_checksum IS NULL " \
950251881Speter  "  AND left_checksum IS NULL " \
951251881Speter  ""
952251881Speter
953362181Sdim#define STMT_DELETE_BASE_NODE 88
954362181Sdim#define STMT_88_INFO {"STMT_DELETE_BASE_NODE", NULL}
955362181Sdim#define STMT_88 \
956251881Speter  "DELETE FROM nodes " \
957251881Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
958251881Speter  ""
959251881Speter
960362181Sdim#define STMT_DELETE_WORKING_NODE 89
961362181Sdim#define STMT_89_INFO {"STMT_DELETE_WORKING_NODE", NULL}
962362181Sdim#define STMT_89 \
963251881Speter  "DELETE FROM nodes " \
964251881Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 " \
965251881Speter  "  AND op_depth = (SELECT MAX(op_depth) FROM nodes " \
966251881Speter  "                  WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth > 0) " \
967251881Speter  ""
968251881Speter
969362181Sdim#define STMT_DELETE_LOWEST_WORKING_NODE 90
970362181Sdim#define STMT_90_INFO {"STMT_DELETE_LOWEST_WORKING_NODE", NULL}
971362181Sdim#define STMT_90 \
972251881Speter  "DELETE FROM nodes " \
973251881Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 " \
974251881Speter  "  AND op_depth = (SELECT MIN(op_depth) FROM nodes " \
975251881Speter  "                  WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth > ?3) " \
976251881Speter  "  AND presence = 'base-deleted' " \
977251881Speter  ""
978251881Speter
979362181Sdim#define STMT_DELETE_NODE_ALL_LAYERS 91
980362181Sdim#define STMT_91_INFO {"STMT_DELETE_NODE_ALL_LAYERS", NULL}
981362181Sdim#define STMT_91 \
982251881Speter  "DELETE FROM nodes " \
983251881Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 " \
984251881Speter  ""
985251881Speter
986362181Sdim#define STMT_DELETE_NODES_ABOVE_DEPTH_RECURSIVE 92
987362181Sdim#define STMT_92_INFO {"STMT_DELETE_NODES_ABOVE_DEPTH_RECURSIVE", NULL}
988362181Sdim#define STMT_92 \
989251881Speter  "DELETE FROM nodes " \
990251881Speter  "WHERE wc_id = ?1 " \
991251881Speter  "  AND (local_relpath = ?2 " \
992251881Speter  "       OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
993251881Speter  "  AND op_depth >= ?3 " \
994251881Speter  ""
995251881Speter
996362181Sdim#define STMT_DELETE_ACTUAL_NODE 93
997362181Sdim#define STMT_93_INFO {"STMT_DELETE_ACTUAL_NODE", NULL}
998362181Sdim#define STMT_93 \
999251881Speter  "DELETE FROM actual_node " \
1000251881Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 " \
1001251881Speter  ""
1002251881Speter
1003362181Sdim#define STMT_DELETE_ACTUAL_NODE_RECURSIVE 94
1004362181Sdim#define STMT_94_INFO {"STMT_DELETE_ACTUAL_NODE_RECURSIVE", NULL}
1005362181Sdim#define STMT_94 \
1006251881Speter  "DELETE FROM actual_node " \
1007251881Speter  "WHERE wc_id = ?1 " \
1008251881Speter  "  AND (local_relpath = ?2 " \
1009251881Speter  "       OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
1010251881Speter  ""
1011251881Speter
1012362181Sdim#define STMT_DELETE_ACTUAL_NODE_LEAVING_CHANGELIST 95
1013362181Sdim#define STMT_95_INFO {"STMT_DELETE_ACTUAL_NODE_LEAVING_CHANGELIST", NULL}
1014362181Sdim#define STMT_95 \
1015251881Speter  "DELETE FROM actual_node " \
1016251881Speter  "WHERE wc_id = ?1 " \
1017251881Speter  "  AND local_relpath = ?2 " \
1018251881Speter  "  AND (changelist IS NULL " \
1019251881Speter  "       OR NOT EXISTS (SELECT 1 FROM nodes_current c " \
1020251881Speter  "                      WHERE c.wc_id = ?1 AND c.local_relpath = ?2 " \
1021251881Speter  "                        AND c.kind = 'file')) " \
1022251881Speter  ""
1023251881Speter
1024362181Sdim#define STMT_DELETE_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE 96
1025362181Sdim#define STMT_96_INFO {"STMT_DELETE_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE", NULL}
1026362181Sdim#define STMT_96 \
1027251881Speter  "DELETE FROM actual_node " \
1028251881Speter  "WHERE wc_id = ?1 " \
1029251881Speter  "  AND (local_relpath = ?2 " \
1030251881Speter  "       OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
1031251881Speter  "  AND (changelist IS NULL " \
1032251881Speter  "       OR NOT EXISTS (SELECT 1 FROM nodes_current c " \
1033251881Speter  "                      WHERE c.wc_id = ?1 " \
1034251881Speter  "                        AND c.local_relpath = actual_node.local_relpath " \
1035251881Speter  "                        AND c.kind = 'file')) " \
1036251881Speter  ""
1037251881Speter
1038362181Sdim#define STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST 97
1039362181Sdim#define STMT_97_INFO {"STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST", NULL}
1040362181Sdim#define STMT_97 \
1041251881Speter  "UPDATE actual_node " \
1042251881Speter  "SET properties = NULL, " \
1043251881Speter  "    text_mod = NULL, " \
1044251881Speter  "    conflict_data = NULL, " \
1045251881Speter  "    tree_conflict_data = NULL, " \
1046251881Speter  "    older_checksum = NULL, " \
1047251881Speter  "    left_checksum = NULL, " \
1048251881Speter  "    right_checksum = NULL " \
1049251881Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 " \
1050251881Speter  ""
1051251881Speter
1052362181Sdim#define STMT_CLEAR_ACTUAL_NODE_LEAVING_CONFLICT 98
1053362181Sdim#define STMT_98_INFO {"STMT_CLEAR_ACTUAL_NODE_LEAVING_CONFLICT", NULL}
1054362181Sdim#define STMT_98 \
1055251881Speter  "UPDATE actual_node " \
1056251881Speter  "SET properties = NULL, " \
1057251881Speter  "    text_mod = NULL, " \
1058289180Speter  "    tree_conflict_data = NULL, " \
1059289180Speter  "    older_checksum = NULL, " \
1060289180Speter  "    left_checksum = NULL, " \
1061289180Speter  "    right_checksum = NULL, " \
1062289180Speter  "    changelist = NULL " \
1063289180Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 " \
1064289180Speter  ""
1065289180Speter
1066362181Sdim#define STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE 99
1067362181Sdim#define STMT_99_INFO {"STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE", NULL}
1068362181Sdim#define STMT_99 \
1069289180Speter  "UPDATE actual_node " \
1070289180Speter  "SET properties = NULL, " \
1071289180Speter  "    text_mod = NULL, " \
1072251881Speter  "    conflict_data = NULL, " \
1073251881Speter  "    tree_conflict_data = NULL, " \
1074251881Speter  "    older_checksum = NULL, " \
1075251881Speter  "    left_checksum = NULL, " \
1076251881Speter  "    right_checksum = NULL " \
1077251881Speter  "WHERE wc_id = ?1 " \
1078251881Speter  "  AND (local_relpath = ?2 " \
1079251881Speter  "       OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
1080251881Speter  ""
1081251881Speter
1082362181Sdim#define STMT_UPDATE_NODE_BASE_DEPTH 100
1083362181Sdim#define STMT_100_INFO {"STMT_UPDATE_NODE_BASE_DEPTH", NULL}
1084362181Sdim#define STMT_100 \
1085251881Speter  "UPDATE nodes SET depth = ?3 " \
1086251881Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
1087251881Speter  "  AND kind='dir' " \
1088289180Speter  "  AND presence IN ('normal', 'incomplete') " \
1089251881Speter  ""
1090251881Speter
1091362181Sdim#define STMT_UPDATE_NODE_BASE_PRESENCE 101
1092362181Sdim#define STMT_101_INFO {"STMT_UPDATE_NODE_BASE_PRESENCE", NULL}
1093362181Sdim#define STMT_101 \
1094251881Speter  "UPDATE nodes SET presence = ?3 " \
1095251881Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
1096251881Speter  ""
1097251881Speter
1098362181Sdim#define STMT_UPDATE_BASE_NODE_PRESENCE_REVNUM_AND_REPOS_PATH 102
1099362181Sdim#define STMT_102_INFO {"STMT_UPDATE_BASE_NODE_PRESENCE_REVNUM_AND_REPOS_PATH", NULL}
1100362181Sdim#define STMT_102 \
1101251881Speter  "UPDATE nodes SET presence = ?3, revision = ?4, repos_path = ?5 " \
1102251881Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
1103251881Speter  ""
1104251881Speter
1105362181Sdim#define STMT_LOOK_FOR_WORK 103
1106362181Sdim#define STMT_103_INFO {"STMT_LOOK_FOR_WORK", NULL}
1107362181Sdim#define STMT_103 \
1108251881Speter  "SELECT id FROM work_queue LIMIT 1 " \
1109251881Speter  ""
1110251881Speter
1111362181Sdim#define STMT_INSERT_WORK_ITEM 104
1112362181Sdim#define STMT_104_INFO {"STMT_INSERT_WORK_ITEM", NULL}
1113362181Sdim#define STMT_104 \
1114251881Speter  "INSERT INTO work_queue (work) VALUES (?1) " \
1115251881Speter  ""
1116251881Speter
1117362181Sdim#define STMT_SELECT_WORK_ITEM 105
1118362181Sdim#define STMT_105_INFO {"STMT_SELECT_WORK_ITEM", NULL}
1119362181Sdim#define STMT_105 \
1120251881Speter  "SELECT id, work FROM work_queue ORDER BY id LIMIT 1 " \
1121251881Speter  ""
1122251881Speter
1123362181Sdim#define STMT_DELETE_WORK_ITEM 106
1124362181Sdim#define STMT_106_INFO {"STMT_DELETE_WORK_ITEM", NULL}
1125362181Sdim#define STMT_106 \
1126251881Speter  "DELETE FROM work_queue WHERE id = ?1 " \
1127251881Speter  ""
1128251881Speter
1129362181Sdim#define STMT_INSERT_OR_IGNORE_PRISTINE 107
1130362181Sdim#define STMT_107_INFO {"STMT_INSERT_OR_IGNORE_PRISTINE", NULL}
1131362181Sdim#define STMT_107 \
1132251881Speter  "INSERT OR IGNORE INTO pristine (checksum, md5_checksum, size, refcount) " \
1133251881Speter  "VALUES (?1, ?2, ?3, 0) " \
1134251881Speter  ""
1135251881Speter
1136362181Sdim#define STMT_INSERT_PRISTINE 108
1137362181Sdim#define STMT_108_INFO {"STMT_INSERT_PRISTINE", NULL}
1138362181Sdim#define STMT_108 \
1139251881Speter  "INSERT INTO pristine (checksum, md5_checksum, size, refcount) " \
1140251881Speter  "VALUES (?1, ?2, ?3, 0) " \
1141251881Speter  ""
1142251881Speter
1143362181Sdim#define STMT_SELECT_PRISTINE 109
1144362181Sdim#define STMT_109_INFO {"STMT_SELECT_PRISTINE", NULL}
1145362181Sdim#define STMT_109 \
1146251881Speter  "SELECT md5_checksum " \
1147251881Speter  "FROM pristine " \
1148251881Speter  "WHERE checksum = ?1 " \
1149251881Speter  ""
1150251881Speter
1151362181Sdim#define STMT_SELECT_PRISTINE_SIZE 110
1152362181Sdim#define STMT_110_INFO {"STMT_SELECT_PRISTINE_SIZE", NULL}
1153362181Sdim#define STMT_110 \
1154251881Speter  "SELECT size " \
1155251881Speter  "FROM pristine " \
1156251881Speter  "WHERE checksum = ?1 LIMIT 1 " \
1157251881Speter  ""
1158251881Speter
1159362181Sdim#define STMT_SELECT_PRISTINE_BY_MD5 111
1160362181Sdim#define STMT_111_INFO {"STMT_SELECT_PRISTINE_BY_MD5", NULL}
1161362181Sdim#define STMT_111 \
1162251881Speter  "SELECT checksum " \
1163251881Speter  "FROM pristine " \
1164251881Speter  "WHERE md5_checksum = ?1 " \
1165251881Speter  ""
1166251881Speter
1167362181Sdim#define STMT_SELECT_UNREFERENCED_PRISTINES 112
1168362181Sdim#define STMT_112_INFO {"STMT_SELECT_UNREFERENCED_PRISTINES", NULL}
1169362181Sdim#define STMT_112 \
1170251881Speter  "SELECT checksum " \
1171251881Speter  "FROM pristine " \
1172251881Speter  "WHERE refcount = 0 " \
1173251881Speter  ""
1174251881Speter
1175362181Sdim#define STMT_DELETE_PRISTINE_IF_UNREFERENCED 113
1176362181Sdim#define STMT_113_INFO {"STMT_DELETE_PRISTINE_IF_UNREFERENCED", NULL}
1177362181Sdim#define STMT_113 \
1178251881Speter  "DELETE FROM pristine " \
1179251881Speter  "WHERE checksum = ?1 AND refcount = 0 " \
1180251881Speter  ""
1181251881Speter
1182362181Sdim#define STMT_SELECT_COPY_PRISTINES 114
1183362181Sdim#define STMT_114_INFO {"STMT_SELECT_COPY_PRISTINES", NULL}
1184362181Sdim#define STMT_114 \
1185251881Speter  "SELECT n.checksum, md5_checksum, size " \
1186251881Speter  "FROM nodes_current n " \
1187251881Speter  "LEFT JOIN pristine p ON n.checksum = p.checksum " \
1188251881Speter  "WHERE wc_id = ?1 " \
1189251881Speter  "  AND n.local_relpath = ?2 " \
1190251881Speter  "  AND n.checksum IS NOT NULL " \
1191251881Speter  "UNION ALL " \
1192251881Speter  "SELECT n.checksum, md5_checksum, size " \
1193251881Speter  "FROM nodes n " \
1194251881Speter  "LEFT JOIN pristine p ON n.checksum = p.checksum " \
1195251881Speter  "WHERE wc_id = ?1 " \
1196251881Speter  "  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)) " \
1197251881Speter  "  AND op_depth >= " \
1198251881Speter  "      (SELECT MAX(op_depth) FROM nodes WHERE wc_id = ?1 AND local_relpath = ?2) " \
1199251881Speter  "  AND n.checksum IS NOT NULL " \
1200251881Speter  ""
1201251881Speter
1202362181Sdim#define STMT_VACUUM 115
1203362181Sdim#define STMT_115_INFO {"STMT_VACUUM", NULL}
1204362181Sdim#define STMT_115 \
1205251881Speter  "VACUUM " \
1206251881Speter  ""
1207251881Speter
1208362181Sdim#define STMT_SELECT_CONFLICT_VICTIMS 116
1209362181Sdim#define STMT_116_INFO {"STMT_SELECT_CONFLICT_VICTIMS", NULL}
1210362181Sdim#define STMT_116 \
1211251881Speter  "SELECT local_relpath, conflict_data " \
1212251881Speter  "FROM actual_node " \
1213251881Speter  "WHERE wc_id = ?1 AND parent_relpath = ?2 AND " \
1214251881Speter  "  NOT (conflict_data IS NULL) " \
1215251881Speter  ""
1216251881Speter
1217362181Sdim#define STMT_INSERT_WC_LOCK 117
1218362181Sdim#define STMT_117_INFO {"STMT_INSERT_WC_LOCK", NULL}
1219362181Sdim#define STMT_117 \
1220251881Speter  "INSERT INTO wc_lock (wc_id, local_dir_relpath, locked_levels) " \
1221251881Speter  "VALUES (?1, ?2, ?3) " \
1222251881Speter  ""
1223251881Speter
1224362181Sdim#define STMT_SELECT_WC_LOCK 118
1225362181Sdim#define STMT_118_INFO {"STMT_SELECT_WC_LOCK", NULL}
1226362181Sdim#define STMT_118 \
1227251881Speter  "SELECT locked_levels FROM wc_lock " \
1228251881Speter  "WHERE wc_id = ?1 AND local_dir_relpath = ?2 " \
1229251881Speter  ""
1230251881Speter
1231362181Sdim#define STMT_SELECT_ANCESTOR_WCLOCKS 119
1232362181Sdim#define STMT_119_INFO {"STMT_SELECT_ANCESTOR_WCLOCKS", NULL}
1233362181Sdim#define STMT_119 \
1234251881Speter  "SELECT local_dir_relpath, locked_levels FROM wc_lock " \
1235251881Speter  "WHERE wc_id = ?1 " \
1236251881Speter  "  AND ((local_dir_relpath >= ?3 AND local_dir_relpath <= ?2) " \
1237251881Speter  "       OR local_dir_relpath = '') " \
1238251881Speter  ""
1239251881Speter
1240362181Sdim#define STMT_DELETE_WC_LOCK 120
1241362181Sdim#define STMT_120_INFO {"STMT_DELETE_WC_LOCK", NULL}
1242362181Sdim#define STMT_120 \
1243251881Speter  "DELETE FROM wc_lock " \
1244251881Speter  "WHERE wc_id = ?1 AND local_dir_relpath = ?2 " \
1245251881Speter  ""
1246251881Speter
1247362181Sdim#define STMT_FIND_WC_LOCK 121
1248362181Sdim#define STMT_121_INFO {"STMT_FIND_WC_LOCK", NULL}
1249362181Sdim#define STMT_121 \
1250251881Speter  "SELECT local_dir_relpath FROM wc_lock " \
1251251881Speter  "WHERE wc_id = ?1 " \
1252251881Speter  "  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)) " \
1253251881Speter  ""
1254251881Speter
1255362181Sdim#define STMT_FIND_CONFLICT_DESCENDANT 122
1256362181Sdim#define STMT_122_INFO {"STMT_FIND_CONFLICT_DESCENDANT", NULL}
1257362181Sdim#define STMT_122 \
1258289180Speter  "SELECT 1 FROM actual_node " \
1259289180Speter  "WHERE wc_id = ?1 " \
1260289180Speter  "  AND local_relpath > (?2 || '/') " \
1261289180Speter  "  AND local_relpath < (?2 || '0') " \
1262289180Speter  "  AND conflict_data IS NOT NULL " \
1263289180Speter  "LIMIT 1 " \
1264289180Speter  ""
1265289180Speter
1266362181Sdim#define STMT_DELETE_WC_LOCK_ORPHAN 123
1267362181Sdim#define STMT_123_INFO {"STMT_DELETE_WC_LOCK_ORPHAN", NULL}
1268362181Sdim#define STMT_123 \
1269251881Speter  "DELETE FROM wc_lock " \
1270251881Speter  "WHERE wc_id = ?1 AND local_dir_relpath = ?2 " \
1271251881Speter  "AND NOT EXISTS (SELECT 1 FROM nodes " \
1272251881Speter  "                 WHERE nodes.wc_id = ?1 " \
1273251881Speter  "                   AND nodes.local_relpath = wc_lock.local_dir_relpath) " \
1274251881Speter  ""
1275251881Speter
1276362181Sdim#define STMT_DELETE_WC_LOCK_ORPHAN_RECURSIVE 124
1277362181Sdim#define STMT_124_INFO {"STMT_DELETE_WC_LOCK_ORPHAN_RECURSIVE", NULL}
1278362181Sdim#define STMT_124 \
1279251881Speter  "DELETE FROM wc_lock " \
1280251881Speter  "WHERE wc_id = ?1 " \
1281251881Speter  "  AND (local_dir_relpath = ?2 " \
1282251881Speter  "       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))) " \
1283251881Speter  "  AND NOT EXISTS (SELECT 1 FROM nodes " \
1284251881Speter  "                   WHERE nodes.wc_id = ?1 " \
1285251881Speter  "                     AND nodes.local_relpath = wc_lock.local_dir_relpath) " \
1286251881Speter  ""
1287251881Speter
1288362181Sdim#define STMT_APPLY_CHANGES_TO_BASE_NODE 125
1289362181Sdim#define STMT_125_INFO {"STMT_APPLY_CHANGES_TO_BASE_NODE", NULL}
1290362181Sdim#define STMT_125 \
1291251881Speter  "INSERT OR REPLACE INTO nodes ( " \
1292251881Speter  "  wc_id, local_relpath, op_depth, parent_relpath, repos_id, repos_path, " \
1293251881Speter  "  revision, presence, depth, kind, changed_revision, changed_date, " \
1294251881Speter  "  changed_author, checksum, properties, dav_cache, symlink_target, " \
1295251881Speter  "  inherited_props, file_external ) " \
1296251881Speter  "VALUES (?1, ?2, 0, " \
1297251881Speter  "        ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10, ?11, ?12, ?13, ?14, ?15, ?16, ?17, " \
1298251881Speter  "        (SELECT file_external FROM nodes " \
1299251881Speter  "          WHERE wc_id = ?1 " \
1300251881Speter  "            AND local_relpath = ?2 " \
1301251881Speter  "            AND op_depth = 0)) " \
1302251881Speter  ""
1303251881Speter
1304362181Sdim#define STMT_INSTALL_WORKING_NODE_FOR_DELETE 126
1305362181Sdim#define STMT_126_INFO {"STMT_INSTALL_WORKING_NODE_FOR_DELETE", NULL}
1306362181Sdim#define STMT_126 \
1307289180Speter  "INSERT INTO nodes ( " \
1308251881Speter  "    wc_id, local_relpath, op_depth, " \
1309251881Speter  "    parent_relpath, presence, kind) " \
1310251881Speter  "VALUES(?1, ?2, ?3, ?4, 'base-deleted', ?5) " \
1311251881Speter  ""
1312251881Speter
1313362181Sdim#define STMT_REPLACE_WITH_BASE_DELETED 127
1314362181Sdim#define STMT_127_INFO {"STMT_REPLACE_WITH_BASE_DELETED", NULL}
1315362181Sdim#define STMT_127 \
1316251881Speter  "INSERT OR REPLACE INTO nodes (wc_id, local_relpath, op_depth, parent_relpath, " \
1317251881Speter  "                              kind, moved_to, presence) " \
1318251881Speter  "SELECT wc_id, local_relpath, op_depth, parent_relpath, " \
1319251881Speter  "       kind, moved_to, 'base-deleted' " \
1320251881Speter  "  FROM nodes " \
1321251881Speter  " WHERE wc_id = ?1 " \
1322289180Speter  "   AND local_relpath = ?2 " \
1323251881Speter  "   AND op_depth = ?3 " \
1324251881Speter  ""
1325251881Speter
1326362181Sdim#define STMT_INSERT_DELETE_FROM_NODE_RECURSIVE 128
1327362181Sdim#define STMT_128_INFO {"STMT_INSERT_DELETE_FROM_NODE_RECURSIVE", NULL}
1328362181Sdim#define STMT_128 \
1329251881Speter  "INSERT INTO nodes ( " \
1330251881Speter  "    wc_id, local_relpath, op_depth, parent_relpath, presence, kind) " \
1331251881Speter  "SELECT wc_id, local_relpath, ?4 , parent_relpath, 'base-deleted', " \
1332251881Speter  "       kind " \
1333251881Speter  "FROM nodes " \
1334289180Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \
1335289180Speter  "UNION ALL " \
1336289180Speter  "SELECT wc_id, local_relpath, ?4 , parent_relpath, 'base-deleted', " \
1337289180Speter  "       kind " \
1338289180Speter  "FROM nodes " \
1339251881Speter  "WHERE wc_id = ?1 " \
1340289180Speter  "  AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
1341251881Speter  "  AND op_depth = ?3 " \
1342251881Speter  "  AND presence NOT IN ('base-deleted', 'not-present', 'excluded', 'server-excluded') " \
1343251881Speter  "  AND file_external IS NULL " \
1344289180Speter  "ORDER BY local_relpath " \
1345251881Speter  ""
1346251881Speter
1347362181Sdim#define STMT_INSERT_WORKING_NODE_FROM_BASE_COPY 129
1348362181Sdim#define STMT_129_INFO {"STMT_INSERT_WORKING_NODE_FROM_BASE_COPY", NULL}
1349362181Sdim#define STMT_129 \
1350289180Speter  "INSERT OR REPLACE INTO nodes ( " \
1351251881Speter  "    wc_id, local_relpath, op_depth, parent_relpath, repos_id, repos_path, " \
1352251881Speter  "    revision, presence, depth, kind, changed_revision, changed_date, " \
1353251881Speter  "    changed_author, checksum, properties, translated_size, last_mod_time, " \
1354289180Speter  "    symlink_target, moved_to ) " \
1355251881Speter  "SELECT wc_id, local_relpath, ?3 , parent_relpath, repos_id, " \
1356251881Speter  "    repos_path, revision, presence, depth, kind, changed_revision, " \
1357251881Speter  "    changed_date, changed_author, checksum, properties, translated_size, " \
1358289180Speter  "    last_mod_time, symlink_target, " \
1359289180Speter  "    (SELECT moved_to FROM nodes " \
1360289180Speter  "     WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3) moved_to " \
1361251881Speter  "FROM nodes " \
1362251881Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
1363251881Speter  ""
1364251881Speter
1365362181Sdim#define STMT_INSERT_DELETE_FROM_BASE 130
1366362181Sdim#define STMT_130_INFO {"STMT_INSERT_DELETE_FROM_BASE", NULL}
1367362181Sdim#define STMT_130 \
1368251881Speter  "INSERT INTO nodes ( " \
1369251881Speter  "    wc_id, local_relpath, op_depth, parent_relpath, presence, kind) " \
1370251881Speter  "SELECT wc_id, local_relpath, ?3 , parent_relpath, " \
1371251881Speter  "    'base-deleted', kind " \
1372251881Speter  "FROM nodes " \
1373251881Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
1374251881Speter  ""
1375251881Speter
1376362181Sdim#define STMT_UPDATE_OP_DEPTH_INCREASE_RECURSIVE 131
1377362181Sdim#define STMT_131_INFO {"STMT_UPDATE_OP_DEPTH_INCREASE_RECURSIVE", NULL}
1378362181Sdim#define STMT_131 \
1379251881Speter  "UPDATE nodes SET op_depth = ?3 + 1 " \
1380251881Speter  "WHERE wc_id = ?1 " \
1381251881Speter  " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
1382251881Speter  " AND op_depth = ?3 " \
1383251881Speter  ""
1384251881Speter
1385362181Sdim#define STMT_COPY_OP_DEPTH_RECURSIVE 132
1386362181Sdim#define STMT_132_INFO {"STMT_COPY_OP_DEPTH_RECURSIVE", NULL}
1387362181Sdim#define STMT_132 \
1388289180Speter  "INSERT INTO nodes ( " \
1389289180Speter  "    wc_id, local_relpath, op_depth, parent_relpath, repos_id, repos_path, " \
1390289180Speter  "    revision, presence, depth, kind, changed_revision, changed_date, " \
1391289180Speter  "    changed_author, checksum, properties, translated_size, last_mod_time, " \
1392289180Speter  "    symlink_target, moved_here, moved_to ) " \
1393289180Speter  "SELECT " \
1394289180Speter  "    wc_id, local_relpath, ?4, parent_relpath, repos_id, " \
1395289180Speter  "    repos_path, revision, presence, depth, kind, changed_revision, " \
1396289180Speter  "    changed_date, changed_author, checksum, properties, translated_size, " \
1397289180Speter  "    last_mod_time, symlink_target, NULL, NULL " \
1398289180Speter  "FROM nodes " \
1399289180Speter  "WHERE wc_id = ?1 AND op_depth = ?3 AND local_relpath = ?2 " \
1400289180Speter  "UNION ALL " \
1401289180Speter  "SELECT " \
1402289180Speter  "    wc_id, local_relpath, ?4, parent_relpath, repos_id, " \
1403289180Speter  "    repos_path, revision, presence, depth, kind, changed_revision, " \
1404289180Speter  "    changed_date, changed_author, checksum, properties, translated_size, " \
1405289180Speter  "    last_mod_time, symlink_target, NULL, NULL " \
1406289180Speter  "FROM nodes " \
1407289180Speter  "WHERE wc_id = ?1 AND op_depth = ?3 " \
1408289180Speter  "  AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
1409289180Speter  "ORDER BY local_relpath " \
1410251881Speter  ""
1411251881Speter
1412362181Sdim#define STMT_DOES_NODE_EXIST 133
1413362181Sdim#define STMT_133_INFO {"STMT_DOES_NODE_EXIST", NULL}
1414362181Sdim#define STMT_133 \
1415251881Speter  "SELECT 1 FROM nodes WHERE wc_id = ?1 AND local_relpath = ?2 " \
1416251881Speter  "LIMIT 1 " \
1417251881Speter  ""
1418251881Speter
1419362181Sdim#define STMT_HAS_SERVER_EXCLUDED_DESCENDANTS 134
1420362181Sdim#define STMT_134_INFO {"STMT_HAS_SERVER_EXCLUDED_DESCENDANTS", NULL}
1421362181Sdim#define STMT_134 \
1422251881Speter  "SELECT local_relpath FROM nodes " \
1423251881Speter  "WHERE wc_id = ?1 " \
1424251881Speter  "  AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
1425251881Speter  "  AND op_depth = 0 AND presence = 'server-excluded' " \
1426251881Speter  "LIMIT 1 " \
1427251881Speter  ""
1428251881Speter
1429362181Sdim#define STMT_SELECT_ALL_EXCLUDED_DESCENDANTS 135
1430362181Sdim#define STMT_135_INFO {"STMT_SELECT_ALL_EXCLUDED_DESCENDANTS", NULL}
1431362181Sdim#define STMT_135 \
1432251881Speter  "SELECT local_relpath FROM nodes " \
1433251881Speter  "WHERE wc_id = ?1 " \
1434251881Speter  "  AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
1435251881Speter  "  AND op_depth = 0 " \
1436251881Speter  "  AND (presence = 'server-excluded' OR presence = 'excluded') " \
1437251881Speter  ""
1438251881Speter
1439362181Sdim#define STMT_INSERT_WORKING_NODE_COPY_FROM 136
1440362181Sdim#define STMT_136_INFO {"STMT_INSERT_WORKING_NODE_COPY_FROM", NULL}
1441362181Sdim#define STMT_136 \
1442251881Speter  "INSERT OR REPLACE INTO nodes ( " \
1443251881Speter  "    wc_id, local_relpath, op_depth, parent_relpath, repos_id, " \
1444251881Speter  "    repos_path, revision, presence, depth, moved_here, kind, changed_revision, " \
1445251881Speter  "    changed_date, changed_author, checksum, properties, translated_size, " \
1446251881Speter  "    last_mod_time, symlink_target, moved_to ) " \
1447251881Speter  "SELECT wc_id, ?3 , ?4 , ?5 , " \
1448251881Speter  "    repos_id, repos_path, revision, ?6 , depth, " \
1449251881Speter  "    ?7, kind, changed_revision, changed_date, " \
1450251881Speter  "    changed_author, checksum, properties, translated_size, " \
1451251881Speter  "    last_mod_time, symlink_target, " \
1452251881Speter  "    (SELECT dst.moved_to FROM nodes AS dst " \
1453251881Speter  "                         WHERE dst.wc_id = ?1 " \
1454251881Speter  "                         AND dst.local_relpath = ?3 " \
1455251881Speter  "                         AND dst.op_depth = ?4) " \
1456251881Speter  "FROM nodes_current " \
1457251881Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 " \
1458251881Speter  ""
1459251881Speter
1460362181Sdim#define STMT_INSERT_WORKING_NODE_COPY_FROM_DEPTH 137
1461362181Sdim#define STMT_137_INFO {"STMT_INSERT_WORKING_NODE_COPY_FROM_DEPTH", NULL}
1462362181Sdim#define STMT_137 \
1463251881Speter  "INSERT OR REPLACE INTO nodes ( " \
1464251881Speter  "    wc_id, local_relpath, op_depth, parent_relpath, repos_id, " \
1465251881Speter  "    repos_path, revision, presence, depth, moved_here, kind, changed_revision, " \
1466251881Speter  "    changed_date, changed_author, checksum, properties, translated_size, " \
1467251881Speter  "    last_mod_time, symlink_target, moved_to ) " \
1468251881Speter  "SELECT wc_id, ?3 , ?4 , ?5 , " \
1469251881Speter  "    repos_id, repos_path, revision, ?6 , depth, " \
1470251881Speter  "    ?8 , kind, changed_revision, changed_date, " \
1471251881Speter  "    changed_author, checksum, properties, translated_size, " \
1472251881Speter  "    last_mod_time, symlink_target, " \
1473251881Speter  "    (SELECT dst.moved_to FROM nodes AS dst " \
1474251881Speter  "                         WHERE dst.wc_id = ?1 " \
1475251881Speter  "                         AND dst.local_relpath = ?3 " \
1476251881Speter  "                         AND dst.op_depth = ?4) " \
1477251881Speter  "FROM nodes " \
1478251881Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?7 " \
1479251881Speter  ""
1480251881Speter
1481362181Sdim#define STMT_UPDATE_BASE_REVISION 138
1482362181Sdim#define STMT_138_INFO {"STMT_UPDATE_BASE_REVISION", NULL}
1483362181Sdim#define STMT_138 \
1484251881Speter  "UPDATE nodes SET revision = ?3 " \
1485251881Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
1486251881Speter  ""
1487251881Speter
1488362181Sdim#define STMT_UPDATE_BASE_REPOS 139
1489362181Sdim#define STMT_139_INFO {"STMT_UPDATE_BASE_REPOS", NULL}
1490362181Sdim#define STMT_139 \
1491251881Speter  "UPDATE nodes SET repos_id = ?3, repos_path = ?4 " \
1492251881Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
1493251881Speter  ""
1494251881Speter
1495362181Sdim#define STMT_ACTUAL_HAS_CHILDREN 140
1496362181Sdim#define STMT_140_INFO {"STMT_ACTUAL_HAS_CHILDREN", NULL}
1497362181Sdim#define STMT_140 \
1498251881Speter  "SELECT 1 FROM actual_node " \
1499251881Speter  "WHERE wc_id = ?1 AND parent_relpath = ?2 " \
1500251881Speter  "LIMIT 1 " \
1501251881Speter  ""
1502251881Speter
1503362181Sdim#define STMT_INSERT_EXTERNAL 141
1504362181Sdim#define STMT_141_INFO {"STMT_INSERT_EXTERNAL", NULL}
1505362181Sdim#define STMT_141 \
1506251881Speter  "INSERT OR REPLACE INTO externals ( " \
1507251881Speter  "    wc_id, local_relpath, parent_relpath, presence, kind, def_local_relpath, " \
1508251881Speter  "    repos_id, def_repos_relpath, def_operational_revision, def_revision) " \
1509251881Speter  "VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10) " \
1510251881Speter  ""
1511251881Speter
1512362181Sdim#define STMT_SELECT_EXTERNAL_INFO 142
1513362181Sdim#define STMT_142_INFO {"STMT_SELECT_EXTERNAL_INFO", NULL}
1514362181Sdim#define STMT_142 \
1515251881Speter  "SELECT presence, kind, def_local_relpath, repos_id, " \
1516251881Speter  "    def_repos_relpath, def_operational_revision, def_revision " \
1517251881Speter  "FROM externals WHERE wc_id = ?1 AND local_relpath = ?2 " \
1518251881Speter  "LIMIT 1 " \
1519251881Speter  ""
1520251881Speter
1521362181Sdim#define STMT_DELETE_FILE_EXTERNALS 143
1522362181Sdim#define STMT_143_INFO {"STMT_DELETE_FILE_EXTERNALS", NULL}
1523362181Sdim#define STMT_143 \
1524251881Speter  "DELETE FROM nodes " \
1525251881Speter  "WHERE wc_id = ?1 " \
1526251881Speter  "  AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
1527251881Speter  "  AND op_depth = 0 " \
1528251881Speter  "  AND file_external IS NOT NULL " \
1529251881Speter  ""
1530251881Speter
1531362181Sdim#define STMT_DELETE_FILE_EXTERNAL_REGISTATIONS 144
1532362181Sdim#define STMT_144_INFO {"STMT_DELETE_FILE_EXTERNAL_REGISTATIONS", NULL}
1533362181Sdim#define STMT_144 \
1534251881Speter  "DELETE FROM externals " \
1535251881Speter  "WHERE wc_id = ?1 " \
1536251881Speter  "  AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
1537251881Speter  "  AND kind != 'dir' " \
1538251881Speter  ""
1539251881Speter
1540362181Sdim#define STMT_DELETE_EXTERNAL_REGISTATIONS 145
1541362181Sdim#define STMT_145_INFO {"STMT_DELETE_EXTERNAL_REGISTATIONS", NULL}
1542362181Sdim#define STMT_145 \
1543251881Speter  "DELETE FROM externals " \
1544251881Speter  "WHERE wc_id = ?1 " \
1545251881Speter  "  AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
1546251881Speter  ""
1547251881Speter
1548362181Sdim#define STMT_SELECT_COMMITTABLE_EXTERNALS_BELOW 146
1549362181Sdim#define STMT_146_INFO {"STMT_SELECT_COMMITTABLE_EXTERNALS_BELOW", NULL}
1550362181Sdim#define STMT_146 \
1551251881Speter  "SELECT local_relpath, kind, def_repos_relpath, " \
1552251881Speter  "  (SELECT root FROM repository AS r WHERE r.id = e.repos_id) " \
1553251881Speter  "FROM externals e " \
1554251881Speter  "WHERE wc_id = ?1 " \
1555251881Speter  "  AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
1556251881Speter  "  AND def_revision IS NULL " \
1557251881Speter  "  AND repos_id = (SELECT repos_id " \
1558251881Speter  "                  FROM nodes AS n " \
1559251881Speter  "                  WHERE n.wc_id = ?1 " \
1560251881Speter  "                    AND n.local_relpath = '' " \
1561251881Speter  "                    AND n.op_depth = 0) " \
1562251881Speter  "  AND ((kind='dir') " \
1563251881Speter  "       OR EXISTS (SELECT 1 FROM nodes " \
1564251881Speter  "                  WHERE nodes.wc_id = e.wc_id " \
1565251881Speter  "                  AND nodes.local_relpath = e.parent_relpath)) " \
1566251881Speter  ""
1567251881Speter
1568362181Sdim#define STMT_SELECT_COMMITTABLE_EXTERNALS_IMMEDIATELY_BELOW 147
1569362181Sdim#define STMT_147_INFO {"STMT_SELECT_COMMITTABLE_EXTERNALS_IMMEDIATELY_BELOW", NULL}
1570362181Sdim#define STMT_147 \
1571251881Speter  "SELECT local_relpath, kind, def_repos_relpath, " \
1572251881Speter  "  (SELECT root FROM repository AS r WHERE r.id = e.repos_id) " \
1573251881Speter  "FROM externals e " \
1574251881Speter  "WHERE wc_id = ?1 " \
1575251881Speter  "  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)) " \
1576251881Speter  "  AND parent_relpath = ?2 " \
1577251881Speter  "  AND def_revision IS NULL " \
1578251881Speter  "  AND repos_id = (SELECT repos_id " \
1579251881Speter  "                    FROM nodes AS n " \
1580251881Speter  "                    WHERE n.wc_id = ?1 " \
1581251881Speter  "                      AND n.local_relpath = '' " \
1582251881Speter  "                      AND n.op_depth = 0) " \
1583251881Speter  "  AND ((kind='dir') " \
1584251881Speter  "       OR EXISTS (SELECT 1 FROM nodes " \
1585251881Speter  "                  WHERE nodes.wc_id = e.wc_id " \
1586251881Speter  "                  AND nodes.local_relpath = e.parent_relpath)) " \
1587251881Speter  ""
1588251881Speter
1589362181Sdim#define STMT_SELECT_EXTERNALS_DEFINED 148
1590362181Sdim#define STMT_148_INFO {"STMT_SELECT_EXTERNALS_DEFINED", NULL}
1591362181Sdim#define STMT_148 \
1592251881Speter  "SELECT local_relpath, def_local_relpath " \
1593251881Speter  "FROM externals " \
1594251881Speter  "WHERE (wc_id = ?1 AND def_local_relpath = ?2) " \
1595251881Speter  "   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))) " \
1596251881Speter  ""
1597251881Speter
1598362181Sdim#define STMT_DELETE_EXTERNAL 149
1599362181Sdim#define STMT_149_INFO {"STMT_DELETE_EXTERNAL", NULL}
1600362181Sdim#define STMT_149 \
1601251881Speter  "DELETE FROM externals " \
1602251881Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 " \
1603251881Speter  ""
1604251881Speter
1605362181Sdim#define STMT_SELECT_EXTERNAL_PROPERTIES 150
1606362181Sdim#define STMT_150_INFO {"STMT_SELECT_EXTERNAL_PROPERTIES", NULL}
1607362181Sdim#define STMT_150 \
1608251881Speter  "SELECT IFNULL((SELECT properties FROM actual_node a " \
1609251881Speter  "               WHERE a.wc_id = ?1 AND A.local_relpath = n.local_relpath), " \
1610251881Speter  "              properties), " \
1611251881Speter  "       local_relpath, depth " \
1612251881Speter  "FROM nodes_current n " \
1613251881Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 " \
1614251881Speter  "  AND kind = 'dir' AND presence IN ('normal', 'incomplete') " \
1615251881Speter  "UNION ALL " \
1616251881Speter  "SELECT IFNULL((SELECT properties FROM actual_node a " \
1617251881Speter  "               WHERE a.wc_id = ?1 AND A.local_relpath = n.local_relpath), " \
1618251881Speter  "              properties), " \
1619251881Speter  "       local_relpath, depth " \
1620251881Speter  "FROM nodes_current n " \
1621251881Speter  "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)) " \
1622251881Speter  "  AND kind = 'dir' AND presence IN ('normal', 'incomplete') " \
1623251881Speter  ""
1624251881Speter
1625362181Sdim#define STMT_SELECT_CURRENT_PROPS_RECURSIVE 151
1626362181Sdim#define STMT_151_INFO {"STMT_SELECT_CURRENT_PROPS_RECURSIVE", NULL}
1627362181Sdim#define STMT_151 \
1628251881Speter  "SELECT IFNULL((SELECT properties FROM actual_node a " \
1629251881Speter  "               WHERE a.wc_id = ?1 AND A.local_relpath = n.local_relpath), " \
1630251881Speter  "              properties), " \
1631251881Speter  "       local_relpath " \
1632251881Speter  "FROM nodes_current n " \
1633251881Speter  "WHERE (wc_id = ?1 AND local_relpath = ?2) " \
1634251881Speter  "   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))) " \
1635251881Speter  ""
1636251881Speter
1637362181Sdim#define STMT_PRAGMA_LOCKING_MODE 152
1638362181Sdim#define STMT_152_INFO {"STMT_PRAGMA_LOCKING_MODE", NULL}
1639362181Sdim#define STMT_152 \
1640298845Sdim  "PRAGMA locking_mode = exclusive; " \
1641298845Sdim  "PRAGMA journal_mode = DELETE " \
1642251881Speter  ""
1643251881Speter
1644362181Sdim#define STMT_FIND_REPOS_PATH_IN_WC 153
1645362181Sdim#define STMT_153_INFO {"STMT_FIND_REPOS_PATH_IN_WC", NULL}
1646362181Sdim#define STMT_153 \
1647362181Sdim  "SELECT local_relpath FROM nodes_current " \
1648362181Sdim  "  WHERE wc_id = ?1 AND repos_path = ?2 " \
1649362181Sdim  ""
1650362181Sdim
1651362181Sdim#define STMT_INSERT_ACTUAL_NODE 154
1652362181Sdim#define STMT_154_INFO {"STMT_INSERT_ACTUAL_NODE", NULL}
1653362181Sdim#define STMT_154 \
1654251881Speter  "INSERT OR REPLACE INTO actual_node ( " \
1655251881Speter  "  wc_id, local_relpath, parent_relpath, properties, changelist, conflict_data) " \
1656251881Speter  "VALUES (?1, ?2, ?3, ?4, ?5, ?6) " \
1657251881Speter  ""
1658251881Speter
1659362181Sdim#define STMT_SELECT_ALL_FILES 155
1660362181Sdim#define STMT_155_INFO {"STMT_SELECT_ALL_FILES", NULL}
1661362181Sdim#define STMT_155 \
1662251881Speter  "SELECT local_relpath FROM nodes_current " \
1663251881Speter  "WHERE wc_id = ?1 AND parent_relpath = ?2 AND kind = 'file' " \
1664251881Speter  ""
1665251881Speter
1666362181Sdim#define STMT_UPDATE_NODE_PROPS 156
1667362181Sdim#define STMT_156_INFO {"STMT_UPDATE_NODE_PROPS", NULL}
1668362181Sdim#define STMT_156 \
1669251881Speter  "UPDATE nodes SET properties = ?4 " \
1670251881Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \
1671251881Speter  ""
1672251881Speter
1673362181Sdim#define STMT_PRAGMA_TABLE_INFO_NODES 157
1674362181Sdim#define STMT_157_INFO {"STMT_PRAGMA_TABLE_INFO_NODES", NULL}
1675362181Sdim#define STMT_157 \
1676251881Speter  "PRAGMA table_info(\"NODES\") " \
1677251881Speter  ""
1678251881Speter
1679362181Sdim#define STMT_CREATE_TARGET_PROP_CACHE 158
1680362181Sdim#define STMT_158_INFO {"STMT_CREATE_TARGET_PROP_CACHE", NULL}
1681362181Sdim#define STMT_158 \
1682251881Speter  "DROP TABLE IF EXISTS target_prop_cache; " \
1683251881Speter  "CREATE TEMPORARY TABLE target_prop_cache ( " \
1684251881Speter  "  local_relpath TEXT NOT NULL PRIMARY KEY, " \
1685251881Speter  "  kind TEXT NOT NULL, " \
1686251881Speter  "  properties BLOB " \
1687251881Speter  "); " \
1688251881Speter  ""
1689251881Speter
1690362181Sdim#define STMT_CACHE_TARGET_PROPS 159
1691362181Sdim#define STMT_159_INFO {"STMT_CACHE_TARGET_PROPS", NULL}
1692362181Sdim#define STMT_159 \
1693251881Speter  "INSERT INTO target_prop_cache(local_relpath, kind, properties) " \
1694251881Speter  " SELECT n.local_relpath, n.kind, " \
1695251881Speter  "        IFNULL((SELECT properties FROM actual_node AS a " \
1696251881Speter  "                 WHERE a.wc_id = n.wc_id " \
1697251881Speter  "                   AND a.local_relpath = n.local_relpath), " \
1698251881Speter  "               n.properties) " \
1699251881Speter  "   FROM targets_list AS t " \
1700251881Speter  "   JOIN nodes AS n " \
1701251881Speter  "     ON n.wc_id = ?1 " \
1702251881Speter  "    AND n.local_relpath = t.local_relpath " \
1703251881Speter  "    AND n.op_depth = (SELECT MAX(op_depth) FROM nodes AS n3 " \
1704251881Speter  "                      WHERE n3.wc_id = ?1 " \
1705251881Speter  "                        AND n3.local_relpath = t.local_relpath) " \
1706251881Speter  "  WHERE t.wc_id = ?1 " \
1707251881Speter  "    AND (presence='normal' OR presence='incomplete') " \
1708251881Speter  "  ORDER BY t.local_relpath " \
1709251881Speter  ""
1710251881Speter
1711362181Sdim#define STMT_CACHE_TARGET_PRISTINE_PROPS 160
1712362181Sdim#define STMT_160_INFO {"STMT_CACHE_TARGET_PRISTINE_PROPS", NULL}
1713362181Sdim#define STMT_160 \
1714251881Speter  "INSERT INTO target_prop_cache(local_relpath, kind, properties) " \
1715251881Speter  " SELECT n.local_relpath, n.kind, " \
1716251881Speter  "        CASE n.presence " \
1717251881Speter  "          WHEN 'base-deleted' " \
1718251881Speter  "          THEN (SELECT properties FROM nodes AS p " \
1719251881Speter  "                 WHERE p.wc_id = n.wc_id " \
1720251881Speter  "                   AND p.local_relpath = n.local_relpath " \
1721251881Speter  "                   AND p.op_depth < n.op_depth " \
1722251881Speter  "                 ORDER BY p.op_depth DESC ) " \
1723251881Speter  "          ELSE properties END " \
1724251881Speter  "  FROM targets_list AS t " \
1725251881Speter  "  JOIN nodes AS n " \
1726251881Speter  "    ON n.wc_id = ?1 " \
1727251881Speter  "   AND n.local_relpath = t.local_relpath " \
1728251881Speter  "   AND n.op_depth = (SELECT MAX(op_depth) FROM nodes AS n3 " \
1729251881Speter  "                     WHERE n3.wc_id = ?1 " \
1730251881Speter  "                       AND n3.local_relpath = t.local_relpath) " \
1731251881Speter  "  WHERE t.wc_id = ?1 " \
1732251881Speter  "    AND (presence = 'normal' " \
1733251881Speter  "         OR presence = 'incomplete' " \
1734251881Speter  "         OR presence = 'base-deleted') " \
1735251881Speter  "  ORDER BY t.local_relpath " \
1736251881Speter  ""
1737251881Speter
1738362181Sdim#define STMT_SELECT_ALL_TARGET_PROP_CACHE 161
1739362181Sdim#define STMT_161_INFO {"STMT_SELECT_ALL_TARGET_PROP_CACHE", NULL}
1740362181Sdim#define STMT_161 \
1741251881Speter  "SELECT local_relpath, properties FROM target_prop_cache " \
1742251881Speter  "ORDER BY local_relpath " \
1743251881Speter  ""
1744251881Speter
1745362181Sdim#define STMT_DROP_TARGET_PROP_CACHE 162
1746362181Sdim#define STMT_162_INFO {"STMT_DROP_TARGET_PROP_CACHE", NULL}
1747362181Sdim#define STMT_162 \
1748251881Speter  "DROP TABLE target_prop_cache; " \
1749251881Speter  ""
1750251881Speter
1751362181Sdim#define STMT_CREATE_REVERT_LIST 163
1752362181Sdim#define STMT_163_INFO {"STMT_CREATE_REVERT_LIST", NULL}
1753362181Sdim#define STMT_163 \
1754251881Speter  "DROP TABLE IF EXISTS revert_list; " \
1755251881Speter  "CREATE TEMPORARY TABLE revert_list ( " \
1756251881Speter  "   local_relpath TEXT NOT NULL, " \
1757251881Speter  "   actual INTEGER NOT NULL, " \
1758251881Speter  "   conflict_data BLOB, " \
1759251881Speter  "   notify INTEGER, " \
1760251881Speter  "   op_depth INTEGER, " \
1761251881Speter  "   repos_id INTEGER, " \
1762251881Speter  "   kind TEXT, " \
1763251881Speter  "   PRIMARY KEY (local_relpath, actual) " \
1764251881Speter  "   ); " \
1765251881Speter  "DROP TRIGGER IF EXISTS   trigger_revert_list_nodes; " \
1766251881Speter  "CREATE TEMPORARY TRIGGER trigger_revert_list_nodes " \
1767251881Speter  "BEFORE DELETE ON nodes " \
1768251881Speter  "BEGIN " \
1769251881Speter  "   INSERT OR REPLACE INTO revert_list(local_relpath, actual, op_depth, " \
1770251881Speter  "                                      repos_id, kind) " \
1771251881Speter  "   SELECT OLD.local_relpath, 0, OLD.op_depth, OLD.repos_id, OLD.kind; " \
1772251881Speter  "END; " \
1773251881Speter  "DROP TRIGGER IF EXISTS   trigger_revert_list_actual_delete; " \
1774251881Speter  "CREATE TEMPORARY TRIGGER trigger_revert_list_actual_delete " \
1775251881Speter  "BEFORE DELETE ON actual_node " \
1776251881Speter  "BEGIN " \
1777251881Speter  "   INSERT OR REPLACE INTO revert_list(local_relpath, actual, conflict_data, " \
1778251881Speter  "                                      notify) " \
1779251881Speter  "   SELECT OLD.local_relpath, 1, OLD.conflict_data, " \
1780251881Speter  "          CASE " \
1781251881Speter  "            WHEN OLD.properties IS NOT NULL " \
1782251881Speter  "            THEN 1 " \
1783251881Speter  "            WHEN NOT EXISTS(SELECT 1 FROM NODES n " \
1784251881Speter  "                            WHERE n.wc_id = OLD.wc_id " \
1785251881Speter  "                              AND n.local_relpath = OLD.local_relpath) " \
1786251881Speter  "            THEN 1 " \
1787289180Speter  "          END notify " \
1788289180Speter  "   WHERE OLD.conflict_data IS NOT NULL " \
1789289180Speter  "      OR notify IS NOT NULL; " \
1790251881Speter  "END; " \
1791251881Speter  "DROP TRIGGER IF EXISTS   trigger_revert_list_actual_update; " \
1792251881Speter  "CREATE TEMPORARY TRIGGER trigger_revert_list_actual_update " \
1793251881Speter  "BEFORE UPDATE ON actual_node " \
1794251881Speter  "BEGIN " \
1795251881Speter  "   INSERT OR REPLACE INTO revert_list(local_relpath, actual, conflict_data, " \
1796251881Speter  "                                      notify) " \
1797251881Speter  "   SELECT OLD.local_relpath, 1, OLD.conflict_data, " \
1798251881Speter  "          CASE " \
1799251881Speter  "            WHEN OLD.properties IS NOT NULL " \
1800251881Speter  "            THEN 1 " \
1801251881Speter  "            WHEN NOT EXISTS(SELECT 1 FROM NODES n " \
1802251881Speter  "                            WHERE n.wc_id = OLD.wc_id " \
1803251881Speter  "                              AND n.local_relpath = OLD.local_relpath) " \
1804251881Speter  "            THEN 1 " \
1805289180Speter  "          END notify " \
1806289180Speter  "   WHERE OLD.conflict_data IS NOT NULL " \
1807289180Speter  "      OR notify IS NOT NULL; " \
1808251881Speter  "END " \
1809251881Speter  ""
1810251881Speter
1811362181Sdim#define STMT_DROP_REVERT_LIST_TRIGGERS 164
1812362181Sdim#define STMT_164_INFO {"STMT_DROP_REVERT_LIST_TRIGGERS", NULL}
1813362181Sdim#define STMT_164 \
1814251881Speter  "DROP TRIGGER trigger_revert_list_nodes; " \
1815251881Speter  "DROP TRIGGER trigger_revert_list_actual_delete; " \
1816251881Speter  "DROP TRIGGER trigger_revert_list_actual_update " \
1817251881Speter  ""
1818251881Speter
1819362181Sdim#define STMT_SELECT_REVERT_LIST 165
1820362181Sdim#define STMT_165_INFO {"STMT_SELECT_REVERT_LIST", NULL}
1821362181Sdim#define STMT_165 \
1822251881Speter  "SELECT actual, notify, kind, op_depth, repos_id, conflict_data " \
1823251881Speter  "FROM revert_list " \
1824251881Speter  "WHERE local_relpath = ?1 " \
1825251881Speter  "ORDER BY actual DESC " \
1826251881Speter  ""
1827251881Speter
1828362181Sdim#define STMT_SELECT_REVERT_LIST_COPIED_CHILDREN 166
1829362181Sdim#define STMT_166_INFO {"STMT_SELECT_REVERT_LIST_COPIED_CHILDREN", NULL}
1830362181Sdim#define STMT_166 \
1831251881Speter  "SELECT local_relpath, kind " \
1832251881Speter  "FROM revert_list " \
1833251881Speter  "WHERE (((local_relpath) > (CASE (?1) WHEN '' THEN '' ELSE (?1) || '/' END)) AND ((local_relpath) < CASE (?1) WHEN '' THEN X'FFFF' ELSE (?1) || '0' END)) " \
1834251881Speter  "  AND op_depth >= ?2 " \
1835251881Speter  "  AND repos_id IS NOT NULL " \
1836251881Speter  "ORDER BY local_relpath " \
1837251881Speter  ""
1838251881Speter
1839362181Sdim#define STMT_DELETE_REVERT_LIST 167
1840362181Sdim#define STMT_167_INFO {"STMT_DELETE_REVERT_LIST", NULL}
1841362181Sdim#define STMT_167 \
1842251881Speter  "DELETE FROM revert_list WHERE local_relpath = ?1 " \
1843251881Speter  ""
1844251881Speter
1845362181Sdim#define STMT_SELECT_REVERT_LIST_RECURSIVE 168
1846362181Sdim#define STMT_168_INFO {"STMT_SELECT_REVERT_LIST_RECURSIVE", NULL}
1847362181Sdim#define STMT_168 \
1848289180Speter  "SELECT p.local_relpath, n.kind, a.notify, a.kind " \
1849289180Speter  "FROM (SELECT DISTINCT local_relpath " \
1850289180Speter  "      FROM revert_list " \
1851289180Speter  "      WHERE (local_relpath = ?1 " \
1852289180Speter  "        OR (((local_relpath) > (CASE (?1) WHEN '' THEN '' ELSE (?1) || '/' END)) AND ((local_relpath) < CASE (?1) WHEN '' THEN X'FFFF' ELSE (?1) || '0' END)))) p " \
1853289180Speter  "LEFT JOIN revert_list n ON n.local_relpath=p.local_relpath AND n.actual=0 " \
1854289180Speter  "LEFT JOIN revert_list a ON a.local_relpath=p.local_relpath AND a.actual=1 " \
1855289180Speter  "ORDER BY p.local_relpath " \
1856251881Speter  ""
1857251881Speter
1858362181Sdim#define STMT_DELETE_REVERT_LIST_RECURSIVE 169
1859362181Sdim#define STMT_169_INFO {"STMT_DELETE_REVERT_LIST_RECURSIVE", NULL}
1860362181Sdim#define STMT_169 \
1861251881Speter  "DELETE FROM revert_list " \
1862251881Speter  "WHERE (local_relpath = ?1 " \
1863251881Speter  "       OR (((local_relpath) > (CASE (?1) WHEN '' THEN '' ELSE (?1) || '/' END)) AND ((local_relpath) < CASE (?1) WHEN '' THEN X'FFFF' ELSE (?1) || '0' END))) " \
1864251881Speter  ""
1865251881Speter
1866362181Sdim#define STMT_DROP_REVERT_LIST 170
1867362181Sdim#define STMT_170_INFO {"STMT_DROP_REVERT_LIST", NULL}
1868362181Sdim#define STMT_170 \
1869251881Speter  "DROP TABLE IF EXISTS revert_list " \
1870251881Speter  ""
1871251881Speter
1872362181Sdim#define STMT_CREATE_DELETE_LIST 171
1873362181Sdim#define STMT_171_INFO {"STMT_CREATE_DELETE_LIST", NULL}
1874362181Sdim#define STMT_171 \
1875251881Speter  "DROP TABLE IF EXISTS delete_list; " \
1876251881Speter  "CREATE TEMPORARY TABLE delete_list ( " \
1877251881Speter  "   local_relpath TEXT PRIMARY KEY NOT NULL UNIQUE " \
1878251881Speter  "   ) " \
1879251881Speter  ""
1880251881Speter
1881362181Sdim#define STMT_INSERT_DELETE_LIST 172
1882362181Sdim#define STMT_172_INFO {"STMT_INSERT_DELETE_LIST", NULL}
1883362181Sdim#define STMT_172 \
1884251881Speter  "INSERT INTO delete_list(local_relpath) " \
1885289180Speter  "SELECT ?2 " \
1886289180Speter  "UNION ALL " \
1887251881Speter  "SELECT local_relpath FROM nodes AS n " \
1888251881Speter  "WHERE wc_id = ?1 " \
1889289180Speter  "  AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
1890251881Speter  "  AND op_depth >= ?3 " \
1891251881Speter  "  AND op_depth = (SELECT MAX(s.op_depth) FROM nodes AS s " \
1892251881Speter  "                  WHERE s.wc_id = ?1 " \
1893251881Speter  "                    AND s.local_relpath = n.local_relpath) " \
1894251881Speter  "  AND presence NOT IN ('base-deleted', 'not-present', 'excluded', 'server-excluded') " \
1895251881Speter  "  AND file_external IS NULL " \
1896289180Speter  "ORDER by local_relpath " \
1897251881Speter  ""
1898251881Speter
1899362181Sdim#define STMT_SELECT_DELETE_LIST 173
1900362181Sdim#define STMT_173_INFO {"STMT_SELECT_DELETE_LIST", NULL}
1901362181Sdim#define STMT_173 \
1902251881Speter  "SELECT local_relpath FROM delete_list " \
1903251881Speter  "ORDER BY local_relpath " \
1904251881Speter  ""
1905251881Speter
1906362181Sdim#define STMT_FINALIZE_DELETE 174
1907362181Sdim#define STMT_174_INFO {"STMT_FINALIZE_DELETE", NULL}
1908362181Sdim#define STMT_174 \
1909251881Speter  "DROP TABLE IF EXISTS delete_list " \
1910251881Speter  ""
1911251881Speter
1912362181Sdim#define STMT_CREATE_UPDATE_MOVE_LIST 175
1913362181Sdim#define STMT_175_INFO {"STMT_CREATE_UPDATE_MOVE_LIST", NULL}
1914362181Sdim#define STMT_175 \
1915251881Speter  "DROP TABLE IF EXISTS update_move_list; " \
1916251881Speter  "CREATE TEMPORARY TABLE update_move_list ( " \
1917251881Speter  "  local_relpath TEXT PRIMARY KEY NOT NULL UNIQUE, " \
1918251881Speter  "  action INTEGER NOT NULL, " \
1919289180Speter  "  kind TEXT NOT NULL, " \
1920251881Speter  "  content_state INTEGER NOT NULL, " \
1921251881Speter  "  prop_state  INTEGER NOT NULL " \
1922251881Speter  "  ) " \
1923251881Speter  ""
1924251881Speter
1925362181Sdim#define STMT_INSERT_UPDATE_MOVE_LIST 176
1926362181Sdim#define STMT_176_INFO {"STMT_INSERT_UPDATE_MOVE_LIST", NULL}
1927362181Sdim#define STMT_176 \
1928251881Speter  "INSERT INTO update_move_list(local_relpath, action, kind, content_state, " \
1929251881Speter  "  prop_state) " \
1930251881Speter  "VALUES (?1, ?2, ?3, ?4, ?5) " \
1931251881Speter  ""
1932251881Speter
1933362181Sdim#define STMT_SELECT_UPDATE_MOVE_LIST 177
1934362181Sdim#define STMT_177_INFO {"STMT_SELECT_UPDATE_MOVE_LIST", NULL}
1935362181Sdim#define STMT_177 \
1936251881Speter  "SELECT local_relpath, action, kind, content_state, prop_state " \
1937251881Speter  "FROM update_move_list " \
1938251881Speter  "ORDER BY local_relpath " \
1939251881Speter  ""
1940251881Speter
1941362181Sdim#define STMT_FINALIZE_UPDATE_MOVE 178
1942362181Sdim#define STMT_178_INFO {"STMT_FINALIZE_UPDATE_MOVE", NULL}
1943362181Sdim#define STMT_178 \
1944251881Speter  "DROP TABLE IF EXISTS update_move_list " \
1945251881Speter  ""
1946251881Speter
1947362181Sdim#define STMT_MOVE_NOTIFY_TO_REVERT 179
1948362181Sdim#define STMT_179_INFO {"STMT_MOVE_NOTIFY_TO_REVERT", NULL}
1949362181Sdim#define STMT_179 \
1950289180Speter  "INSERT INTO revert_list (local_relpath, notify, kind, actual) " \
1951289180Speter  "       SELECT local_relpath, 2, kind, 1 FROM update_move_list; " \
1952289180Speter  "DROP TABLE update_move_list " \
1953289180Speter  ""
1954289180Speter
1955362181Sdim#define STMT_SELECT_MIN_MAX_REVISIONS 180
1956362181Sdim#define STMT_180_INFO {"STMT_SELECT_MIN_MAX_REVISIONS", NULL}
1957362181Sdim#define STMT_180 \
1958251881Speter  "SELECT MIN(revision), MAX(revision), " \
1959251881Speter  "       MIN(changed_revision), MAX(changed_revision) FROM nodes " \
1960251881Speter  "  WHERE wc_id = ?1 " \
1961251881Speter  "    AND (local_relpath = ?2 " \
1962251881Speter  "         OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
1963251881Speter  "    AND presence IN ('normal', 'incomplete') " \
1964251881Speter  "    AND file_external IS NULL " \
1965251881Speter  "    AND op_depth = 0 " \
1966251881Speter  ""
1967251881Speter
1968362181Sdim#define STMT_HAS_SPARSE_NODES 181
1969362181Sdim#define STMT_181_INFO {"STMT_HAS_SPARSE_NODES", NULL}
1970362181Sdim#define STMT_181 \
1971251881Speter  "SELECT 1 FROM nodes " \
1972251881Speter  "WHERE wc_id = ?1 " \
1973251881Speter  "  AND (local_relpath = ?2 " \
1974251881Speter  "       OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
1975251881Speter  "  AND op_depth = 0 " \
1976251881Speter  "  AND (presence IN ('server-excluded', 'excluded') " \
1977251881Speter  "        OR depth NOT IN ('infinity', 'unknown')) " \
1978251881Speter  "  AND file_external IS NULL " \
1979251881Speter  "LIMIT 1 " \
1980251881Speter  ""
1981251881Speter
1982362181Sdim#define STMT_SUBTREE_HAS_TREE_MODIFICATIONS 182
1983362181Sdim#define STMT_182_INFO {"STMT_SUBTREE_HAS_TREE_MODIFICATIONS", NULL}
1984362181Sdim#define STMT_182 \
1985251881Speter  "SELECT 1 FROM nodes " \
1986251881Speter  "WHERE wc_id = ?1 " \
1987251881Speter  "  AND (local_relpath = ?2 " \
1988251881Speter  "       OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
1989251881Speter  "  AND op_depth > 0 " \
1990251881Speter  "LIMIT 1 " \
1991251881Speter  ""
1992251881Speter
1993362181Sdim#define STMT_SUBTREE_HAS_PROP_MODIFICATIONS 183
1994362181Sdim#define STMT_183_INFO {"STMT_SUBTREE_HAS_PROP_MODIFICATIONS", NULL}
1995362181Sdim#define STMT_183 \
1996251881Speter  "SELECT 1 FROM actual_node " \
1997251881Speter  "WHERE wc_id = ?1 " \
1998251881Speter  "  AND (local_relpath = ?2 " \
1999251881Speter  "       OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
2000251881Speter  "  AND properties IS NOT NULL " \
2001251881Speter  "LIMIT 1 " \
2002251881Speter  ""
2003251881Speter
2004362181Sdim#define STMT_HAS_SWITCHED 184
2005362181Sdim#define STMT_184_INFO {"STMT_HAS_SWITCHED", NULL}
2006362181Sdim#define STMT_184 \
2007251881Speter  "SELECT 1 " \
2008251881Speter  "FROM nodes " \
2009251881Speter  "WHERE wc_id = ?1 " \
2010251881Speter  "  AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
2011251881Speter  "  AND op_depth = 0 " \
2012251881Speter  "  AND file_external IS NULL " \
2013251881Speter  "  AND presence IN ('normal', 'incomplete') " \
2014251881Speter  "  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) " \
2015251881Speter  "LIMIT 1 " \
2016251881Speter  ""
2017251881Speter
2018362181Sdim#define STMT_SELECT_MOVED_FROM_RELPATH 185
2019362181Sdim#define STMT_185_INFO {"STMT_SELECT_MOVED_FROM_RELPATH", NULL}
2020362181Sdim#define STMT_185 \
2021251881Speter  "SELECT local_relpath, op_depth FROM nodes " \
2022251881Speter  "WHERE wc_id = ?1 AND moved_to = ?2 AND op_depth > 0 " \
2023251881Speter  ""
2024251881Speter
2025362181Sdim#define STMT_UPDATE_MOVED_TO_RELPATH 186
2026362181Sdim#define STMT_186_INFO {"STMT_UPDATE_MOVED_TO_RELPATH", NULL}
2027362181Sdim#define STMT_186 \
2028251881Speter  "UPDATE nodes SET moved_to = ?4 " \
2029251881Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \
2030251881Speter  ""
2031251881Speter
2032362181Sdim#define STMT_CLEAR_MOVED_TO_RELPATH 187
2033362181Sdim#define STMT_187_INFO {"STMT_CLEAR_MOVED_TO_RELPATH", NULL}
2034362181Sdim#define STMT_187 \
2035251881Speter  "UPDATE nodes SET moved_to = NULL " \
2036251881Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \
2037251881Speter  ""
2038251881Speter
2039362181Sdim#define STMT_CLEAR_MOVED_HERE_RECURSIVE 188
2040362181Sdim#define STMT_188_INFO {"STMT_CLEAR_MOVED_HERE_RECURSIVE", NULL}
2041362181Sdim#define STMT_188 \
2042251881Speter  "UPDATE nodes SET moved_here = NULL " \
2043251881Speter  "WHERE wc_id = ?1 " \
2044251881Speter  " 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))) " \
2045251881Speter  " AND op_depth = ?3 " \
2046251881Speter  ""
2047251881Speter
2048362181Sdim#define STMT_SELECT_MOVED_HERE_CHILDREN 189
2049362181Sdim#define STMT_189_INFO {"STMT_SELECT_MOVED_HERE_CHILDREN", NULL}
2050362181Sdim#define STMT_189 \
2051251881Speter  "SELECT moved_to, local_relpath FROM nodes " \
2052251881Speter  "WHERE wc_id = ?1 AND op_depth > 0 " \
2053251881Speter  "  AND (((moved_to) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((moved_to) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
2054251881Speter  ""
2055251881Speter
2056362181Sdim#define STMT_SELECT_MOVED_FOR_DELETE 190
2057362181Sdim#define STMT_190_INFO {"STMT_SELECT_MOVED_FOR_DELETE", NULL}
2058362181Sdim#define STMT_190 \
2059266731Speter  "SELECT local_relpath, moved_to, op_depth, " \
2060266731Speter  "       (SELECT CASE WHEN r.moved_here THEN r.op_depth END FROM nodes r " \
2061266731Speter  "        WHERE r.wc_id = ?1 " \
2062266731Speter  "          AND r.local_relpath = n.local_relpath " \
2063266731Speter  "          AND r.op_depth < n.op_depth " \
2064266731Speter  "        ORDER BY r.op_depth DESC LIMIT 1) AS moved_here_op_depth " \
2065266731Speter  " FROM nodes n " \
2066251881Speter  "WHERE wc_id = ?1 " \
2067251881Speter  "  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))) " \
2068251881Speter  "  AND moved_to IS NOT NULL " \
2069266731Speter  "  AND op_depth >= ?3 " \
2070251881Speter  ""
2071251881Speter
2072362181Sdim#define STMT_SELECT_MOVED_FROM_FOR_DELETE 191
2073362181Sdim#define STMT_191_INFO {"STMT_SELECT_MOVED_FROM_FOR_DELETE", NULL}
2074362181Sdim#define STMT_191 \
2075266731Speter  "SELECT local_relpath, op_depth, " \
2076266731Speter  "       (SELECT CASE WHEN r.moved_here THEN r.op_depth END FROM nodes r " \
2077266731Speter  "        WHERE r.wc_id = ?1 " \
2078266731Speter  "          AND r.local_relpath = n.local_relpath " \
2079266731Speter  "          AND r.op_depth < n.op_depth " \
2080266731Speter  "        ORDER BY r.op_depth DESC LIMIT 1) AS moved_here_op_depth " \
2081266731Speter  " FROM nodes n " \
2082266731Speter  "WHERE wc_id = ?1 AND moved_to = ?2 AND op_depth > 0 " \
2083266731Speter  ""
2084266731Speter
2085362181Sdim#define STMT_UPDATE_MOVED_TO_DESCENDANTS 192
2086362181Sdim#define STMT_192_INFO {"STMT_UPDATE_MOVED_TO_DESCENDANTS", NULL}
2087362181Sdim#define STMT_192 \
2088251881Speter  "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) " \
2089251881Speter  " WHERE wc_id = ?1 " \
2090251881Speter  "   AND (((moved_to) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((moved_to) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
2091251881Speter  ""
2092251881Speter
2093362181Sdim#define STMT_CLEAR_MOVED_TO_DESCENDANTS 193
2094362181Sdim#define STMT_193_INFO {"STMT_CLEAR_MOVED_TO_DESCENDANTS", NULL}
2095362181Sdim#define STMT_193 \
2096251881Speter  "UPDATE nodes SET moved_to = NULL " \
2097251881Speter  " WHERE wc_id = ?1 " \
2098251881Speter  "   AND (((moved_to) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((moved_to) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
2099251881Speter  ""
2100251881Speter
2101362181Sdim#define STMT_SELECT_MOVED_PAIR3 194
2102362181Sdim#define STMT_194_INFO {"STMT_SELECT_MOVED_PAIR3", NULL}
2103362181Sdim#define STMT_194 \
2104289180Speter  "SELECT n.local_relpath, d.moved_to, d.op_depth, n.kind " \
2105289180Speter  "FROM nodes n " \
2106289180Speter  "JOIN nodes d ON d.wc_id = ?1 AND d.local_relpath = n.local_relpath " \
2107289180Speter  " AND d.op_depth = (SELECT MIN(dd.op_depth) " \
2108289180Speter  "                    FROM nodes dd " \
2109289180Speter  "                    WHERE dd.wc_id = ?1 " \
2110289180Speter  "                      AND dd.local_relpath = d.local_relpath " \
2111289180Speter  "                      AND dd.op_depth > ?3) " \
2112289180Speter  "WHERE n.wc_id = ?1 AND n.local_relpath = ?2 AND n.op_depth = ?3 " \
2113289180Speter  "  AND d.moved_to IS NOT NULL " \
2114262250Speter  "UNION ALL " \
2115289180Speter  "SELECT n.local_relpath, d.moved_to, d.op_depth, n.kind " \
2116289180Speter  "FROM nodes n " \
2117289180Speter  "JOIN nodes d ON d.wc_id = ?1 AND d.local_relpath = n.local_relpath " \
2118289180Speter  " AND d.op_depth = (SELECT MIN(dd.op_depth) " \
2119289180Speter  "                    FROM nodes dd " \
2120289180Speter  "                    WHERE dd.wc_id = ?1 " \
2121289180Speter  "                      AND dd.local_relpath = d.local_relpath " \
2122289180Speter  "                      AND dd.op_depth > ?3) " \
2123289180Speter  "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)) " \
2124289180Speter  "  AND n.op_depth = ?3 " \
2125289180Speter  "  AND d.moved_to IS NOT NULL " \
2126289180Speter  "ORDER BY n.local_relpath " \
2127251881Speter  ""
2128251881Speter
2129362181Sdim#define STMT_SELECT_MOVED_OUTSIDE 195
2130362181Sdim#define STMT_195_INFO {"STMT_SELECT_MOVED_OUTSIDE", NULL}
2131362181Sdim#define STMT_195 \
2132257936Speter  "SELECT local_relpath, moved_to, op_depth FROM nodes " \
2133251881Speter  "WHERE wc_id = ?1 " \
2134251881Speter  "  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))) " \
2135251881Speter  "  AND op_depth >= ?3 " \
2136251881Speter  "  AND moved_to IS NOT NULL " \
2137251881Speter  "  AND NOT (((moved_to) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((moved_to) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
2138251881Speter  ""
2139251881Speter
2140362181Sdim#define STMT_SELECT_MOVED_DESCENDANTS_SRC 196
2141362181Sdim#define STMT_196_INFO {"STMT_SELECT_MOVED_DESCENDANTS_SRC", NULL}
2142362181Sdim#define STMT_196 \
2143289180Speter  "SELECT s.op_depth, n.local_relpath, n.kind, n.repos_path, s.moved_to " \
2144289180Speter  "FROM nodes n " \
2145289180Speter  "JOIN nodes s ON s.wc_id = n.wc_id AND s.local_relpath = n.local_relpath " \
2146289180Speter  " AND s.op_depth = (SELECT MIN(d.op_depth) " \
2147289180Speter  "                    FROM nodes d " \
2148289180Speter  "                    WHERE d.wc_id = ?1 " \
2149289180Speter  "                      AND d.local_relpath = s.local_relpath " \
2150289180Speter  "                      AND d.op_depth > ?3) " \
2151289180Speter  "WHERE n.wc_id = ?1 AND n.op_depth = ?3 " \
2152289180Speter  "  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))) " \
2153289180Speter  "  AND s.moved_to IS NOT NULL " \
2154251881Speter  ""
2155251881Speter
2156362181Sdim#define STMT_COMMIT_UPDATE_ORIGIN 197
2157362181Sdim#define STMT_197_INFO {"STMT_COMMIT_UPDATE_ORIGIN", NULL}
2158362181Sdim#define STMT_197 \
2159251881Speter  "UPDATE nodes SET repos_id = ?4, " \
2160289180Speter  "                 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), " \
2161251881Speter  "                 revision = ?6 " \
2162251881Speter  "WHERE wc_id = ?1 " \
2163251881Speter  "  AND (local_relpath = ?2 " \
2164251881Speter  "       OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
2165251881Speter  "  AND op_depth = ?3 " \
2166251881Speter  ""
2167251881Speter
2168362181Sdim#define STMT_HAS_LAYER_BETWEEN 198
2169362181Sdim#define STMT_198_INFO {"STMT_HAS_LAYER_BETWEEN", NULL}
2170362181Sdim#define STMT_198 \
2171251881Speter  "SELECT 1 FROM NODES " \
2172251881Speter  "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth > ?3 AND op_depth < ?4 " \
2173251881Speter  ""
2174251881Speter
2175362181Sdim#define STMT_SELECT_REPOS_PATH_REVISION 199
2176362181Sdim#define STMT_199_INFO {"STMT_SELECT_REPOS_PATH_REVISION", NULL}
2177362181Sdim#define STMT_199 \
2178251881Speter  "SELECT local_relpath, repos_path, revision FROM nodes " \
2179251881Speter  "WHERE wc_id = ?1 " \
2180251881Speter  "  AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
2181251881Speter  "  AND op_depth = 0 " \
2182251881Speter  "ORDER BY local_relpath " \
2183251881Speter  ""
2184251881Speter
2185362181Sdim#define STMT_SELECT_HAS_NON_FILE_CHILDREN 200
2186362181Sdim#define STMT_200_INFO {"STMT_SELECT_HAS_NON_FILE_CHILDREN", NULL}
2187362181Sdim#define STMT_200 \
2188251881Speter  "SELECT 1 FROM nodes " \
2189289180Speter  "WHERE wc_id = ?1 AND parent_relpath = ?2 AND op_depth = ?3 AND kind != 'file' " \
2190289180Speter  "LIMIT 1 " \
2191251881Speter  ""
2192251881Speter
2193362181Sdim#define STMT_SELECT_HAS_GRANDCHILDREN 201
2194362181Sdim#define STMT_201_INFO {"STMT_SELECT_HAS_GRANDCHILDREN", NULL}
2195362181Sdim#define STMT_201 \
2196251881Speter  "SELECT 1 FROM nodes " \
2197251881Speter  "WHERE wc_id = ?1 " \
2198251881Speter  "  AND (((parent_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((parent_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
2199289180Speter  "  AND op_depth = ?3 " \
2200251881Speter  "  AND file_external IS NULL " \
2201289180Speter  "LIMIT 1 " \
2202251881Speter  ""
2203251881Speter
2204362181Sdim#define STMT_SELECT_ALL_NODES 202
2205362181Sdim#define STMT_202_INFO {"STMT_SELECT_ALL_NODES", NULL}
2206362181Sdim#define STMT_202 \
2207251881Speter  "SELECT op_depth, local_relpath, parent_relpath, file_external FROM nodes " \
2208251881Speter  "WHERE wc_id = ?1 " \
2209251881Speter  ""
2210251881Speter
2211362181Sdim#define STMT_UPDATE_IPROP 203
2212362181Sdim#define STMT_203_INFO {"STMT_UPDATE_IPROP", NULL}
2213362181Sdim#define STMT_203 \
2214251881Speter  "UPDATE nodes " \
2215251881Speter  "SET inherited_props = ?3 " \
2216251881Speter  "WHERE (wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0) " \
2217251881Speter  ""
2218251881Speter
2219362181Sdim#define STMT_SELECT_IPROPS_NODE 204
2220362181Sdim#define STMT_204_INFO {"STMT_SELECT_IPROPS_NODE", NULL}
2221362181Sdim#define STMT_204 \
2222251881Speter  "SELECT local_relpath, repos_path FROM nodes " \
2223251881Speter  "WHERE wc_id = ?1 " \
2224251881Speter  "  AND local_relpath = ?2 " \
2225251881Speter  "  AND op_depth = 0 " \
2226251881Speter  "  AND (inherited_props not null) " \
2227251881Speter  ""
2228251881Speter
2229362181Sdim#define STMT_SELECT_IPROPS_RECURSIVE 205
2230362181Sdim#define STMT_205_INFO {"STMT_SELECT_IPROPS_RECURSIVE", NULL}
2231362181Sdim#define STMT_205 \
2232251881Speter  "SELECT local_relpath, repos_path FROM nodes " \
2233251881Speter  "WHERE wc_id = ?1 " \
2234251881Speter  "  AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
2235251881Speter  "  AND op_depth = 0 " \
2236251881Speter  "  AND (inherited_props not null) " \
2237251881Speter  ""
2238251881Speter
2239362181Sdim#define STMT_SELECT_IPROPS_CHILDREN 206
2240362181Sdim#define STMT_206_INFO {"STMT_SELECT_IPROPS_CHILDREN", NULL}
2241362181Sdim#define STMT_206 \
2242251881Speter  "SELECT local_relpath, repos_path FROM nodes " \
2243251881Speter  "WHERE wc_id = ?1 " \
2244251881Speter  "  AND parent_relpath = ?2 " \
2245251881Speter  "  AND op_depth = 0 " \
2246251881Speter  "  AND (inherited_props not null) " \
2247251881Speter  ""
2248251881Speter
2249362181Sdim#define STMT_HAVE_STAT1_TABLE 207
2250362181Sdim#define STMT_207_INFO {"STMT_HAVE_STAT1_TABLE", NULL}
2251362181Sdim#define STMT_207 \
2252286506Speter  "SELECT 1 FROM sqlite_master WHERE name='sqlite_stat1' AND type='table' " \
2253286506Speter  "LIMIT 1 " \
2254286506Speter  ""
2255286506Speter
2256362181Sdim#define STMT_SELECT_COPIES_OF_REPOS_RELPATH 208
2257362181Sdim#define STMT_208_INFO {"STMT_SELECT_COPIES_OF_REPOS_RELPATH", NULL}
2258362181Sdim#define STMT_208 \
2259362181Sdim  "SELECT local_relpath " \
2260362181Sdim  "FROM nodes n " \
2261362181Sdim  "WHERE wc_id = ?1 AND repos_path = ?2 AND kind = ?3 " \
2262362181Sdim  "  AND presence = 'normal' " \
2263362181Sdim  "  AND op_depth = (SELECT MAX(op_depth) " \
2264362181Sdim  "                  FROM NODES w " \
2265362181Sdim  "                  WHERE w.wc_id = ?1 " \
2266362181Sdim  "                    AND w.local_relpath = n.local_relpath) " \
2267362181Sdim  "ORDER BY local_relpath ASC " \
2268362181Sdim  ""
2269362181Sdim
2270362181Sdim#define STMT_CREATE_SCHEMA 209
2271362181Sdim#define STMT_209_INFO {"STMT_CREATE_SCHEMA", NULL}
2272362181Sdim#define STMT_209 \
2273251881Speter  "CREATE TABLE REPOSITORY ( " \
2274251881Speter  "  id INTEGER PRIMARY KEY AUTOINCREMENT, " \
2275251881Speter  "  root  TEXT UNIQUE NOT NULL, " \
2276251881Speter  "  uuid  TEXT NOT NULL " \
2277251881Speter  "  ); " \
2278251881Speter  "CREATE INDEX I_UUID ON REPOSITORY (uuid); " \
2279251881Speter  "CREATE INDEX I_ROOT ON REPOSITORY (root); " \
2280251881Speter  "CREATE TABLE WCROOT ( " \
2281251881Speter  "  id  INTEGER PRIMARY KEY AUTOINCREMENT, " \
2282251881Speter  "  local_abspath  TEXT UNIQUE " \
2283251881Speter  "  ); " \
2284251881Speter  "CREATE UNIQUE INDEX I_LOCAL_ABSPATH ON WCROOT (local_abspath); " \
2285251881Speter  "CREATE TABLE PRISTINE ( " \
2286251881Speter  "  checksum  TEXT NOT NULL PRIMARY KEY, " \
2287251881Speter  "  compression  INTEGER, " \
2288251881Speter  "  size  INTEGER NOT NULL, " \
2289251881Speter  "  refcount  INTEGER NOT NULL, " \
2290251881Speter  "  md5_checksum  TEXT NOT NULL " \
2291251881Speter  "  ); " \
2292251881Speter  "CREATE INDEX I_PRISTINE_MD5 ON PRISTINE (md5_checksum); " \
2293251881Speter  "CREATE TABLE ACTUAL_NODE ( " \
2294251881Speter  "  wc_id  INTEGER NOT NULL REFERENCES WCROOT (id), " \
2295251881Speter  "  local_relpath  TEXT NOT NULL, " \
2296251881Speter  "  parent_relpath  TEXT, " \
2297251881Speter  "  properties  BLOB, " \
2298251881Speter  "  conflict_old  TEXT, " \
2299251881Speter  "  conflict_new  TEXT, " \
2300251881Speter  "  conflict_working  TEXT, " \
2301251881Speter  "  prop_reject  TEXT, " \
2302251881Speter  "  changelist  TEXT, " \
2303251881Speter  "  text_mod  TEXT, " \
2304251881Speter  "  tree_conflict_data  TEXT, " \
2305251881Speter  "  conflict_data  BLOB, " \
2306251881Speter  "  older_checksum  TEXT REFERENCES PRISTINE (checksum), " \
2307251881Speter  "  left_checksum  TEXT REFERENCES PRISTINE (checksum), " \
2308251881Speter  "  right_checksum  TEXT REFERENCES PRISTINE (checksum), " \
2309251881Speter  "  PRIMARY KEY (wc_id, local_relpath) " \
2310251881Speter  "  ); " \
2311251881Speter  "CREATE UNIQUE INDEX I_ACTUAL_PARENT ON ACTUAL_NODE (wc_id, parent_relpath, " \
2312251881Speter  "                                                    local_relpath); " \
2313251881Speter  "CREATE TABLE LOCK ( " \
2314251881Speter  "  repos_id  INTEGER NOT NULL REFERENCES REPOSITORY (id), " \
2315251881Speter  "  repos_relpath  TEXT NOT NULL, " \
2316251881Speter  "  lock_token  TEXT NOT NULL, " \
2317251881Speter  "  lock_owner  TEXT, " \
2318251881Speter  "  lock_comment  TEXT, " \
2319251881Speter  "  lock_date  INTEGER, " \
2320251881Speter  "  PRIMARY KEY (repos_id, repos_relpath) " \
2321251881Speter  "  ); " \
2322251881Speter  "CREATE TABLE WORK_QUEUE ( " \
2323251881Speter  "  id  INTEGER PRIMARY KEY AUTOINCREMENT, " \
2324251881Speter  "  work  BLOB NOT NULL " \
2325251881Speter  "  ); " \
2326251881Speter  "CREATE TABLE WC_LOCK ( " \
2327251881Speter  "  wc_id  INTEGER NOT NULL  REFERENCES WCROOT (id), " \
2328251881Speter  "  local_dir_relpath  TEXT NOT NULL, " \
2329251881Speter  "  locked_levels  INTEGER NOT NULL DEFAULT -1, " \
2330251881Speter  "  PRIMARY KEY (wc_id, local_dir_relpath) " \
2331251881Speter  " ); " \
2332251881Speter  "CREATE TABLE NODES ( " \
2333251881Speter  "  wc_id  INTEGER NOT NULL REFERENCES WCROOT (id), " \
2334251881Speter  "  local_relpath  TEXT NOT NULL, " \
2335251881Speter  "  op_depth INTEGER NOT NULL, " \
2336251881Speter  "  parent_relpath  TEXT, " \
2337251881Speter  "  repos_id  INTEGER REFERENCES REPOSITORY (id), " \
2338251881Speter  "  repos_path  TEXT, " \
2339251881Speter  "  revision  INTEGER, " \
2340251881Speter  "  presence  TEXT NOT NULL, " \
2341251881Speter  "  moved_here  INTEGER, " \
2342251881Speter  "  moved_to  TEXT, " \
2343251881Speter  "  kind  TEXT NOT NULL, " \
2344251881Speter  "  properties  BLOB, " \
2345251881Speter  "  depth  TEXT, " \
2346251881Speter  "  checksum  TEXT REFERENCES PRISTINE (checksum), " \
2347251881Speter  "  symlink_target  TEXT, " \
2348251881Speter  "  changed_revision  INTEGER, " \
2349251881Speter  "  changed_date      INTEGER, " \
2350251881Speter  "  changed_author    TEXT, " \
2351251881Speter  "  translated_size  INTEGER, " \
2352251881Speter  "  last_mod_time  INTEGER, " \
2353251881Speter  "  dav_cache  BLOB, " \
2354251881Speter  "  file_external  INTEGER, " \
2355251881Speter  "  inherited_props  BLOB, " \
2356251881Speter  "  PRIMARY KEY (wc_id, local_relpath, op_depth) " \
2357251881Speter  "  ); " \
2358251881Speter  "CREATE UNIQUE INDEX I_NODES_PARENT ON NODES (wc_id, parent_relpath, " \
2359251881Speter  "                                             local_relpath, op_depth); " \
2360251881Speter  "CREATE UNIQUE INDEX I_NODES_MOVED ON NODES (wc_id, moved_to, op_depth); " \
2361251881Speter  "CREATE VIEW NODES_CURRENT AS " \
2362251881Speter  "  SELECT * FROM nodes AS n " \
2363251881Speter  "    WHERE op_depth = (SELECT MAX(op_depth) FROM nodes AS n2 " \
2364251881Speter  "                      WHERE n2.wc_id = n.wc_id " \
2365251881Speter  "                        AND n2.local_relpath = n.local_relpath); " \
2366251881Speter  "CREATE VIEW NODES_BASE AS " \
2367251881Speter  "  SELECT * FROM nodes " \
2368251881Speter  "  WHERE op_depth = 0; " \
2369251881Speter  "CREATE TRIGGER nodes_insert_trigger " \
2370251881Speter  "AFTER INSERT ON nodes " \
2371251881Speter  "WHEN NEW.checksum IS NOT NULL " \
2372251881Speter  "BEGIN " \
2373251881Speter  "  UPDATE pristine SET refcount = refcount + 1 " \
2374251881Speter  "  WHERE checksum = NEW.checksum; " \
2375251881Speter  "END; " \
2376251881Speter  "CREATE TRIGGER nodes_delete_trigger " \
2377251881Speter  "AFTER DELETE ON nodes " \
2378251881Speter  "WHEN OLD.checksum IS NOT NULL " \
2379251881Speter  "BEGIN " \
2380251881Speter  "  UPDATE pristine SET refcount = refcount - 1 " \
2381251881Speter  "  WHERE checksum = OLD.checksum; " \
2382251881Speter  "END; " \
2383251881Speter  "CREATE TRIGGER nodes_update_checksum_trigger " \
2384251881Speter  "AFTER UPDATE OF checksum ON nodes " \
2385251881Speter  "WHEN NEW.checksum IS NOT OLD.checksum " \
2386251881Speter  "BEGIN " \
2387251881Speter  "  UPDATE pristine SET refcount = refcount + 1 " \
2388251881Speter  "  WHERE checksum = NEW.checksum; " \
2389251881Speter  "  UPDATE pristine SET refcount = refcount - 1 " \
2390251881Speter  "  WHERE checksum = OLD.checksum; " \
2391251881Speter  "END; " \
2392251881Speter  "CREATE TABLE EXTERNALS ( " \
2393251881Speter  "  wc_id  INTEGER NOT NULL REFERENCES WCROOT (id), " \
2394251881Speter  "  local_relpath  TEXT NOT NULL, " \
2395251881Speter  "  parent_relpath  TEXT NOT NULL, " \
2396251881Speter  "  repos_id  INTEGER NOT NULL REFERENCES REPOSITORY (id), " \
2397251881Speter  "  presence  TEXT NOT NULL, " \
2398251881Speter  "  kind  TEXT NOT NULL, " \
2399251881Speter  "  def_local_relpath         TEXT NOT NULL, " \
2400251881Speter  "  def_repos_relpath         TEXT NOT NULL, " \
2401251881Speter  "  def_operational_revision  TEXT, " \
2402251881Speter  "  def_revision              TEXT, " \
2403251881Speter  "  PRIMARY KEY (wc_id, local_relpath) " \
2404251881Speter  "); " \
2405251881Speter  "CREATE UNIQUE INDEX I_EXTERNALS_DEFINED ON EXTERNALS (wc_id, " \
2406251881Speter  "                                                      def_local_relpath, " \
2407251881Speter  "                                                      local_relpath); " \
2408362181Sdim  "PRAGMA user_version = " \
2409362181Sdim  APR_STRINGIFY(SVN_WC__VERSION) \
2410362181Sdim  "; " \
2411251881Speter  ""
2412251881Speter
2413362181Sdim#define STMT_INSTALL_SCHEMA_STATISTICS 210
2414362181Sdim#define STMT_210_INFO {"STMT_INSTALL_SCHEMA_STATISTICS", NULL}
2415362181Sdim#define STMT_210 \
2416262250Speter  "ANALYZE sqlite_master; " \
2417266731Speter  "DELETE FROM sqlite_stat1 " \
2418286506Speter  "WHERE tbl in ('NODES', 'ACTUAL_NODE', 'LOCK', 'WC_LOCK', 'EXTERNALS'); " \
2419286506Speter  "INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES " \
2420262250Speter  "    ('NODES', 'sqlite_autoindex_NODES_1',               '8000 8000 2 1'); " \
2421286506Speter  "INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES " \
2422262250Speter  "    ('NODES', 'I_NODES_PARENT',                         '8000 8000 10 2 1'); " \
2423286506Speter  "INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES " \
2424262250Speter  "    ('NODES', 'I_NODES_MOVED',                          '8000 8000 1 1'); " \
2425286506Speter  "INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES " \
2426262250Speter  "    ('ACTUAL_NODE', 'sqlite_autoindex_ACTUAL_NODE_1',   '8000 8000 1'); " \
2427286506Speter  "INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES " \
2428262250Speter  "    ('ACTUAL_NODE', 'I_ACTUAL_PARENT',                  '8000 8000 10 1'); " \
2429286506Speter  "INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES " \
2430262250Speter  "    ('LOCK', 'sqlite_autoindex_LOCK_1',                 '100 100 1'); " \
2431286506Speter  "INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES " \
2432262250Speter  "    ('WC_LOCK', 'sqlite_autoindex_WC_LOCK_1',           '100 100 1'); " \
2433286506Speter  "INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES " \
2434286506Speter  "    ('EXTERNALS','sqlite_autoindex_EXTERNALS_1',        '100 100 1'); " \
2435286506Speter  "INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES " \
2436286506Speter  "    ('EXTERNALS','I_EXTERNALS_DEFINED',                 '100 100 3 1'); " \
2437262250Speter  "ANALYZE sqlite_master; " \
2438262250Speter  ""
2439262250Speter
2440362181Sdim#define STMT_UPGRADE_TO_30 211
2441362181Sdim#define STMT_211_INFO {"STMT_UPGRADE_TO_30", NULL}
2442362181Sdim#define STMT_211 \
2443251881Speter  "CREATE UNIQUE INDEX IF NOT EXISTS I_NODES_MOVED " \
2444251881Speter  "ON NODES (wc_id, moved_to, op_depth); " \
2445251881Speter  "CREATE INDEX IF NOT EXISTS I_PRISTINE_MD5 ON PRISTINE (md5_checksum); " \
2446369302Sdim  "UPDATE nodes SET presence = 'server-excluded' WHERE presence = 'absent'; " \
2447251881Speter  "UPDATE nodes SET file_external=1 WHERE file_external IS NOT NULL; " \
2448251881Speter  ""
2449251881Speter
2450362181Sdim#define STMT_UPGRADE_30_SELECT_CONFLICT_SEPARATE 212
2451362181Sdim#define STMT_212_INFO {"STMT_UPGRADE_30_SELECT_CONFLICT_SEPARATE", NULL}
2452362181Sdim#define STMT_212 \
2453251881Speter  "SELECT wc_id, local_relpath, " \
2454251881Speter  "  conflict_old, conflict_working, conflict_new, prop_reject, tree_conflict_data " \
2455251881Speter  "FROM actual_node " \
2456251881Speter  "WHERE conflict_old IS NOT NULL " \
2457251881Speter  "   OR conflict_working IS NOT NULL " \
2458251881Speter  "   OR conflict_new IS NOT NULL " \
2459251881Speter  "   OR prop_reject IS NOT NULL " \
2460251881Speter  "   OR tree_conflict_data IS NOT NULL " \
2461251881Speter  "ORDER by wc_id, local_relpath " \
2462251881Speter  ""
2463251881Speter
2464362181Sdim#define STMT_UPGRADE_30_SET_CONFLICT 213
2465362181Sdim#define STMT_213_INFO {"STMT_UPGRADE_30_SET_CONFLICT", NULL}
2466362181Sdim#define STMT_213 \
2467251881Speter  "UPDATE actual_node SET conflict_data = ?3, conflict_old = NULL, " \
2468251881Speter  "  conflict_working = NULL, conflict_new = NULL, prop_reject = NULL, " \
2469251881Speter  "  tree_conflict_data = NULL " \
2470251881Speter  "WHERE wc_id = ?1 and local_relpath = ?2 " \
2471251881Speter  ""
2472251881Speter
2473362181Sdim#define STMT_UPGRADE_TO_31 214
2474362181Sdim#define STMT_214_INFO {"STMT_UPGRADE_TO_31", NULL}
2475362181Sdim#define STMT_214 \
2476251881Speter  "ALTER TABLE NODES ADD COLUMN inherited_props BLOB; " \
2477251881Speter  "DROP INDEX IF EXISTS I_ACTUAL_CHANGELIST; " \
2478251881Speter  "DROP INDEX IF EXISTS I_EXTERNALS_PARENT; " \
2479251881Speter  "DROP INDEX I_NODES_PARENT; " \
2480251881Speter  "CREATE UNIQUE INDEX I_NODES_PARENT ON NODES (wc_id, parent_relpath, " \
2481251881Speter  "                                             local_relpath, op_depth); " \
2482251881Speter  "DROP INDEX I_ACTUAL_PARENT; " \
2483251881Speter  "CREATE UNIQUE INDEX I_ACTUAL_PARENT ON ACTUAL_NODE (wc_id, parent_relpath, " \
2484251881Speter  "                                                    local_relpath); " \
2485251881Speter  "PRAGMA user_version = 31; " \
2486251881Speter  ""
2487251881Speter
2488362181Sdim#define STMT_UPGRADE_31_SELECT_WCROOT_NODES 215
2489362181Sdim#define STMT_215_INFO {"STMT_UPGRADE_31_SELECT_WCROOT_NODES", NULL}
2490362181Sdim#define STMT_215 \
2491251881Speter  "SELECT l.wc_id, l.local_relpath FROM nodes as l " \
2492251881Speter  "LEFT OUTER JOIN nodes as r " \
2493251881Speter  "ON l.wc_id = r.wc_id " \
2494251881Speter  "   AND r.local_relpath = l.parent_relpath " \
2495251881Speter  "   AND r.op_depth = 0 " \
2496251881Speter  "WHERE l.op_depth = 0 " \
2497251881Speter  "  AND l.repos_path != '' " \
2498251881Speter  "  AND ((l.repos_id IS NOT r.repos_id) " \
2499251881Speter  "       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))) " \
2500251881Speter  ""
2501251881Speter
2502251881Speter#define WC_QUERIES_SQL_99 \
2503251881Speter  "CREATE TABLE ACTUAL_NODE_BACKUP ( " \
2504251881Speter  "  wc_id  INTEGER NOT NULL, " \
2505251881Speter  "  local_relpath  TEXT NOT NULL, " \
2506251881Speter  "  parent_relpath  TEXT, " \
2507251881Speter  "  properties  BLOB, " \
2508251881Speter  "  conflict_old  TEXT, " \
2509251881Speter  "  conflict_new  TEXT, " \
2510251881Speter  "  conflict_working  TEXT, " \
2511251881Speter  "  prop_reject  TEXT, " \
2512251881Speter  "  changelist  TEXT, " \
2513251881Speter  "  text_mod  TEXT " \
2514251881Speter  "  ); " \
2515251881Speter  "INSERT INTO ACTUAL_NODE_BACKUP SELECT " \
2516251881Speter  "  wc_id, local_relpath, parent_relpath, properties, conflict_old, " \
2517251881Speter  "  conflict_new, conflict_working, prop_reject, changelist, text_mod " \
2518251881Speter  "FROM ACTUAL_NODE; " \
2519251881Speter  "DROP TABLE ACTUAL_NODE; " \
2520251881Speter  "CREATE TABLE ACTUAL_NODE ( " \
2521251881Speter  "  wc_id  INTEGER NOT NULL REFERENCES WCROOT (id), " \
2522251881Speter  "  local_relpath  TEXT NOT NULL, " \
2523251881Speter  "  parent_relpath  TEXT, " \
2524251881Speter  "  properties  BLOB, " \
2525251881Speter  "  conflict_old  TEXT, " \
2526251881Speter  "  conflict_new  TEXT, " \
2527251881Speter  "  conflict_working  TEXT, " \
2528251881Speter  "  prop_reject  TEXT, " \
2529251881Speter  "  changelist  TEXT, " \
2530251881Speter  "  text_mod  TEXT, " \
2531251881Speter  "  PRIMARY KEY (wc_id, local_relpath) " \
2532251881Speter  "  ); " \
2533251881Speter  "CREATE UNIQUE INDEX I_ACTUAL_PARENT ON ACTUAL_NODE (wc_id, parent_relpath, " \
2534251881Speter  "                                                    local_relpath); " \
2535251881Speter  "INSERT INTO ACTUAL_NODE SELECT " \
2536251881Speter  "  wc_id, local_relpath, parent_relpath, properties, conflict_old, " \
2537251881Speter  "  conflict_new, conflict_working, prop_reject, changelist, text_mod " \
2538251881Speter  "FROM ACTUAL_NODE_BACKUP; " \
2539251881Speter  "DROP TABLE ACTUAL_NODE_BACKUP; " \
2540251881Speter  ""
2541251881Speter
2542362181Sdim#define STMT_VERIFICATION_TRIGGERS 216
2543362181Sdim#define STMT_216_INFO {"STMT_VERIFICATION_TRIGGERS", NULL}
2544362181Sdim#define STMT_216 \
2545251881Speter  "CREATE TEMPORARY TRIGGER no_repository_updates BEFORE UPDATE ON repository " \
2546251881Speter  "BEGIN " \
2547251881Speter  "  SELECT RAISE(FAIL, 'Updates to REPOSITORY are not allowed.'); " \
2548251881Speter  "END; " \
2549251881Speter  "CREATE TEMPORARY TRIGGER validation_01 BEFORE INSERT ON nodes " \
2550251881Speter  "WHEN NOT ((new.local_relpath = '' AND new.parent_relpath IS NULL) " \
2551251881Speter  "          OR (relpath_depth(new.local_relpath) " \
2552251881Speter  "              = relpath_depth(new.parent_relpath) + 1)) " \
2553251881Speter  "BEGIN " \
2554251881Speter  "  SELECT RAISE(FAIL, 'WC DB validity check 01 failed'); " \
2555251881Speter  "END; " \
2556251881Speter  "CREATE TEMPORARY TRIGGER validation_02 BEFORE INSERT ON nodes " \
2557251881Speter  "WHEN NOT new.op_depth <= relpath_depth(new.local_relpath) " \
2558251881Speter  "BEGIN " \
2559251881Speter  "  SELECT RAISE(FAIL, 'WC DB validity check 02 failed'); " \
2560251881Speter  "END; " \
2561251881Speter  "CREATE TEMPORARY TRIGGER validation_03 BEFORE INSERT ON nodes " \
2562251881Speter  "WHEN NOT ( " \
2563251881Speter  "    (new.op_depth = relpath_depth(new.local_relpath)) " \
2564251881Speter  "    OR " \
2565251881Speter  "    (EXISTS (SELECT 1 FROM nodes " \
2566251881Speter  "              WHERE wc_id = new.wc_id AND op_depth = new.op_depth " \
2567251881Speter  "                AND local_relpath = new.parent_relpath)) " \
2568251881Speter  "  ) " \
2569251881Speter  " AND NOT (new.file_external IS NOT NULL AND new.op_depth = 0) " \
2570251881Speter  "BEGIN " \
2571251881Speter  "  SELECT RAISE(FAIL, 'WC DB validity check 03 failed'); " \
2572251881Speter  "END; " \
2573251881Speter  "CREATE TEMPORARY TRIGGER validation_04 BEFORE INSERT ON actual_node " \
2574251881Speter  "WHEN NOT (new.local_relpath = '' " \
2575251881Speter  "          OR EXISTS (SELECT 1 FROM nodes " \
2576251881Speter  "                       WHERE wc_id = new.wc_id " \
2577251881Speter  "                         AND local_relpath = new.parent_relpath)) " \
2578251881Speter  "BEGIN " \
2579251881Speter  "  SELECT RAISE(FAIL, 'WC DB validity check 04 failed'); " \
2580251881Speter  "END; " \
2581251881Speter  ""
2582251881Speter
2583362181Sdim#define STMT_STATIC_VERIFY 217
2584362181Sdim#define STMT_217_INFO {"STMT_STATIC_VERIFY", NULL}
2585362181Sdim#define STMT_217 \
2586289180Speter  "SELECT local_relpath, op_depth, 1, 'Invalid parent relpath set in NODES' " \
2587289180Speter  "FROM nodes n WHERE local_relpath != '' " \
2588289180Speter  " AND (parent_relpath IS NULL " \
2589289180Speter  "      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)) " \
2590289180Speter  "      OR relpath_depth(local_relpath) != relpath_depth(parent_relpath)+1) " \
2591289180Speter  "UNION ALL " \
2592289180Speter  "SELECT local_relpath, -1, 2, 'Invalid parent relpath set in ACTUAL' " \
2593289180Speter  "FROM actual_node a WHERE local_relpath != '' " \
2594289180Speter  " AND (parent_relpath IS NULL " \
2595289180Speter  "      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)) " \
2596289180Speter  "      OR relpath_depth(local_relpath) != relpath_depth(parent_relpath)+1) " \
2597289180Speter  "UNION ALL " \
2598289180Speter  "SELECT local_relpath, -1, 10, 'No ancestor in ACTUAL' " \
2599289180Speter  "FROM actual_node a WHERE local_relpath != '' " \
2600289180Speter  " AND NOT EXISTS(SELECT 1 from nodes i " \
2601289180Speter  "                WHERE i.wc_id=a.wc_id " \
2602289180Speter  "                  AND i.local_relpath=a.parent_relpath) " \
2603289180Speter  " AND NOT EXISTS(SELECT 1 from nodes i " \
2604289180Speter  "                WHERE i.wc_id=a.wc_id " \
2605289180Speter  "                  AND i.local_relpath=a.local_relpath) " \
2606289180Speter  "UNION ALL " \
2607289180Speter  "SELECT a.local_relpath, -1, 11, 'Bad or Unneeded actual data' " \
2608289180Speter  "FROM actual_node a " \
2609289180Speter  "LEFT JOIN nodes n on n.wc_id = a.wc_id AND n.local_relpath = a.local_relpath " \
2610289180Speter  "   AND n.op_depth = (SELECT MAX(op_depth) from nodes i " \
2611289180Speter  "                     WHERE i.wc_id=a.wc_id AND i.local_relpath=a.local_relpath) " \
2612289180Speter  "WHERE (a.properties IS NOT NULL " \
2613289180Speter  "       AND (n.presence IS NULL " \
2614289180Speter  "            OR n.presence NOT IN ('normal', 'incomplete'))) " \
2615289180Speter  "   OR (a.changelist IS NOT NULL AND (n.kind IS NOT NULL AND n.kind != 'file')) " \
2616289180Speter  "   OR (a.conflict_data IS NULL AND a.properties IS NULL AND a.changelist IS NULL) " \
2617289180Speter  " AND NOT EXISTS(SELECT 1 from nodes i " \
2618289180Speter  "                WHERE i.wc_id=a.wc_id " \
2619289180Speter  "                  AND i.local_relpath=a.parent_relpath) " \
2620289180Speter  "UNION ALL " \
2621289180Speter  "SELECT local_relpath, op_depth, 20, 'No ancestor in NODES' " \
2622289180Speter  "FROM nodes n WHERE local_relpath != '' " \
2623289180Speter  " AND file_external IS NULL " \
2624289180Speter  " AND NOT EXISTS(SELECT 1 from nodes i " \
2625289180Speter  "                WHERE i.wc_id=n.wc_id " \
2626289180Speter  "                  AND i.local_relpath=n.parent_relpath " \
2627289180Speter  "                  AND i.op_depth <= n.op_depth) " \
2628289180Speter  "UNION ALL " \
2629289180Speter  "SELECT local_relpath, op_depth, 21, 'Unneeded node data' " \
2630289180Speter  "FROM nodes " \
2631289180Speter  "WHERE presence NOT IN ('normal', 'incomplete') " \
2632289180Speter  "AND (properties IS NOT NULL " \
2633289180Speter  "     OR checksum IS NOT NULL " \
2634289180Speter  "     OR depth IS NOT NULL " \
2635289180Speter  "     OR symlink_target IS NOT NULL " \
2636289180Speter  "     OR changed_revision IS NOT NULL " \
2637289180Speter  "     OR (changed_date IS NOT NULL AND changed_date != 0) " \
2638289180Speter  "     OR changed_author IS NOT NULL " \
2639289180Speter  "     OR translated_size IS NOT NULL " \
2640289180Speter  "     OR last_mod_time IS NOT NULL " \
2641289180Speter  "     OR dav_cache IS NOT NULL " \
2642289180Speter  "     OR file_external IS NOT NULL " \
2643289180Speter  "     OR inherited_props IS NOT NULL) " \
2644289180Speter  "UNION ALL " \
2645289180Speter  "SELECT local_relpath, op_depth, 22, 'Unneeded base-deleted node data' " \
2646289180Speter  "FROM nodes " \
2647289180Speter  "WHERE presence IN ('base-deleted') " \
2648289180Speter  "AND (repos_id IS NOT NULL " \
2649289180Speter  "     OR repos_path IS NOT NULL " \
2650289180Speter  "     OR revision IS NOT NULL) " \
2651289180Speter  "UNION ALL " \
2652289180Speter  "SELECT local_relpath, op_depth, 23, 'Kind specific data invalid on normal' " \
2653289180Speter  "FROM nodes " \
2654289180Speter  "WHERE presence IN ('normal', 'incomplete') " \
2655289180Speter  "AND (kind IS NULL " \
2656289180Speter  "     OR (repos_path IS NULL " \
2657289180Speter  "         AND (properties IS NOT NULL " \
2658289180Speter  "              OR changed_revision IS NOT NULL " \
2659289180Speter  "              OR changed_author IS NOT NULL " \
2660289180Speter  "              OR (changed_date IS NOT NULL AND changed_date != 0))) " \
2661289180Speter  "     OR (CASE WHEN kind = 'file' AND repos_path IS NOT NULL " \
2662289180Speter  "                                   THEN checksum IS NULL " \
2663289180Speter  "                                   ELSE checksum IS NOT NULL END) " \
2664289180Speter  "     OR (CASE WHEN kind = 'dir' THEN depth IS NULL " \
2665289180Speter  "                                  ELSE depth IS NOT NULL END) " \
2666289180Speter  "     OR (CASE WHEN kind = 'symlink' THEN symlink_target IS NULL " \
2667289180Speter  "                                      ELSE symlink_target IS NOT NULL END)) " \
2668289180Speter  "UNION ALL " \
2669289180Speter  "SELECT local_relpath, op_depth, 24, 'Invalid op-depth for local add' " \
2670289180Speter  "FROM nodes " \
2671289180Speter  "WHERE presence IN ('normal', 'incomplete') " \
2672289180Speter  "  AND repos_path IS NULL " \
2673289180Speter  "  AND op_depth != relpath_depth(local_relpath) " \
2674289180Speter  "UNION ALL " \
2675289180Speter  "SELECT local_relpath, op_depth, 25, 'Node missing op-depth ancestor' " \
2676289180Speter  "FROM nodes n " \
2677289180Speter  "WHERE op_depth < relpath_depth(local_relpath) " \
2678289180Speter  "  AND file_external IS NULL " \
2679289180Speter  "  AND NOT EXISTS(SELECT 1 FROM nodes p " \
2680289180Speter  "                 WHERE p.wc_id=n.wc_id AND p.local_relpath=n.parent_relpath " \
2681289180Speter  "                   AND p.op_depth=n.op_depth " \
2682289180Speter  "                   AND (p.presence IN ('normal', 'incomplete') " \
2683289180Speter  "                        OR (p.presence IN ('base-deleted', 'not-present') " \
2684289180Speter  "                            AND n.presence = 'base-deleted'))) " \
2685289180Speter  "UNION ALL " \
2686289180Speter  "SELECT n.local_relpath, n.op_depth, 26, 'Copied descendant mismatch' " \
2687289180Speter  "FROM nodes n " \
2688289180Speter  "JOIN nodes p " \
2689289180Speter  "  ON p.wc_id=n.wc_id AND p.local_relpath=n.parent_relpath " \
2690289180Speter  "  AND n.op_depth=p.op_depth " \
2691289180Speter  "WHERE n.op_depth > 0 AND n.presence IN ('normal', 'incomplete') " \
2692289180Speter  "   AND (n.repos_id != p.repos_id " \
2693289180Speter  "        OR n.repos_path != " \
2694289180Speter  "           (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) " \
2695289180Speter  "        OR n.revision != p.revision " \
2696289180Speter  "        OR p.kind != 'dir' " \
2697289180Speter  "        OR n.moved_here IS NOT p.moved_here) " \
2698289180Speter  "UNION ALL " \
2699289180Speter  "SELECT n.local_relpath, n.op_depth, 27, 'Invalid op-root presence' " \
2700289180Speter  "FROM nodes n " \
2701289180Speter  "WHERE n.op_depth = relpath_depth(local_relpath) " \
2702289180Speter  "  AND presence NOT IN ('normal', 'incomplete', 'base-deleted') " \
2703289180Speter  "UNION ALL " \
2704289180Speter  "SELECT n.local_relpath, s.op_depth, 28, 'Incomplete shadowing' " \
2705289180Speter  "FROM nodes n " \
2706289180Speter  "JOIN nodes s ON s.wc_id=n.wc_id AND s.local_relpath=n.local_relpath " \
2707289180Speter  " AND s.op_depth = relpath_depth(s.local_relpath) " \
2708289180Speter  " AND s.op_depth = (SELECT MIN(op_depth) FROM nodes d " \
2709289180Speter  "                   WHERE d.wc_id=s.wc_id AND d.local_relpath=s.local_relpath " \
2710289180Speter  "                     AND d.op_depth > n.op_depth) " \
2711289180Speter  "WHERE n.presence IN ('normal', 'incomplete') " \
2712289180Speter  "  AND EXISTS(SELECT 1 " \
2713289180Speter  "             FROM nodes dn " \
2714289180Speter  "             WHERE dn.wc_id=n.wc_id AND dn.op_depth=n.op_depth " \
2715289180Speter  "               AND dn.presence IN ('normal', 'incomplete') " \
2716289180Speter  "               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)) " \
2717289180Speter  "               AND dn.file_external IS NULL " \
2718289180Speter  "               AND NOT EXISTS(SELECT 1 " \
2719289180Speter  "                              FROM nodes ds " \
2720289180Speter  "                              WHERE ds.wc_id=n.wc_id AND ds.op_depth=s.op_depth " \
2721289180Speter  "                                AND ds.local_relpath=dn.local_relpath)) " \
2722289180Speter  "UNION ALL " \
2723289180Speter  "SELECT s.local_relpath, s.op_depth, 29, 'Invalid base-delete' " \
2724289180Speter  "FROM nodes s " \
2725289180Speter  "LEFT JOIN nodes n ON n.wc_id=s.wc_id AND n.local_relpath=s.local_relpath " \
2726289180Speter  " AND n.op_depth = (SELECT MAX(op_depth) FROM nodes d " \
2727289180Speter  "                   WHERE d.wc_id=s.wc_id AND d.local_relpath=s.local_relpath " \
2728289180Speter  "                     AND d.op_depth < s.op_depth) " \
2729289180Speter  "WHERE s.presence = 'base-deleted' " \
2730289180Speter  "  AND (n.presence IS NULL " \
2731289180Speter  "       OR n.presence NOT IN ('normal', 'incomplete') " \
2732289180Speter  "       ) " \
2733289180Speter  "UNION ALL " \
2734289180Speter  "SELECT n.local_relpath, n.op_depth, 30, 'Invalid data for BASE' " \
2735289180Speter  "FROM nodes n " \
2736289180Speter  "WHERE n.op_depth = 0 " \
2737289180Speter  "  AND (n.moved_to IS NOT NULL " \
2738289180Speter  "       OR n.moved_here IS NOT NULL) " \
2739289180Speter  "UNION ALL " \
2740289180Speter  "SELECT d.local_relpath, d.op_depth, 60, 'Moved here without origin' " \
2741289180Speter  "FROM nodes d " \
2742289180Speter  "WHERE d.op_depth = relpath_depth(d.local_relpath) " \
2743289180Speter  "  AND d.moved_here IS NOT NULL " \
2744289180Speter  "  AND NOT EXISTS(SELECT 1 FROM nodes s " \
2745289180Speter  "                 WHERE s.wc_id = d.wc_id AND s.moved_to = d.local_relpath) " \
2746289180Speter  "UNION ALL " \
2747289180Speter  "SELECT s.local_relpath, s.op_depth, 61, 'Moved to without target' " \
2748289180Speter  "FROM nodes s " \
2749289180Speter  "WHERE s.moved_to IS NOT NULL " \
2750289180Speter  "  AND NOT EXISTS(SELECT 1 FROM nodes d " \
2751289180Speter  "                 WHERE d.wc_id = s.wc_id AND d.local_relpath = s.moved_to " \
2752289180Speter  "                   AND d.op_depth = relpath_depth(d.local_relpath) " \
2753289180Speter  "                   AND d.moved_here =1 AND d.repos_path IS NOT NULL) " \
2754289180Speter  ""
2755289180Speter
2756251881Speter#define WC_QUERIES_SQL_DECLARE_STATEMENTS(varname) \
2757251881Speter  static const char * const varname[] = { \
2758251881Speter    STMT_0, \
2759251881Speter    STMT_1, \
2760251881Speter    STMT_2, \
2761251881Speter    STMT_3, \
2762251881Speter    STMT_4, \
2763251881Speter    STMT_5, \
2764251881Speter    STMT_6, \
2765251881Speter    STMT_7, \
2766251881Speter    STMT_8, \
2767251881Speter    STMT_9, \
2768251881Speter    STMT_10, \
2769251881Speter    STMT_11, \
2770251881Speter    STMT_12, \
2771251881Speter    STMT_13, \
2772251881Speter    STMT_14, \
2773251881Speter    STMT_15, \
2774251881Speter    STMT_16, \
2775251881Speter    STMT_17, \
2776251881Speter    STMT_18, \
2777251881Speter    STMT_19, \
2778251881Speter    STMT_20, \
2779251881Speter    STMT_21, \
2780251881Speter    STMT_22, \
2781251881Speter    STMT_23, \
2782251881Speter    STMT_24, \
2783251881Speter    STMT_25, \
2784251881Speter    STMT_26, \
2785251881Speter    STMT_27, \
2786251881Speter    STMT_28, \
2787251881Speter    STMT_29, \
2788251881Speter    STMT_30, \
2789251881Speter    STMT_31, \
2790251881Speter    STMT_32, \
2791251881Speter    STMT_33, \
2792251881Speter    STMT_34, \
2793251881Speter    STMT_35, \
2794251881Speter    STMT_36, \
2795251881Speter    STMT_37, \
2796251881Speter    STMT_38, \
2797251881Speter    STMT_39, \
2798251881Speter    STMT_40, \
2799251881Speter    STMT_41, \
2800251881Speter    STMT_42, \
2801251881Speter    STMT_43, \
2802251881Speter    STMT_44, \
2803251881Speter    STMT_45, \
2804251881Speter    STMT_46, \
2805251881Speter    STMT_47, \
2806251881Speter    STMT_48, \
2807251881Speter    STMT_49, \
2808251881Speter    STMT_50, \
2809251881Speter    STMT_51, \
2810251881Speter    STMT_52, \
2811251881Speter    STMT_53, \
2812251881Speter    STMT_54, \
2813251881Speter    STMT_55, \
2814251881Speter    STMT_56, \
2815251881Speter    STMT_57, \
2816251881Speter    STMT_58, \
2817251881Speter    STMT_59, \
2818251881Speter    STMT_60, \
2819251881Speter    STMT_61, \
2820251881Speter    STMT_62, \
2821251881Speter    STMT_63, \
2822251881Speter    STMT_64, \
2823251881Speter    STMT_65, \
2824251881Speter    STMT_66, \
2825251881Speter    STMT_67, \
2826251881Speter    STMT_68, \
2827251881Speter    STMT_69, \
2828251881Speter    STMT_70, \
2829251881Speter    STMT_71, \
2830251881Speter    STMT_72, \
2831251881Speter    STMT_73, \
2832251881Speter    STMT_74, \
2833251881Speter    STMT_75, \
2834251881Speter    STMT_76, \
2835251881Speter    STMT_77, \
2836251881Speter    STMT_78, \
2837251881Speter    STMT_79, \
2838251881Speter    STMT_80, \
2839251881Speter    STMT_81, \
2840251881Speter    STMT_82, \
2841251881Speter    STMT_83, \
2842251881Speter    STMT_84, \
2843251881Speter    STMT_85, \
2844251881Speter    STMT_86, \
2845251881Speter    STMT_87, \
2846251881Speter    STMT_88, \
2847251881Speter    STMT_89, \
2848251881Speter    STMT_90, \
2849251881Speter    STMT_91, \
2850251881Speter    STMT_92, \
2851251881Speter    STMT_93, \
2852251881Speter    STMT_94, \
2853251881Speter    STMT_95, \
2854251881Speter    STMT_96, \
2855251881Speter    STMT_97, \
2856251881Speter    STMT_98, \
2857251881Speter    STMT_99, \
2858251881Speter    STMT_100, \
2859251881Speter    STMT_101, \
2860251881Speter    STMT_102, \
2861251881Speter    STMT_103, \
2862251881Speter    STMT_104, \
2863251881Speter    STMT_105, \
2864251881Speter    STMT_106, \
2865251881Speter    STMT_107, \
2866251881Speter    STMT_108, \
2867251881Speter    STMT_109, \
2868251881Speter    STMT_110, \
2869251881Speter    STMT_111, \
2870251881Speter    STMT_112, \
2871251881Speter    STMT_113, \
2872251881Speter    STMT_114, \
2873251881Speter    STMT_115, \
2874251881Speter    STMT_116, \
2875251881Speter    STMT_117, \
2876251881Speter    STMT_118, \
2877251881Speter    STMT_119, \
2878251881Speter    STMT_120, \
2879251881Speter    STMT_121, \
2880251881Speter    STMT_122, \
2881251881Speter    STMT_123, \
2882251881Speter    STMT_124, \
2883251881Speter    STMT_125, \
2884251881Speter    STMT_126, \
2885251881Speter    STMT_127, \
2886251881Speter    STMT_128, \
2887251881Speter    STMT_129, \
2888251881Speter    STMT_130, \
2889251881Speter    STMT_131, \
2890251881Speter    STMT_132, \
2891251881Speter    STMT_133, \
2892251881Speter    STMT_134, \
2893251881Speter    STMT_135, \
2894251881Speter    STMT_136, \
2895251881Speter    STMT_137, \
2896251881Speter    STMT_138, \
2897251881Speter    STMT_139, \
2898251881Speter    STMT_140, \
2899251881Speter    STMT_141, \
2900251881Speter    STMT_142, \
2901251881Speter    STMT_143, \
2902251881Speter    STMT_144, \
2903251881Speter    STMT_145, \
2904251881Speter    STMT_146, \
2905251881Speter    STMT_147, \
2906251881Speter    STMT_148, \
2907251881Speter    STMT_149, \
2908251881Speter    STMT_150, \
2909251881Speter    STMT_151, \
2910251881Speter    STMT_152, \
2911251881Speter    STMT_153, \
2912251881Speter    STMT_154, \
2913251881Speter    STMT_155, \
2914251881Speter    STMT_156, \
2915251881Speter    STMT_157, \
2916251881Speter    STMT_158, \
2917251881Speter    STMT_159, \
2918251881Speter    STMT_160, \
2919251881Speter    STMT_161, \
2920251881Speter    STMT_162, \
2921251881Speter    STMT_163, \
2922251881Speter    STMT_164, \
2923251881Speter    STMT_165, \
2924251881Speter    STMT_166, \
2925251881Speter    STMT_167, \
2926251881Speter    STMT_168, \
2927251881Speter    STMT_169, \
2928251881Speter    STMT_170, \
2929251881Speter    STMT_171, \
2930251881Speter    STMT_172, \
2931251881Speter    STMT_173, \
2932251881Speter    STMT_174, \
2933251881Speter    STMT_175, \
2934251881Speter    STMT_176, \
2935251881Speter    STMT_177, \
2936251881Speter    STMT_178, \
2937251881Speter    STMT_179, \
2938251881Speter    STMT_180, \
2939251881Speter    STMT_181, \
2940251881Speter    STMT_182, \
2941251881Speter    STMT_183, \
2942251881Speter    STMT_184, \
2943251881Speter    STMT_185, \
2944251881Speter    STMT_186, \
2945251881Speter    STMT_187, \
2946251881Speter    STMT_188, \
2947251881Speter    STMT_189, \
2948251881Speter    STMT_190, \
2949251881Speter    STMT_191, \
2950251881Speter    STMT_192, \
2951251881Speter    STMT_193, \
2952251881Speter    STMT_194, \
2953251881Speter    STMT_195, \
2954251881Speter    STMT_196, \
2955251881Speter    STMT_197, \
2956251881Speter    STMT_198, \
2957251881Speter    STMT_199, \
2958251881Speter    STMT_200, \
2959251881Speter    STMT_201, \
2960251881Speter    STMT_202, \
2961251881Speter    STMT_203, \
2962251881Speter    STMT_204, \
2963251881Speter    STMT_205, \
2964251881Speter    STMT_206, \
2965251881Speter    STMT_207, \
2966251881Speter    STMT_208, \
2967251881Speter    STMT_209, \
2968251881Speter    STMT_210, \
2969251881Speter    STMT_211, \
2970251881Speter    STMT_212, \
2971251881Speter    STMT_213, \
2972251881Speter    STMT_214, \
2973251881Speter    STMT_215, \
2974251881Speter    STMT_216, \
2975251881Speter    STMT_217, \
2976251881Speter    NULL \
2977251881Speter  }
2978251881Speter
2979251881Speter#define WC_QUERIES_SQL_DECLARE_STATEMENT_INFO(varname) \
2980251881Speter  static const char * const varname[][2] = { \
2981251881Speter    STMT_0_INFO, \
2982251881Speter    STMT_1_INFO, \
2983251881Speter    STMT_2_INFO, \
2984251881Speter    STMT_3_INFO, \
2985251881Speter    STMT_4_INFO, \
2986251881Speter    STMT_5_INFO, \
2987251881Speter    STMT_6_INFO, \
2988251881Speter    STMT_7_INFO, \
2989251881Speter    STMT_8_INFO, \
2990251881Speter    STMT_9_INFO, \
2991251881Speter    STMT_10_INFO, \
2992251881Speter    STMT_11_INFO, \
2993251881Speter    STMT_12_INFO, \
2994251881Speter    STMT_13_INFO, \
2995251881Speter    STMT_14_INFO, \
2996251881Speter    STMT_15_INFO, \
2997251881Speter    STMT_16_INFO, \
2998251881Speter    STMT_17_INFO, \
2999251881Speter    STMT_18_INFO, \
3000251881Speter    STMT_19_INFO, \
3001251881Speter    STMT_20_INFO, \
3002251881Speter    STMT_21_INFO, \
3003251881Speter    STMT_22_INFO, \
3004251881Speter    STMT_23_INFO, \
3005251881Speter    STMT_24_INFO, \
3006251881Speter    STMT_25_INFO, \
3007251881Speter    STMT_26_INFO, \
3008251881Speter    STMT_27_INFO, \
3009251881Speter    STMT_28_INFO, \
3010251881Speter    STMT_29_INFO, \
3011251881Speter    STMT_30_INFO, \
3012251881Speter    STMT_31_INFO, \
3013251881Speter    STMT_32_INFO, \
3014251881Speter    STMT_33_INFO, \
3015251881Speter    STMT_34_INFO, \
3016251881Speter    STMT_35_INFO, \
3017251881Speter    STMT_36_INFO, \
3018251881Speter    STMT_37_INFO, \
3019251881Speter    STMT_38_INFO, \
3020251881Speter    STMT_39_INFO, \
3021251881Speter    STMT_40_INFO, \
3022251881Speter    STMT_41_INFO, \
3023251881Speter    STMT_42_INFO, \
3024251881Speter    STMT_43_INFO, \
3025251881Speter    STMT_44_INFO, \
3026251881Speter    STMT_45_INFO, \
3027251881Speter    STMT_46_INFO, \
3028251881Speter    STMT_47_INFO, \
3029251881Speter    STMT_48_INFO, \
3030251881Speter    STMT_49_INFO, \
3031251881Speter    STMT_50_INFO, \
3032251881Speter    STMT_51_INFO, \
3033251881Speter    STMT_52_INFO, \
3034251881Speter    STMT_53_INFO, \
3035251881Speter    STMT_54_INFO, \
3036251881Speter    STMT_55_INFO, \
3037251881Speter    STMT_56_INFO, \
3038251881Speter    STMT_57_INFO, \
3039251881Speter    STMT_58_INFO, \
3040251881Speter    STMT_59_INFO, \
3041251881Speter    STMT_60_INFO, \
3042251881Speter    STMT_61_INFO, \
3043251881Speter    STMT_62_INFO, \
3044251881Speter    STMT_63_INFO, \
3045251881Speter    STMT_64_INFO, \
3046251881Speter    STMT_65_INFO, \
3047251881Speter    STMT_66_INFO, \
3048251881Speter    STMT_67_INFO, \
3049251881Speter    STMT_68_INFO, \
3050251881Speter    STMT_69_INFO, \
3051251881Speter    STMT_70_INFO, \
3052251881Speter    STMT_71_INFO, \
3053251881Speter    STMT_72_INFO, \
3054251881Speter    STMT_73_INFO, \
3055251881Speter    STMT_74_INFO, \
3056251881Speter    STMT_75_INFO, \
3057251881Speter    STMT_76_INFO, \
3058251881Speter    STMT_77_INFO, \
3059251881Speter    STMT_78_INFO, \
3060251881Speter    STMT_79_INFO, \
3061251881Speter    STMT_80_INFO, \
3062251881Speter    STMT_81_INFO, \
3063251881Speter    STMT_82_INFO, \
3064251881Speter    STMT_83_INFO, \
3065251881Speter    STMT_84_INFO, \
3066251881Speter    STMT_85_INFO, \
3067251881Speter    STMT_86_INFO, \
3068251881Speter    STMT_87_INFO, \
3069251881Speter    STMT_88_INFO, \
3070251881Speter    STMT_89_INFO, \
3071251881Speter    STMT_90_INFO, \
3072251881Speter    STMT_91_INFO, \
3073251881Speter    STMT_92_INFO, \
3074251881Speter    STMT_93_INFO, \
3075251881Speter    STMT_94_INFO, \
3076251881Speter    STMT_95_INFO, \
3077251881Speter    STMT_96_INFO, \
3078251881Speter    STMT_97_INFO, \
3079251881Speter    STMT_98_INFO, \
3080251881Speter    STMT_99_INFO, \
3081251881Speter    STMT_100_INFO, \
3082251881Speter    STMT_101_INFO, \
3083251881Speter    STMT_102_INFO, \
3084251881Speter    STMT_103_INFO, \
3085251881Speter    STMT_104_INFO, \
3086251881Speter    STMT_105_INFO, \
3087251881Speter    STMT_106_INFO, \
3088251881Speter    STMT_107_INFO, \
3089251881Speter    STMT_108_INFO, \
3090251881Speter    STMT_109_INFO, \
3091251881Speter    STMT_110_INFO, \
3092251881Speter    STMT_111_INFO, \
3093251881Speter    STMT_112_INFO, \
3094251881Speter    STMT_113_INFO, \
3095251881Speter    STMT_114_INFO, \
3096251881Speter    STMT_115_INFO, \
3097251881Speter    STMT_116_INFO, \
3098251881Speter    STMT_117_INFO, \
3099251881Speter    STMT_118_INFO, \
3100251881Speter    STMT_119_INFO, \
3101251881Speter    STMT_120_INFO, \
3102251881Speter    STMT_121_INFO, \
3103251881Speter    STMT_122_INFO, \
3104251881Speter    STMT_123_INFO, \
3105251881Speter    STMT_124_INFO, \
3106251881Speter    STMT_125_INFO, \
3107251881Speter    STMT_126_INFO, \
3108251881Speter    STMT_127_INFO, \
3109251881Speter    STMT_128_INFO, \
3110251881Speter    STMT_129_INFO, \
3111251881Speter    STMT_130_INFO, \
3112251881Speter    STMT_131_INFO, \
3113251881Speter    STMT_132_INFO, \
3114251881Speter    STMT_133_INFO, \
3115251881Speter    STMT_134_INFO, \
3116251881Speter    STMT_135_INFO, \
3117251881Speter    STMT_136_INFO, \
3118251881Speter    STMT_137_INFO, \
3119251881Speter    STMT_138_INFO, \
3120251881Speter    STMT_139_INFO, \
3121251881Speter    STMT_140_INFO, \
3122251881Speter    STMT_141_INFO, \
3123251881Speter    STMT_142_INFO, \
3124251881Speter    STMT_143_INFO, \
3125251881Speter    STMT_144_INFO, \
3126251881Speter    STMT_145_INFO, \
3127251881Speter    STMT_146_INFO, \
3128251881Speter    STMT_147_INFO, \
3129251881Speter    STMT_148_INFO, \
3130251881Speter    STMT_149_INFO, \
3131251881Speter    STMT_150_INFO, \
3132251881Speter    STMT_151_INFO, \
3133251881Speter    STMT_152_INFO, \
3134251881Speter    STMT_153_INFO, \
3135251881Speter    STMT_154_INFO, \
3136251881Speter    STMT_155_INFO, \
3137251881Speter    STMT_156_INFO, \
3138251881Speter    STMT_157_INFO, \
3139251881Speter    STMT_158_INFO, \
3140251881Speter    STMT_159_INFO, \
3141251881Speter    STMT_160_INFO, \
3142251881Speter    STMT_161_INFO, \
3143251881Speter    STMT_162_INFO, \
3144251881Speter    STMT_163_INFO, \
3145251881Speter    STMT_164_INFO, \
3146251881Speter    STMT_165_INFO, \
3147251881Speter    STMT_166_INFO, \
3148251881Speter    STMT_167_INFO, \
3149251881Speter    STMT_168_INFO, \
3150251881Speter    STMT_169_INFO, \
3151251881Speter    STMT_170_INFO, \
3152251881Speter    STMT_171_INFO, \
3153251881Speter    STMT_172_INFO, \
3154251881Speter    STMT_173_INFO, \
3155251881Speter    STMT_174_INFO, \
3156251881Speter    STMT_175_INFO, \
3157251881Speter    STMT_176_INFO, \
3158251881Speter    STMT_177_INFO, \
3159251881Speter    STMT_178_INFO, \
3160251881Speter    STMT_179_INFO, \
3161251881Speter    STMT_180_INFO, \
3162251881Speter    STMT_181_INFO, \
3163251881Speter    STMT_182_INFO, \
3164251881Speter    STMT_183_INFO, \
3165251881Speter    STMT_184_INFO, \
3166251881Speter    STMT_185_INFO, \
3167251881Speter    STMT_186_INFO, \
3168251881Speter    STMT_187_INFO, \
3169251881Speter    STMT_188_INFO, \
3170251881Speter    STMT_189_INFO, \
3171251881Speter    STMT_190_INFO, \
3172251881Speter    STMT_191_INFO, \
3173251881Speter    STMT_192_INFO, \
3174251881Speter    STMT_193_INFO, \
3175251881Speter    STMT_194_INFO, \
3176251881Speter    STMT_195_INFO, \
3177251881Speter    STMT_196_INFO, \
3178251881Speter    STMT_197_INFO, \
3179251881Speter    STMT_198_INFO, \
3180251881Speter    STMT_199_INFO, \
3181251881Speter    STMT_200_INFO, \
3182251881Speter    STMT_201_INFO, \
3183251881Speter    STMT_202_INFO, \
3184251881Speter    STMT_203_INFO, \
3185251881Speter    STMT_204_INFO, \
3186251881Speter    STMT_205_INFO, \
3187251881Speter    STMT_206_INFO, \
3188251881Speter    STMT_207_INFO, \
3189251881Speter    STMT_208_INFO, \
3190251881Speter    STMT_209_INFO, \
3191251881Speter    STMT_210_INFO, \
3192251881Speter    STMT_211_INFO, \
3193251881Speter    STMT_212_INFO, \
3194251881Speter    STMT_213_INFO, \
3195251881Speter    STMT_214_INFO, \
3196251881Speter    STMT_215_INFO, \
3197251881Speter    STMT_216_INFO, \
3198251881Speter    STMT_217_INFO, \
3199251881Speter    {NULL, NULL} \
3200251881Speter  }
3201