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