wc-metadata.h revision 269847
1/* This file is automatically generated from wc-metadata.sql and .dist_sandbox/subversion-1.8.10/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_INSTALL_SCHEMA_STATISTICS 4 163#define STMT_4_INFO {"STMT_INSTALL_SCHEMA_STATISTICS", NULL} 164#define STMT_4 \ 165 "ANALYZE sqlite_master; " \ 166 "DELETE FROM sqlite_stat1 " \ 167 "WHERE tbl in ('NODES', 'ACTUAL_NODE', 'LOCK', 'WC_LOCK'); " \ 168 "INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES " \ 169 " ('NODES', 'sqlite_autoindex_NODES_1', '8000 8000 2 1'); " \ 170 "INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES " \ 171 " ('NODES', 'I_NODES_PARENT', '8000 8000 10 2 1'); " \ 172 "INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES " \ 173 " ('NODES', 'I_NODES_MOVED', '8000 8000 1 1'); " \ 174 "INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES " \ 175 " ('ACTUAL_NODE', 'sqlite_autoindex_ACTUAL_NODE_1', '8000 8000 1'); " \ 176 "INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES " \ 177 " ('ACTUAL_NODE', 'I_ACTUAL_PARENT', '8000 8000 10 1'); " \ 178 "INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES " \ 179 " ('LOCK', 'sqlite_autoindex_LOCK_1', '100 100 1'); " \ 180 "INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES " \ 181 " ('WC_LOCK', 'sqlite_autoindex_WC_LOCK_1', '100 100 1'); " \ 182 "ANALYZE sqlite_master; " \ 183 "" 184 185#define STMT_UPGRADE_TO_20 5 186#define STMT_5_INFO {"STMT_UPGRADE_TO_20", NULL} 187#define STMT_5 \ 188 "UPDATE BASE_NODE SET checksum = (SELECT checksum FROM pristine " \ 189 " WHERE md5_checksum = BASE_NODE.checksum) " \ 190 "WHERE EXISTS (SELECT 1 FROM pristine WHERE md5_checksum = BASE_NODE.checksum); " \ 191 "UPDATE WORKING_NODE SET checksum = (SELECT checksum FROM pristine " \ 192 " WHERE md5_checksum = WORKING_NODE.checksum) " \ 193 "WHERE EXISTS (SELECT 1 FROM pristine " \ 194 " WHERE md5_checksum = WORKING_NODE.checksum); " \ 195 "INSERT INTO NODES ( " \ 196 " wc_id, local_relpath, op_depth, parent_relpath, " \ 197 " repos_id, repos_path, revision, " \ 198 " presence, depth, moved_here, moved_to, kind, " \ 199 " changed_revision, changed_date, changed_author, " \ 200 " checksum, properties, translated_size, last_mod_time, " \ 201 " dav_cache, symlink_target, file_external ) " \ 202 "SELECT wc_id, local_relpath, 0 , parent_relpath, " \ 203 " repos_id, repos_relpath, revnum, " \ 204 " presence, depth, NULL , NULL , kind, " \ 205 " changed_rev, changed_date, changed_author, " \ 206 " checksum, properties, translated_size, last_mod_time, " \ 207 " dav_cache, symlink_target, file_external " \ 208 "FROM BASE_NODE; " \ 209 "INSERT INTO NODES ( " \ 210 " wc_id, local_relpath, op_depth, parent_relpath, " \ 211 " repos_id, repos_path, revision, " \ 212 " presence, depth, moved_here, moved_to, kind, " \ 213 " changed_revision, changed_date, changed_author, " \ 214 " checksum, properties, translated_size, last_mod_time, " \ 215 " dav_cache, symlink_target, file_external ) " \ 216 "SELECT wc_id, local_relpath, 2 , parent_relpath, " \ 217 " copyfrom_repos_id, copyfrom_repos_path, copyfrom_revnum, " \ 218 " presence, depth, NULL , NULL , kind, " \ 219 " changed_rev, changed_date, changed_author, " \ 220 " checksum, properties, translated_size, last_mod_time, " \ 221 " NULL , symlink_target, NULL " \ 222 "FROM WORKING_NODE; " \ 223 "DROP TABLE BASE_NODE; " \ 224 "DROP TABLE WORKING_NODE; " \ 225 "PRAGMA user_version = 20; " \ 226 "" 227 228#define STMT_UPGRADE_TO_21 6 229#define STMT_6_INFO {"STMT_UPGRADE_TO_21", NULL} 230#define STMT_6 \ 231 "PRAGMA user_version = 21; " \ 232 "" 233 234#define STMT_UPGRADE_21_SELECT_OLD_TREE_CONFLICT 7 235#define STMT_7_INFO {"STMT_UPGRADE_21_SELECT_OLD_TREE_CONFLICT", NULL} 236#define STMT_7 \ 237 "SELECT wc_id, local_relpath, tree_conflict_data " \ 238 "FROM actual_node " \ 239 "WHERE tree_conflict_data IS NOT NULL " \ 240 "" 241 242#define STMT_UPGRADE_21_ERASE_OLD_CONFLICTS 8 243#define STMT_8_INFO {"STMT_UPGRADE_21_ERASE_OLD_CONFLICTS", NULL} 244#define STMT_8 \ 245 "UPDATE actual_node SET tree_conflict_data = NULL " \ 246 "" 247 248#define STMT_UPGRADE_TO_22 9 249#define STMT_9_INFO {"STMT_UPGRADE_TO_22", NULL} 250#define STMT_9 \ 251 "UPDATE actual_node SET tree_conflict_data = conflict_data; " \ 252 "UPDATE actual_node SET conflict_data = NULL; " \ 253 "PRAGMA user_version = 22; " \ 254 "" 255 256#define STMT_UPGRADE_TO_23 10 257#define STMT_10_INFO {"STMT_UPGRADE_TO_23", NULL} 258#define STMT_10 \ 259 "PRAGMA user_version = 23; " \ 260 "" 261 262#define STMT_UPGRADE_23_HAS_WORKING_NODES 11 263#define STMT_11_INFO {"STMT_UPGRADE_23_HAS_WORKING_NODES", NULL} 264#define STMT_11 \ 265 "SELECT 1 FROM nodes WHERE op_depth > 0 " \ 266 "LIMIT 1 " \ 267 "" 268 269#define STMT_UPGRADE_TO_24 12 270#define STMT_12_INFO {"STMT_UPGRADE_TO_24", NULL} 271#define STMT_12 \ 272 "UPDATE pristine SET refcount = " \ 273 " (SELECT COUNT(*) FROM nodes " \ 274 " WHERE checksum = pristine.checksum ); " \ 275 "PRAGMA user_version = 24; " \ 276 "" 277 278#define STMT_UPGRADE_TO_25 13 279#define STMT_13_INFO {"STMT_UPGRADE_TO_25", NULL} 280#define STMT_13 \ 281 "DROP VIEW IF EXISTS NODES_CURRENT; " \ 282 "CREATE VIEW NODES_CURRENT AS " \ 283 " SELECT * FROM nodes " \ 284 " JOIN (SELECT wc_id, local_relpath, MAX(op_depth) AS op_depth FROM nodes " \ 285 " GROUP BY wc_id, local_relpath) AS filter " \ 286 " ON nodes.wc_id = filter.wc_id " \ 287 " AND nodes.local_relpath = filter.local_relpath " \ 288 " AND nodes.op_depth = filter.op_depth; " \ 289 "PRAGMA user_version = 25; " \ 290 "" 291 292#define STMT_UPGRADE_TO_26 14 293#define STMT_14_INFO {"STMT_UPGRADE_TO_26", NULL} 294#define STMT_14 \ 295 "DROP VIEW IF EXISTS NODES_BASE; " \ 296 "CREATE VIEW NODES_BASE AS " \ 297 " SELECT * FROM nodes " \ 298 " WHERE op_depth = 0; " \ 299 "PRAGMA user_version = 26; " \ 300 "" 301 302#define STMT_UPGRADE_TO_27 15 303#define STMT_15_INFO {"STMT_UPGRADE_TO_27", NULL} 304#define STMT_15 \ 305 "PRAGMA user_version = 27; " \ 306 "" 307 308#define STMT_UPGRADE_27_HAS_ACTUAL_NODES_CONFLICTS 16 309#define STMT_16_INFO {"STMT_UPGRADE_27_HAS_ACTUAL_NODES_CONFLICTS", NULL} 310#define STMT_16 \ 311 "SELECT 1 FROM actual_node " \ 312 "WHERE NOT ((prop_reject IS NULL) AND (conflict_old IS NULL) " \ 313 " AND (conflict_new IS NULL) AND (conflict_working IS NULL) " \ 314 " AND (tree_conflict_data IS NULL)) " \ 315 "LIMIT 1 " \ 316 "" 317 318#define STMT_UPGRADE_TO_28 17 319#define STMT_17_INFO {"STMT_UPGRADE_TO_28", NULL} 320#define STMT_17 \ 321 "UPDATE NODES SET checksum = (SELECT checksum FROM pristine " \ 322 " WHERE md5_checksum = nodes.checksum) " \ 323 "WHERE EXISTS (SELECT 1 FROM pristine WHERE md5_checksum = nodes.checksum); " \ 324 "PRAGMA user_version = 28; " \ 325 "" 326 327#define STMT_UPGRADE_TO_29 18 328#define STMT_18_INFO {"STMT_UPGRADE_TO_29", NULL} 329#define STMT_18 \ 330 "DROP TRIGGER IF EXISTS nodes_update_checksum_trigger; " \ 331 "DROP TRIGGER IF EXISTS nodes_insert_trigger; " \ 332 "DROP TRIGGER IF EXISTS nodes_delete_trigger; " \ 333 "CREATE TRIGGER nodes_update_checksum_trigger " \ 334 "AFTER UPDATE OF checksum ON nodes " \ 335 "WHEN NEW.checksum IS NOT OLD.checksum " \ 336 "BEGIN " \ 337 " UPDATE pristine SET refcount = refcount + 1 " \ 338 " WHERE checksum = NEW.checksum; " \ 339 " UPDATE pristine SET refcount = refcount - 1 " \ 340 " WHERE checksum = OLD.checksum; " \ 341 "END; " \ 342 "CREATE TRIGGER nodes_insert_trigger " \ 343 "AFTER INSERT ON nodes " \ 344 "WHEN NEW.checksum IS NOT NULL " \ 345 "BEGIN " \ 346 " UPDATE pristine SET refcount = refcount + 1 " \ 347 " WHERE checksum = NEW.checksum; " \ 348 "END; " \ 349 "CREATE TRIGGER nodes_delete_trigger " \ 350 "AFTER DELETE ON nodes " \ 351 "WHEN OLD.checksum IS NOT NULL " \ 352 "BEGIN " \ 353 " UPDATE pristine SET refcount = refcount - 1 " \ 354 " WHERE checksum = OLD.checksum; " \ 355 "END; " \ 356 "PRAGMA user_version = 29; " \ 357 "" 358 359#define STMT_UPGRADE_TO_30 19 360#define STMT_19_INFO {"STMT_UPGRADE_TO_30", NULL} 361#define STMT_19 \ 362 "CREATE UNIQUE INDEX IF NOT EXISTS I_NODES_MOVED " \ 363 "ON NODES (wc_id, moved_to, op_depth); " \ 364 "CREATE INDEX IF NOT EXISTS I_PRISTINE_MD5 ON PRISTINE (md5_checksum); " \ 365 "UPDATE nodes SET presence = \"server-excluded\" WHERE presence = \"absent\"; " \ 366 "UPDATE nodes SET file_external=1 WHERE file_external IS NOT NULL; " \ 367 "" 368 369#define STMT_UPGRADE_30_SELECT_CONFLICT_SEPARATE 20 370#define STMT_20_INFO {"STMT_UPGRADE_30_SELECT_CONFLICT_SEPARATE", NULL} 371#define STMT_20 \ 372 "SELECT wc_id, local_relpath, " \ 373 " conflict_old, conflict_working, conflict_new, prop_reject, tree_conflict_data " \ 374 "FROM actual_node " \ 375 "WHERE conflict_old IS NOT NULL " \ 376 " OR conflict_working IS NOT NULL " \ 377 " OR conflict_new IS NOT NULL " \ 378 " OR prop_reject IS NOT NULL " \ 379 " OR tree_conflict_data IS NOT NULL " \ 380 "ORDER by wc_id, local_relpath " \ 381 "" 382 383#define STMT_UPGRADE_30_SET_CONFLICT 21 384#define STMT_21_INFO {"STMT_UPGRADE_30_SET_CONFLICT", NULL} 385#define STMT_21 \ 386 "UPDATE actual_node SET conflict_data = ?3, conflict_old = NULL, " \ 387 " conflict_working = NULL, conflict_new = NULL, prop_reject = NULL, " \ 388 " tree_conflict_data = NULL " \ 389 "WHERE wc_id = ?1 and local_relpath = ?2 " \ 390 "" 391 392#define STMT_UPGRADE_TO_31_ALTER_TABLE 22 393#define STMT_22_INFO {"STMT_UPGRADE_TO_31_ALTER_TABLE", NULL} 394#define STMT_22 \ 395 "ALTER TABLE NODES ADD COLUMN inherited_props BLOB; " \ 396 "" 397 398#define STMT_UPGRADE_TO_31_FINALIZE 23 399#define STMT_23_INFO {"STMT_UPGRADE_TO_31_FINALIZE", NULL} 400#define STMT_23 \ 401 "DROP INDEX IF EXISTS I_ACTUAL_CHANGELIST; " \ 402 "DROP INDEX IF EXISTS I_EXTERNALS_PARENT; " \ 403 "DROP INDEX I_NODES_PARENT; " \ 404 "CREATE UNIQUE INDEX I_NODES_PARENT ON NODES (wc_id, parent_relpath, " \ 405 " local_relpath, op_depth); " \ 406 "DROP INDEX I_ACTUAL_PARENT; " \ 407 "CREATE UNIQUE INDEX I_ACTUAL_PARENT ON ACTUAL_NODE (wc_id, parent_relpath, " \ 408 " local_relpath); " \ 409 "PRAGMA user_version = 31; " \ 410 "" 411 412#define STMT_UPGRADE_31_SELECT_WCROOT_NODES 24 413#define STMT_24_INFO {"STMT_UPGRADE_31_SELECT_WCROOT_NODES", NULL} 414#define STMT_24 \ 415 "SELECT l.wc_id, l.local_relpath FROM nodes as l " \ 416 "LEFT OUTER JOIN nodes as r " \ 417 "ON l.wc_id = r.wc_id " \ 418 " AND r.local_relpath = l.parent_relpath " \ 419 " AND r.op_depth = 0 " \ 420 "WHERE l.op_depth = 0 " \ 421 " AND l.repos_path != '' " \ 422 " AND ((l.repos_id IS NOT r.repos_id) " \ 423 " 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))) " \ 424 "" 425 426#define STMT_UPGRADE_TO_32 25 427#define STMT_25_INFO {"STMT_UPGRADE_TO_32", NULL} 428#define STMT_25 \ 429 "DROP INDEX IF EXISTS I_ACTUAL_CHANGELIST; " \ 430 "DROP INDEX IF EXISTS I_EXTERNALS_PARENT; " \ 431 "CREATE INDEX I_EXTERNALS_PARENT ON EXTERNALS (wc_id, parent_relpath); " \ 432 "DROP INDEX I_NODES_PARENT; " \ 433 "CREATE UNIQUE INDEX I_NODES_PARENT ON NODES (wc_id, parent_relpath, " \ 434 " local_relpath, op_depth); " \ 435 "DROP INDEX I_ACTUAL_PARENT; " \ 436 "CREATE UNIQUE INDEX I_ACTUAL_PARENT ON ACTUAL_NODE (wc_id, parent_relpath, " \ 437 " local_relpath); " \ 438 "-- format: YYY " \ 439 "" 440 441#define WC_METADATA_SQL_99 \ 442 "CREATE TABLE ACTUAL_NODE_BACKUP ( " \ 443 " wc_id INTEGER NOT NULL, " \ 444 " local_relpath TEXT NOT NULL, " \ 445 " parent_relpath TEXT, " \ 446 " properties BLOB, " \ 447 " conflict_old TEXT, " \ 448 " conflict_new TEXT, " \ 449 " conflict_working TEXT, " \ 450 " prop_reject TEXT, " \ 451 " changelist TEXT, " \ 452 " text_mod TEXT " \ 453 " ); " \ 454 "INSERT INTO ACTUAL_NODE_BACKUP SELECT " \ 455 " wc_id, local_relpath, parent_relpath, properties, conflict_old, " \ 456 " conflict_new, conflict_working, prop_reject, changelist, text_mod " \ 457 "FROM ACTUAL_NODE; " \ 458 "DROP TABLE ACTUAL_NODE; " \ 459 "CREATE TABLE ACTUAL_NODE ( " \ 460 " wc_id INTEGER NOT NULL REFERENCES WCROOT (id), " \ 461 " local_relpath TEXT NOT NULL, " \ 462 " parent_relpath TEXT, " \ 463 " properties BLOB, " \ 464 " conflict_old TEXT, " \ 465 " conflict_new TEXT, " \ 466 " conflict_working TEXT, " \ 467 " prop_reject TEXT, " \ 468 " changelist TEXT, " \ 469 " text_mod TEXT, " \ 470 " PRIMARY KEY (wc_id, local_relpath) " \ 471 " ); " \ 472 "CREATE UNIQUE INDEX I_ACTUAL_PARENT ON ACTUAL_NODE (wc_id, parent_relpath, " \ 473 " local_relpath); " \ 474 "INSERT INTO ACTUAL_NODE SELECT " \ 475 " wc_id, local_relpath, parent_relpath, properties, conflict_old, " \ 476 " conflict_new, conflict_working, prop_reject, changelist, text_mod " \ 477 "FROM ACTUAL_NODE_BACKUP; " \ 478 "DROP TABLE ACTUAL_NODE_BACKUP; " \ 479 "" 480 481#define WC_METADATA_SQL_DECLARE_STATEMENTS(varname) \ 482 static const char * const varname[] = { \ 483 STMT_0, \ 484 STMT_1, \ 485 STMT_2, \ 486 STMT_3, \ 487 STMT_4, \ 488 STMT_5, \ 489 STMT_6, \ 490 STMT_7, \ 491 STMT_8, \ 492 STMT_9, \ 493 STMT_10, \ 494 STMT_11, \ 495 STMT_12, \ 496 STMT_13, \ 497 STMT_14, \ 498 STMT_15, \ 499 STMT_16, \ 500 STMT_17, \ 501 STMT_18, \ 502 STMT_19, \ 503 STMT_20, \ 504 STMT_21, \ 505 STMT_22, \ 506 STMT_23, \ 507 STMT_24, \ 508 STMT_25, \ 509 NULL \ 510 } 511 512#define WC_METADATA_SQL_DECLARE_STATEMENT_INFO(varname) \ 513 static const char * const varname[][2] = { \ 514 STMT_0_INFO, \ 515 STMT_1_INFO, \ 516 STMT_2_INFO, \ 517 STMT_3_INFO, \ 518 STMT_4_INFO, \ 519 STMT_5_INFO, \ 520 STMT_6_INFO, \ 521 STMT_7_INFO, \ 522 STMT_8_INFO, \ 523 STMT_9_INFO, \ 524 STMT_10_INFO, \ 525 STMT_11_INFO, \ 526 STMT_12_INFO, \ 527 STMT_13_INFO, \ 528 STMT_14_INFO, \ 529 STMT_15_INFO, \ 530 STMT_16_INFO, \ 531 STMT_17_INFO, \ 532 STMT_18_INFO, \ 533 STMT_19_INFO, \ 534 STMT_20_INFO, \ 535 STMT_21_INFO, \ 536 STMT_22_INFO, \ 537 STMT_23_INFO, \ 538 STMT_24_INFO, \ 539 STMT_25_INFO, \ 540 {NULL, NULL} \ 541 } 542