]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/blob - contrib/subversion/subversion/libsvn_wc/wc-metadata.h
Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.
[FreeBSD/stable/10.git] / contrib / subversion / subversion / libsvn_wc / wc-metadata.h
1 /* This file is automatically generated from wc-metadata.sql and .dist_sandbox/subversion-1.8.1/subversion/libsvn_wc/token-map.h.
2  * Do not edit this file -- edit the source and rerun gen-make.py */
3
4 #define STMT_CREATE_SCHEMA 0
5 #define STMT_0_INFO {"STMT_CREATE_SCHEMA", NULL}
6 #define STMT_0 \
7   "CREATE TABLE REPOSITORY ( " \
8   "  id INTEGER PRIMARY KEY AUTOINCREMENT, " \
9   "  root  TEXT UNIQUE NOT NULL, " \
10   "  uuid  TEXT NOT NULL " \
11   "  ); " \
12   "CREATE INDEX I_UUID ON REPOSITORY (uuid); " \
13   "CREATE INDEX I_ROOT ON REPOSITORY (root); " \
14   "CREATE TABLE WCROOT ( " \
15   "  id  INTEGER PRIMARY KEY AUTOINCREMENT, " \
16   "  local_abspath  TEXT UNIQUE " \
17   "  ); " \
18   "CREATE UNIQUE INDEX I_LOCAL_ABSPATH ON WCROOT (local_abspath); " \
19   "CREATE TABLE PRISTINE ( " \
20   "  checksum  TEXT NOT NULL PRIMARY KEY, " \
21   "  compression  INTEGER, " \
22   "  size  INTEGER NOT NULL, " \
23   "  refcount  INTEGER NOT NULL, " \
24   "  md5_checksum  TEXT NOT NULL " \
25   "  ); " \
26   "CREATE INDEX I_PRISTINE_MD5 ON PRISTINE (md5_checksum); " \
27   "CREATE TABLE ACTUAL_NODE ( " \
28   "  wc_id  INTEGER NOT NULL REFERENCES WCROOT (id), " \
29   "  local_relpath  TEXT NOT NULL, " \
30   "  parent_relpath  TEXT, " \
31   "  properties  BLOB, " \
32   "  conflict_old  TEXT, " \
33   "  conflict_new  TEXT, " \
34   "  conflict_working  TEXT, " \
35   "  prop_reject  TEXT, " \
36   "  changelist  TEXT, " \
37   "  text_mod  TEXT, " \
38   "  tree_conflict_data  TEXT, " \
39   "  conflict_data  BLOB, " \
40   "  older_checksum  TEXT REFERENCES PRISTINE (checksum), " \
41   "  left_checksum  TEXT REFERENCES PRISTINE (checksum), " \
42   "  right_checksum  TEXT REFERENCES PRISTINE (checksum), " \
43   "  PRIMARY KEY (wc_id, local_relpath) " \
44   "  ); " \
45   "CREATE UNIQUE INDEX I_ACTUAL_PARENT ON ACTUAL_NODE (wc_id, parent_relpath, " \
46   "                                                    local_relpath); " \
47   "CREATE TABLE LOCK ( " \
48   "  repos_id  INTEGER NOT NULL REFERENCES REPOSITORY (id), " \
49   "  repos_relpath  TEXT NOT NULL, " \
50   "  lock_token  TEXT NOT NULL, " \
51   "  lock_owner  TEXT, " \
52   "  lock_comment  TEXT, " \
53   "  lock_date  INTEGER, " \
54   "  PRIMARY KEY (repos_id, repos_relpath) " \
55   "  ); " \
56   "CREATE TABLE WORK_QUEUE ( " \
57   "  id  INTEGER PRIMARY KEY AUTOINCREMENT, " \
58   "  work  BLOB NOT NULL " \
59   "  ); " \
60   "CREATE TABLE WC_LOCK ( " \
61   "  wc_id  INTEGER NOT NULL  REFERENCES WCROOT (id), " \
62   "  local_dir_relpath  TEXT NOT NULL, " \
63   "  locked_levels  INTEGER NOT NULL DEFAULT -1, " \
64   "  PRIMARY KEY (wc_id, local_dir_relpath) " \
65   " ); " \
66   "PRAGMA user_version = " \
67   APR_STRINGIFY(SVN_WC__VERSION) \
68   "; " \
69   ""
70
71 #define STMT_CREATE_NODES 1
72 #define STMT_1_INFO {"STMT_CREATE_NODES", NULL}
73 #define STMT_1 \
74   "CREATE TABLE NODES ( " \
75   "  wc_id  INTEGER NOT NULL REFERENCES WCROOT (id), " \
76   "  local_relpath  TEXT NOT NULL, " \
77   "  op_depth INTEGER NOT NULL, " \
78   "  parent_relpath  TEXT, " \
79   "  repos_id  INTEGER REFERENCES REPOSITORY (id), " \
80   "  repos_path  TEXT, " \
81   "  revision  INTEGER, " \
82   "  presence  TEXT NOT NULL, " \
83   "  moved_here  INTEGER, " \
84   "  moved_to  TEXT, " \
85   "  kind  TEXT NOT NULL, " \
86   "  properties  BLOB, " \
87   "  depth  TEXT, " \
88   "  checksum  TEXT REFERENCES PRISTINE (checksum), " \
89   "  symlink_target  TEXT, " \
90   "  changed_revision  INTEGER, " \
91   "  changed_date      INTEGER, " \
92   "  changed_author    TEXT, " \
93   "  translated_size  INTEGER, " \
94   "  last_mod_time  INTEGER, " \
95   "  dav_cache  BLOB, " \
96   "  file_external  INTEGER, " \
97   "  inherited_props  BLOB, " \
98   "  PRIMARY KEY (wc_id, local_relpath, op_depth) " \
99   "  ); " \
100   "CREATE UNIQUE INDEX I_NODES_PARENT ON NODES (wc_id, parent_relpath, " \
101   "                                             local_relpath, op_depth); " \
102   "CREATE UNIQUE INDEX I_NODES_MOVED ON NODES (wc_id, moved_to, op_depth); " \
103   "CREATE VIEW NODES_CURRENT AS " \
104   "  SELECT * FROM nodes AS n " \
105   "    WHERE op_depth = (SELECT MAX(op_depth) FROM nodes AS n2 " \
106   "                      WHERE n2.wc_id = n.wc_id " \
107   "                        AND n2.local_relpath = n.local_relpath); " \
108   "CREATE VIEW NODES_BASE AS " \
109   "  SELECT * FROM nodes " \
110   "  WHERE op_depth = 0; " \
111   ""
112
113 #define STMT_CREATE_NODES_TRIGGERS 2
114 #define STMT_2_INFO {"STMT_CREATE_NODES_TRIGGERS", NULL}
115 #define STMT_2 \
116   "CREATE TRIGGER nodes_insert_trigger " \
117   "AFTER INSERT ON nodes " \
118   "WHEN NEW.checksum IS NOT NULL " \
119   "BEGIN " \
120   "  UPDATE pristine SET refcount = refcount + 1 " \
121   "  WHERE checksum = NEW.checksum; " \
122   "END; " \
123   "CREATE TRIGGER nodes_delete_trigger " \
124   "AFTER DELETE ON nodes " \
125   "WHEN OLD.checksum IS NOT NULL " \
126   "BEGIN " \
127   "  UPDATE pristine SET refcount = refcount - 1 " \
128   "  WHERE checksum = OLD.checksum; " \
129   "END; " \
130   "CREATE TRIGGER nodes_update_checksum_trigger " \
131   "AFTER UPDATE OF checksum ON nodes " \
132   "WHEN NEW.checksum IS NOT OLD.checksum " \
133   "BEGIN " \
134   "  UPDATE pristine SET refcount = refcount + 1 " \
135   "  WHERE checksum = NEW.checksum; " \
136   "  UPDATE pristine SET refcount = refcount - 1 " \
137   "  WHERE checksum = OLD.checksum; " \
138   "END; " \
139   ""
140
141 #define STMT_CREATE_EXTERNALS 3
142 #define STMT_3_INFO {"STMT_CREATE_EXTERNALS", NULL}
143 #define STMT_3 \
144   "CREATE TABLE EXTERNALS ( " \
145   "  wc_id  INTEGER NOT NULL REFERENCES WCROOT (id), " \
146   "  local_relpath  TEXT NOT NULL, " \
147   "  parent_relpath  TEXT NOT NULL, " \
148   "  repos_id  INTEGER NOT NULL REFERENCES REPOSITORY (id), " \
149   "  presence  TEXT NOT NULL, " \
150   "  kind  TEXT NOT NULL, " \
151   "  def_local_relpath         TEXT NOT NULL, " \
152   "  def_repos_relpath         TEXT NOT NULL, " \
153   "  def_operational_revision  TEXT, " \
154   "  def_revision              TEXT, " \
155   "  PRIMARY KEY (wc_id, local_relpath) " \
156   "); " \
157   "CREATE UNIQUE INDEX I_EXTERNALS_DEFINED ON EXTERNALS (wc_id, " \
158   "                                                      def_local_relpath, " \
159   "                                                      local_relpath); " \
160   ""
161
162 #define STMT_UPGRADE_TO_20 4
163 #define STMT_4_INFO {"STMT_UPGRADE_TO_20", NULL}
164 #define STMT_4 \
165   "UPDATE BASE_NODE SET checksum = (SELECT checksum FROM pristine " \
166   "                                 WHERE md5_checksum = BASE_NODE.checksum) " \
167   "WHERE EXISTS (SELECT 1 FROM pristine WHERE md5_checksum = BASE_NODE.checksum); " \
168   "UPDATE WORKING_NODE SET checksum = (SELECT checksum FROM pristine " \
169   "                                    WHERE md5_checksum = WORKING_NODE.checksum) " \
170   "WHERE EXISTS (SELECT 1 FROM pristine " \
171   "              WHERE md5_checksum = WORKING_NODE.checksum); " \
172   "INSERT INTO NODES ( " \
173   "       wc_id, local_relpath, op_depth, parent_relpath, " \
174   "       repos_id, repos_path, revision, " \
175   "       presence, depth, moved_here, moved_to, kind, " \
176   "       changed_revision, changed_date, changed_author, " \
177   "       checksum, properties, translated_size, last_mod_time, " \
178   "       dav_cache, symlink_target, file_external ) " \
179   "SELECT wc_id, local_relpath, 0 , parent_relpath, " \
180   "       repos_id, repos_relpath, revnum, " \
181   "       presence, depth, NULL , NULL , kind, " \
182   "       changed_rev, changed_date, changed_author, " \
183   "       checksum, properties, translated_size, last_mod_time, " \
184   "       dav_cache, symlink_target, file_external " \
185   "FROM BASE_NODE; " \
186   "INSERT INTO NODES ( " \
187   "       wc_id, local_relpath, op_depth, parent_relpath, " \
188   "       repos_id, repos_path, revision, " \
189   "       presence, depth, moved_here, moved_to, kind, " \
190   "       changed_revision, changed_date, changed_author, " \
191   "       checksum, properties, translated_size, last_mod_time, " \
192   "       dav_cache, symlink_target, file_external ) " \
193   "SELECT wc_id, local_relpath, 2 , parent_relpath, " \
194   "       copyfrom_repos_id, copyfrom_repos_path, copyfrom_revnum, " \
195   "       presence, depth, NULL , NULL , kind, " \
196   "       changed_rev, changed_date, changed_author, " \
197   "       checksum, properties, translated_size, last_mod_time, " \
198   "       NULL , symlink_target, NULL " \
199   "FROM WORKING_NODE; " \
200   "DROP TABLE BASE_NODE; " \
201   "DROP TABLE WORKING_NODE; " \
202   "PRAGMA user_version = 20; " \
203   ""
204
205 #define STMT_UPGRADE_TO_21 5
206 #define STMT_5_INFO {"STMT_UPGRADE_TO_21", NULL}
207 #define STMT_5 \
208   "PRAGMA user_version = 21; " \
209   ""
210
211 #define STMT_UPGRADE_21_SELECT_OLD_TREE_CONFLICT 6
212 #define STMT_6_INFO {"STMT_UPGRADE_21_SELECT_OLD_TREE_CONFLICT", NULL}
213 #define STMT_6 \
214   "SELECT wc_id, local_relpath, tree_conflict_data " \
215   "FROM actual_node " \
216   "WHERE tree_conflict_data IS NOT NULL " \
217   ""
218
219 #define STMT_UPGRADE_21_ERASE_OLD_CONFLICTS 7
220 #define STMT_7_INFO {"STMT_UPGRADE_21_ERASE_OLD_CONFLICTS", NULL}
221 #define STMT_7 \
222   "UPDATE actual_node SET tree_conflict_data = NULL " \
223   ""
224
225 #define STMT_UPGRADE_TO_22 8
226 #define STMT_8_INFO {"STMT_UPGRADE_TO_22", NULL}
227 #define STMT_8 \
228   "UPDATE actual_node SET tree_conflict_data = conflict_data; " \
229   "UPDATE actual_node SET conflict_data = NULL; " \
230   "PRAGMA user_version = 22; " \
231   ""
232
233 #define STMT_UPGRADE_TO_23 9
234 #define STMT_9_INFO {"STMT_UPGRADE_TO_23", NULL}
235 #define STMT_9 \
236   "PRAGMA user_version = 23; " \
237   ""
238
239 #define STMT_UPGRADE_23_HAS_WORKING_NODES 10
240 #define STMT_10_INFO {"STMT_UPGRADE_23_HAS_WORKING_NODES", NULL}
241 #define STMT_10 \
242   "SELECT 1 FROM nodes WHERE op_depth > 0 " \
243   "LIMIT 1 " \
244   ""
245
246 #define STMT_UPGRADE_TO_24 11
247 #define STMT_11_INFO {"STMT_UPGRADE_TO_24", NULL}
248 #define STMT_11 \
249   "UPDATE pristine SET refcount = " \
250   "  (SELECT COUNT(*) FROM nodes " \
251   "   WHERE checksum = pristine.checksum ); " \
252   "PRAGMA user_version = 24; " \
253   ""
254
255 #define STMT_UPGRADE_TO_25 12
256 #define STMT_12_INFO {"STMT_UPGRADE_TO_25", NULL}
257 #define STMT_12 \
258   "DROP VIEW IF EXISTS NODES_CURRENT; " \
259   "CREATE VIEW NODES_CURRENT AS " \
260   "  SELECT * FROM nodes " \
261   "    JOIN (SELECT wc_id, local_relpath, MAX(op_depth) AS op_depth FROM nodes " \
262   "          GROUP BY wc_id, local_relpath) AS filter " \
263   "    ON nodes.wc_id = filter.wc_id " \
264   "      AND nodes.local_relpath = filter.local_relpath " \
265   "      AND nodes.op_depth = filter.op_depth; " \
266   "PRAGMA user_version = 25; " \
267   ""
268
269 #define STMT_UPGRADE_TO_26 13
270 #define STMT_13_INFO {"STMT_UPGRADE_TO_26", NULL}
271 #define STMT_13 \
272   "DROP VIEW IF EXISTS NODES_BASE; " \
273   "CREATE VIEW NODES_BASE AS " \
274   "  SELECT * FROM nodes " \
275   "  WHERE op_depth = 0; " \
276   "PRAGMA user_version = 26; " \
277   ""
278
279 #define STMT_UPGRADE_TO_27 14
280 #define STMT_14_INFO {"STMT_UPGRADE_TO_27", NULL}
281 #define STMT_14 \
282   "PRAGMA user_version = 27; " \
283   ""
284
285 #define STMT_UPGRADE_27_HAS_ACTUAL_NODES_CONFLICTS 15
286 #define STMT_15_INFO {"STMT_UPGRADE_27_HAS_ACTUAL_NODES_CONFLICTS", NULL}
287 #define STMT_15 \
288   "SELECT 1 FROM actual_node " \
289   "WHERE NOT ((prop_reject IS NULL) AND (conflict_old IS NULL) " \
290   "           AND (conflict_new IS NULL) AND (conflict_working IS NULL) " \
291   "           AND (tree_conflict_data IS NULL)) " \
292   "LIMIT 1 " \
293   ""
294
295 #define STMT_UPGRADE_TO_28 16
296 #define STMT_16_INFO {"STMT_UPGRADE_TO_28", NULL}
297 #define STMT_16 \
298   "UPDATE NODES SET checksum = (SELECT checksum FROM pristine " \
299   "                             WHERE md5_checksum = nodes.checksum) " \
300   "WHERE EXISTS (SELECT 1 FROM pristine WHERE md5_checksum = nodes.checksum); " \
301   "PRAGMA user_version = 28; " \
302   ""
303
304 #define STMT_UPGRADE_TO_29 17
305 #define STMT_17_INFO {"STMT_UPGRADE_TO_29", NULL}
306 #define STMT_17 \
307   "DROP TRIGGER IF EXISTS nodes_update_checksum_trigger; " \
308   "DROP TRIGGER IF EXISTS nodes_insert_trigger; " \
309   "DROP TRIGGER IF EXISTS nodes_delete_trigger; " \
310   "CREATE TRIGGER nodes_update_checksum_trigger " \
311   "AFTER UPDATE OF checksum ON nodes " \
312   "WHEN NEW.checksum IS NOT OLD.checksum " \
313   "BEGIN " \
314   "  UPDATE pristine SET refcount = refcount + 1 " \
315   "  WHERE checksum = NEW.checksum; " \
316   "  UPDATE pristine SET refcount = refcount - 1 " \
317   "  WHERE checksum = OLD.checksum; " \
318   "END; " \
319   "CREATE TRIGGER nodes_insert_trigger " \
320   "AFTER INSERT ON nodes " \
321   "WHEN NEW.checksum IS NOT NULL " \
322   "BEGIN " \
323   "  UPDATE pristine SET refcount = refcount + 1 " \
324   "  WHERE checksum = NEW.checksum; " \
325   "END; " \
326   "CREATE TRIGGER nodes_delete_trigger " \
327   "AFTER DELETE ON nodes " \
328   "WHEN OLD.checksum IS NOT NULL " \
329   "BEGIN " \
330   "  UPDATE pristine SET refcount = refcount - 1 " \
331   "  WHERE checksum = OLD.checksum; " \
332   "END; " \
333   "PRAGMA user_version = 29; " \
334   ""
335
336 #define STMT_UPGRADE_TO_30 18
337 #define STMT_18_INFO {"STMT_UPGRADE_TO_30", NULL}
338 #define STMT_18 \
339   "CREATE UNIQUE INDEX IF NOT EXISTS I_NODES_MOVED " \
340   "ON NODES (wc_id, moved_to, op_depth); " \
341   "CREATE INDEX IF NOT EXISTS I_PRISTINE_MD5 ON PRISTINE (md5_checksum); " \
342   "UPDATE nodes SET presence = \"server-excluded\" WHERE presence = \"absent\"; " \
343   "UPDATE nodes SET file_external=1 WHERE file_external IS NOT NULL; " \
344   ""
345
346 #define STMT_UPGRADE_30_SELECT_CONFLICT_SEPARATE 19
347 #define STMT_19_INFO {"STMT_UPGRADE_30_SELECT_CONFLICT_SEPARATE", NULL}
348 #define STMT_19 \
349   "SELECT wc_id, local_relpath, " \
350   "  conflict_old, conflict_working, conflict_new, prop_reject, tree_conflict_data " \
351   "FROM actual_node " \
352   "WHERE conflict_old IS NOT NULL " \
353   "   OR conflict_working IS NOT NULL " \
354   "   OR conflict_new IS NOT NULL " \
355   "   OR prop_reject IS NOT NULL " \
356   "   OR tree_conflict_data IS NOT NULL " \
357   "ORDER by wc_id, local_relpath " \
358   ""
359
360 #define STMT_UPGRADE_30_SET_CONFLICT 20
361 #define STMT_20_INFO {"STMT_UPGRADE_30_SET_CONFLICT", NULL}
362 #define STMT_20 \
363   "UPDATE actual_node SET conflict_data = ?3, conflict_old = NULL, " \
364   "  conflict_working = NULL, conflict_new = NULL, prop_reject = NULL, " \
365   "  tree_conflict_data = NULL " \
366   "WHERE wc_id = ?1 and local_relpath = ?2 " \
367   ""
368
369 #define STMT_UPGRADE_TO_31_ALTER_TABLE 21
370 #define STMT_21_INFO {"STMT_UPGRADE_TO_31_ALTER_TABLE", NULL}
371 #define STMT_21 \
372   "ALTER TABLE NODES ADD COLUMN inherited_props BLOB; " \
373   ""
374
375 #define STMT_UPGRADE_TO_31_FINALIZE 22
376 #define STMT_22_INFO {"STMT_UPGRADE_TO_31_FINALIZE", NULL}
377 #define STMT_22 \
378   "DROP INDEX IF EXISTS I_ACTUAL_CHANGELIST; " \
379   "DROP INDEX IF EXISTS I_EXTERNALS_PARENT; " \
380   "DROP INDEX I_NODES_PARENT; " \
381   "CREATE UNIQUE INDEX I_NODES_PARENT ON NODES (wc_id, parent_relpath, " \
382   "                                             local_relpath, op_depth); " \
383   "DROP INDEX I_ACTUAL_PARENT; " \
384   "CREATE UNIQUE INDEX I_ACTUAL_PARENT ON ACTUAL_NODE (wc_id, parent_relpath, " \
385   "                                                    local_relpath); " \
386   "PRAGMA user_version = 31; " \
387   ""
388
389 #define STMT_UPGRADE_31_SELECT_WCROOT_NODES 23
390 #define STMT_23_INFO {"STMT_UPGRADE_31_SELECT_WCROOT_NODES", NULL}
391 #define STMT_23 \
392   "SELECT l.wc_id, l.local_relpath FROM nodes as l " \
393   "LEFT OUTER JOIN nodes as r " \
394   "ON l.wc_id = r.wc_id " \
395   "   AND r.local_relpath = l.parent_relpath " \
396   "   AND r.op_depth = 0 " \
397   "WHERE l.op_depth = 0 " \
398   "  AND l.repos_path != '' " \
399   "  AND ((l.repos_id IS NOT r.repos_id) " \
400   "       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))) " \
401   ""
402
403 #define STMT_UPGRADE_TO_32 24
404 #define STMT_24_INFO {"STMT_UPGRADE_TO_32", NULL}
405 #define STMT_24 \
406   "DROP INDEX IF EXISTS I_ACTUAL_CHANGELIST; " \
407   "DROP INDEX IF EXISTS I_EXTERNALS_PARENT; " \
408   "CREATE INDEX I_EXTERNALS_PARENT ON EXTERNALS (wc_id, parent_relpath); " \
409   "DROP INDEX I_NODES_PARENT; " \
410   "CREATE UNIQUE INDEX I_NODES_PARENT ON NODES (wc_id, parent_relpath, " \
411   "                                             local_relpath, op_depth); " \
412   "DROP INDEX I_ACTUAL_PARENT; " \
413   "CREATE UNIQUE INDEX I_ACTUAL_PARENT ON ACTUAL_NODE (wc_id, parent_relpath, " \
414   "                                                    local_relpath); " \
415   "-- format: YYY " \
416   ""
417
418 #define WC_METADATA_SQL_99 \
419   "CREATE TABLE ACTUAL_NODE_BACKUP ( " \
420   "  wc_id  INTEGER NOT NULL, " \
421   "  local_relpath  TEXT NOT NULL, " \
422   "  parent_relpath  TEXT, " \
423   "  properties  BLOB, " \
424   "  conflict_old  TEXT, " \
425   "  conflict_new  TEXT, " \
426   "  conflict_working  TEXT, " \
427   "  prop_reject  TEXT, " \
428   "  changelist  TEXT, " \
429   "  text_mod  TEXT " \
430   "  ); " \
431   "INSERT INTO ACTUAL_NODE_BACKUP SELECT " \
432   "  wc_id, local_relpath, parent_relpath, properties, conflict_old, " \
433   "  conflict_new, conflict_working, prop_reject, changelist, text_mod " \
434   "FROM ACTUAL_NODE; " \
435   "DROP TABLE ACTUAL_NODE; " \
436   "CREATE TABLE ACTUAL_NODE ( " \
437   "  wc_id  INTEGER NOT NULL REFERENCES WCROOT (id), " \
438   "  local_relpath  TEXT NOT NULL, " \
439   "  parent_relpath  TEXT, " \
440   "  properties  BLOB, " \
441   "  conflict_old  TEXT, " \
442   "  conflict_new  TEXT, " \
443   "  conflict_working  TEXT, " \
444   "  prop_reject  TEXT, " \
445   "  changelist  TEXT, " \
446   "  text_mod  TEXT, " \
447   "  PRIMARY KEY (wc_id, local_relpath) " \
448   "  ); " \
449   "CREATE UNIQUE INDEX I_ACTUAL_PARENT ON ACTUAL_NODE (wc_id, parent_relpath, " \
450   "                                                    local_relpath); " \
451   "INSERT INTO ACTUAL_NODE SELECT " \
452   "  wc_id, local_relpath, parent_relpath, properties, conflict_old, " \
453   "  conflict_new, conflict_working, prop_reject, changelist, text_mod " \
454   "FROM ACTUAL_NODE_BACKUP; " \
455   "DROP TABLE ACTUAL_NODE_BACKUP; " \
456   ""
457
458 #define WC_METADATA_SQL_DECLARE_STATEMENTS(varname) \
459   static const char * const varname[] = { \
460     STMT_0, \
461     STMT_1, \
462     STMT_2, \
463     STMT_3, \
464     STMT_4, \
465     STMT_5, \
466     STMT_6, \
467     STMT_7, \
468     STMT_8, \
469     STMT_9, \
470     STMT_10, \
471     STMT_11, \
472     STMT_12, \
473     STMT_13, \
474     STMT_14, \
475     STMT_15, \
476     STMT_16, \
477     STMT_17, \
478     STMT_18, \
479     STMT_19, \
480     STMT_20, \
481     STMT_21, \
482     STMT_22, \
483     STMT_23, \
484     STMT_24, \
485     NULL \
486   }
487
488 #define WC_METADATA_SQL_DECLARE_STATEMENT_INFO(varname) \
489   static const char * const varname[][2] = { \
490     STMT_0_INFO, \
491     STMT_1_INFO, \
492     STMT_2_INFO, \
493     STMT_3_INFO, \
494     STMT_4_INFO, \
495     STMT_5_INFO, \
496     STMT_6_INFO, \
497     STMT_7_INFO, \
498     STMT_8_INFO, \
499     STMT_9_INFO, \
500     STMT_10_INFO, \
501     STMT_11_INFO, \
502     STMT_12_INFO, \
503     STMT_13_INFO, \
504     STMT_14_INFO, \
505     STMT_15_INFO, \
506     STMT_16_INFO, \
507     STMT_17_INFO, \
508     STMT_18_INFO, \
509     STMT_19_INFO, \
510     STMT_20_INFO, \
511     STMT_21_INFO, \
512     STMT_22_INFO, \
513     STMT_23_INFO, \
514     STMT_24_INFO, \
515     {NULL, NULL} \
516   }