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