wc-queries.h revision 299742
1/* This file is automatically generated from wc-queries.sql and .dist_sandbox/subversion-1.9.4/subversion/libsvn_wc/token-map.h. 2 * Do not edit this file -- edit the source and rerun gen-make.py */ 3 4#define STMT_SELECT_NODE_INFO 0 5#define STMT_0_INFO {"STMT_SELECT_NODE_INFO", NULL} 6#define STMT_0 \ 7 "SELECT op_depth, repos_id, repos_path, presence, kind, revision, checksum, " \ 8 " translated_size, changed_revision, changed_date, changed_author, depth, " \ 9 " symlink_target, last_mod_time, properties, moved_here, inherited_props, " \ 10 " moved_to " \ 11 "FROM nodes " \ 12 "WHERE wc_id = ?1 AND local_relpath = ?2 " \ 13 "ORDER BY op_depth DESC " \ 14 "" 15 16#define STMT_SELECT_NODE_INFO_WITH_LOCK 1 17#define STMT_1_INFO {"STMT_SELECT_NODE_INFO_WITH_LOCK", NULL} 18#define STMT_1 \ 19 "SELECT op_depth, nodes.repos_id, nodes.repos_path, presence, kind, revision, " \ 20 " checksum, translated_size, changed_revision, changed_date, changed_author, " \ 21 " depth, symlink_target, last_mod_time, properties, moved_here, " \ 22 " inherited_props, " \ 23 " lock_token, lock_owner, lock_comment, lock_date " \ 24 "FROM nodes " \ 25 "LEFT OUTER JOIN lock ON nodes.repos_id = lock.repos_id " \ 26 " AND nodes.repos_path = lock.repos_relpath " \ 27 "WHERE wc_id = ?1 AND local_relpath = ?2 " \ 28 "ORDER BY op_depth DESC " \ 29 "" 30 31#define STMT_SELECT_BASE_NODE 2 32#define STMT_2_INFO {"STMT_SELECT_BASE_NODE", NULL} 33#define STMT_2 \ 34 "SELECT repos_id, repos_path, presence, kind, revision, checksum, " \ 35 " translated_size, changed_revision, changed_date, changed_author, depth, " \ 36 " symlink_target, last_mod_time, properties, file_external " \ 37 "FROM nodes " \ 38 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \ 39 "" 40 41#define STMT_SELECT_BASE_NODE_WITH_LOCK 3 42#define STMT_3_INFO {"STMT_SELECT_BASE_NODE_WITH_LOCK", NULL} 43#define STMT_3 \ 44 "SELECT nodes.repos_id, nodes.repos_path, presence, kind, revision, " \ 45 " checksum, translated_size, changed_revision, changed_date, changed_author, " \ 46 " depth, symlink_target, last_mod_time, properties, file_external, " \ 47 " lock_token, lock_owner, lock_comment, lock_date " \ 48 "FROM nodes " \ 49 "LEFT OUTER JOIN lock ON nodes.repos_id = lock.repos_id " \ 50 " AND nodes.repos_path = lock.repos_relpath " \ 51 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \ 52 "" 53 54#define STMT_SELECT_BASE_CHILDREN_INFO 4 55#define STMT_4_INFO {"STMT_SELECT_BASE_CHILDREN_INFO", NULL} 56#define STMT_4 \ 57 "SELECT local_relpath, nodes.repos_id, nodes.repos_path, presence, kind, " \ 58 " revision, depth, file_external " \ 59 "FROM nodes " \ 60 "WHERE wc_id = ?1 AND parent_relpath = ?2 AND op_depth = 0 " \ 61 "" 62 63#define STMT_SELECT_BASE_CHILDREN_INFO_LOCK 5 64#define STMT_5_INFO {"STMT_SELECT_BASE_CHILDREN_INFO_LOCK", NULL} 65#define STMT_5 \ 66 "SELECT local_relpath, nodes.repos_id, nodes.repos_path, presence, kind, " \ 67 " revision, depth, file_external, " \ 68 " lock_token, lock_owner, lock_comment, lock_date " \ 69 "FROM nodes " \ 70 "LEFT OUTER JOIN lock ON nodes.repos_id = lock.repos_id " \ 71 " AND nodes.repos_path = lock.repos_relpath " \ 72 "WHERE wc_id = ?1 AND parent_relpath = ?2 AND op_depth = 0 " \ 73 "" 74 75#define STMT_SELECT_WORKING_NODE 6 76#define STMT_6_INFO {"STMT_SELECT_WORKING_NODE", NULL} 77#define STMT_6 \ 78 "SELECT op_depth, presence, kind, checksum, translated_size, " \ 79 " changed_revision, changed_date, changed_author, depth, symlink_target, " \ 80 " repos_id, repos_path, revision, " \ 81 " moved_here, moved_to, last_mod_time, properties " \ 82 "FROM nodes " \ 83 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth > 0 " \ 84 "ORDER BY op_depth DESC " \ 85 "LIMIT 1 " \ 86 "" 87 88#define STMT_SELECT_DEPTH_NODE 7 89#define STMT_7_INFO {"STMT_SELECT_DEPTH_NODE", NULL} 90#define STMT_7 \ 91 "SELECT repos_id, repos_path, presence, kind, revision, checksum, " \ 92 " translated_size, changed_revision, changed_date, changed_author, depth, " \ 93 " symlink_target, properties, moved_to, moved_here " \ 94 "FROM nodes " \ 95 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \ 96 "" 97 98#define STMT_SELECT_LOWEST_WORKING_NODE 8 99#define STMT_8_INFO {"STMT_SELECT_LOWEST_WORKING_NODE", NULL} 100#define STMT_8 \ 101 "SELECT op_depth, presence, kind, moved_to " \ 102 "FROM nodes " \ 103 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth > ?3 " \ 104 "ORDER BY op_depth " \ 105 "LIMIT 1 " \ 106 "" 107 108#define STMT_SELECT_HIGHEST_WORKING_NODE 9 109#define STMT_9_INFO {"STMT_SELECT_HIGHEST_WORKING_NODE", NULL} 110#define STMT_9 \ 111 "SELECT op_depth " \ 112 "FROM nodes " \ 113 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth < ?3 " \ 114 "ORDER BY op_depth DESC " \ 115 "LIMIT 1 " \ 116 "" 117 118#define STMT_SELECT_ACTUAL_NODE 10 119#define STMT_10_INFO {"STMT_SELECT_ACTUAL_NODE", NULL} 120#define STMT_10 \ 121 "SELECT changelist, properties, conflict_data " \ 122 "FROM actual_node " \ 123 "WHERE wc_id = ?1 AND local_relpath = ?2 " \ 124 "" 125 126#define STMT_SELECT_NODE_CHILDREN_INFO 11 127#define STMT_11_INFO {"STMT_SELECT_NODE_CHILDREN_INFO", NULL} 128#define STMT_11 \ 129 "SELECT op_depth, nodes.repos_id, nodes.repos_path, presence, kind, revision, " \ 130 " checksum, translated_size, changed_revision, changed_date, changed_author, " \ 131 " depth, symlink_target, last_mod_time, properties, lock_token, lock_owner, " \ 132 " lock_comment, lock_date, local_relpath, moved_here, moved_to, file_external " \ 133 "FROM nodes " \ 134 "LEFT OUTER JOIN lock ON nodes.repos_id = lock.repos_id " \ 135 " AND nodes.repos_path = lock.repos_relpath AND op_depth = 0 " \ 136 "WHERE wc_id = ?1 AND parent_relpath = ?2 " \ 137 "ORDER BY local_relpath DESC, op_depth DESC " \ 138 "" 139 140#define STMT_SELECT_BASE_NODE_CHILDREN_INFO 12 141#define STMT_12_INFO {"STMT_SELECT_BASE_NODE_CHILDREN_INFO", NULL} 142#define STMT_12 \ 143 "SELECT op_depth, nodes.repos_id, nodes.repos_path, presence, kind, revision, " \ 144 " checksum, translated_size, changed_revision, changed_date, changed_author, " \ 145 " depth, symlink_target, last_mod_time, properties, lock_token, lock_owner, " \ 146 " lock_comment, lock_date, local_relpath, moved_here, moved_to, file_external " \ 147 "FROM nodes " \ 148 "LEFT OUTER JOIN lock ON nodes.repos_id = lock.repos_id " \ 149 " AND nodes.repos_path = lock.repos_relpath AND op_depth = 0 " \ 150 "WHERE wc_id = ?1 AND parent_relpath = ?2 AND op_depth = 0 " \ 151 "ORDER BY local_relpath DESC " \ 152 "" 153 154#define STMT_SELECT_NODE_CHILDREN_WALKER_INFO 13 155#define STMT_13_INFO {"STMT_SELECT_NODE_CHILDREN_WALKER_INFO", NULL} 156#define STMT_13 \ 157 "SELECT local_relpath, op_depth, presence, kind " \ 158 "FROM nodes_current " \ 159 "WHERE wc_id = ?1 AND parent_relpath = ?2 " \ 160 "ORDER BY local_relpath " \ 161 "" 162 163#define STMT_SELECT_ACTUAL_CHILDREN_INFO 14 164#define STMT_14_INFO {"STMT_SELECT_ACTUAL_CHILDREN_INFO", NULL} 165#define STMT_14 \ 166 "SELECT local_relpath, changelist, properties, conflict_data " \ 167 "FROM actual_node " \ 168 "WHERE wc_id = ?1 AND parent_relpath = ?2 " \ 169 "" 170 171#define STMT_SELECT_REPOSITORY_BY_ID 15 172#define STMT_15_INFO {"STMT_SELECT_REPOSITORY_BY_ID", NULL} 173#define STMT_15 \ 174 "SELECT root, uuid FROM repository WHERE id = ?1 " \ 175 "" 176 177#define STMT_SELECT_WCROOT_NULL 16 178#define STMT_16_INFO {"STMT_SELECT_WCROOT_NULL", NULL} 179#define STMT_16 \ 180 "SELECT id FROM wcroot WHERE local_abspath IS NULL " \ 181 "" 182 183#define STMT_SELECT_REPOSITORY 17 184#define STMT_17_INFO {"STMT_SELECT_REPOSITORY", NULL} 185#define STMT_17 \ 186 "SELECT id FROM repository WHERE root = ?1 " \ 187 "" 188 189#define STMT_INSERT_REPOSITORY 18 190#define STMT_18_INFO {"STMT_INSERT_REPOSITORY", NULL} 191#define STMT_18 \ 192 "INSERT INTO repository (root, uuid) VALUES (?1, ?2) " \ 193 "" 194 195#define STMT_INSERT_NODE 19 196#define STMT_19_INFO {"STMT_INSERT_NODE", NULL} 197#define STMT_19 \ 198 "INSERT OR REPLACE INTO nodes ( " \ 199 " wc_id, local_relpath, op_depth, parent_relpath, repos_id, repos_path, " \ 200 " revision, presence, depth, kind, changed_revision, changed_date, " \ 201 " changed_author, checksum, properties, translated_size, last_mod_time, " \ 202 " dav_cache, symlink_target, file_external, moved_to, moved_here, " \ 203 " inherited_props) " \ 204 "VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10, ?11, ?12, ?13, ?14, " \ 205 " ?15, ?16, ?17, ?18, ?19, ?20, ?21, ?22, ?23) " \ 206 "" 207 208#define STMT_SELECT_WORKING_PRESENT 20 209#define STMT_20_INFO {"STMT_SELECT_WORKING_PRESENT", NULL} 210#define STMT_20 \ 211 "SELECT local_relpath, kind, checksum, translated_size, last_mod_time " \ 212 "FROM nodes n " \ 213 "WHERE wc_id = ?1 " \ 214 " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \ 215 " AND presence in ('normal', 'incomplete') " \ 216 " AND op_depth = (SELECT MAX(op_depth) " \ 217 " FROM NODES w " \ 218 " WHERE w.wc_id = ?1 " \ 219 " AND w.local_relpath = n.local_relpath) " \ 220 "ORDER BY local_relpath DESC " \ 221 "" 222 223#define STMT_DELETE_NODE_RECURSIVE 21 224#define STMT_21_INFO {"STMT_DELETE_NODE_RECURSIVE", NULL} 225#define STMT_21 \ 226 "DELETE FROM NODES " \ 227 "WHERE wc_id = ?1 " \ 228 " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \ 229 "" 230 231#define STMT_DELETE_NODE 22 232#define STMT_22_INFO {"STMT_DELETE_NODE", NULL} 233#define STMT_22 \ 234 "DELETE " \ 235 "FROM NODES " \ 236 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \ 237 "" 238 239#define STMT_DELETE_ACTUAL_FOR_BASE_RECURSIVE 23 240#define STMT_23_INFO {"STMT_DELETE_ACTUAL_FOR_BASE_RECURSIVE", NULL} 241#define STMT_23 \ 242 "DELETE FROM actual_node " \ 243 "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)) " \ 244 " AND EXISTS(SELECT 1 FROM NODES b " \ 245 " WHERE b.wc_id = ?1 " \ 246 " AND b.local_relpath = actual_node.local_relpath " \ 247 " AND op_depth = 0) " \ 248 " AND NOT EXISTS(SELECT 1 FROM NODES w " \ 249 " WHERE w.wc_id = ?1 " \ 250 " AND w.local_relpath = actual_node.local_relpath " \ 251 " AND op_depth > 0 " \ 252 " AND presence in ('normal', 'incomplete', 'not-present')) " \ 253 "" 254 255#define STMT_DELETE_WORKING_BASE_DELETE 24 256#define STMT_24_INFO {"STMT_DELETE_WORKING_BASE_DELETE", NULL} 257#define STMT_24 \ 258 "DELETE FROM nodes " \ 259 "WHERE wc_id = ?1 AND local_relpath = ?2 " \ 260 " AND presence = 'base-deleted' " \ 261 " AND op_depth > ?3 " \ 262 " AND op_depth = (SELECT MIN(op_depth) FROM nodes n " \ 263 " WHERE n.wc_id = ?1 " \ 264 " AND n.local_relpath = nodes.local_relpath " \ 265 " AND op_depth > ?3) " \ 266 "" 267 268#define STMT_DELETE_WORKING_BASE_DELETE_RECURSIVE 25 269#define STMT_25_INFO {"STMT_DELETE_WORKING_BASE_DELETE_RECURSIVE", NULL} 270#define STMT_25 \ 271 "DELETE FROM nodes " \ 272 "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)) " \ 273 " AND presence = 'base-deleted' " \ 274 " AND op_depth > ?3 " \ 275 " AND op_depth = (SELECT MIN(op_depth) FROM nodes n " \ 276 " WHERE n.wc_id = ?1 " \ 277 " AND n.local_relpath = nodes.local_relpath " \ 278 " AND op_depth > ?3) " \ 279 "" 280 281#define STMT_DELETE_WORKING_RECURSIVE 26 282#define STMT_26_INFO {"STMT_DELETE_WORKING_RECURSIVE", NULL} 283#define STMT_26 \ 284 "DELETE FROM nodes " \ 285 "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)) " \ 286 " AND op_depth > 0 " \ 287 "" 288 289#define STMT_DELETE_BASE_RECURSIVE 27 290#define STMT_27_INFO {"STMT_DELETE_BASE_RECURSIVE", NULL} 291#define STMT_27 \ 292 "DELETE FROM nodes " \ 293 "WHERE wc_id = ?1 AND (local_relpath = ?2 " \ 294 " OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \ 295 " AND op_depth = 0 " \ 296 "" 297 298#define STMT_DELETE_WORKING_OP_DEPTH 28 299#define STMT_28_INFO {"STMT_DELETE_WORKING_OP_DEPTH", NULL} 300#define STMT_28 \ 301 "DELETE FROM nodes " \ 302 "WHERE wc_id = ?1 " \ 303 " 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))) " \ 304 " AND op_depth = ?3 " \ 305 "" 306 307#define STMT_SELECT_LAYER_FOR_REPLACE 29 308#define STMT_29_INFO {"STMT_SELECT_LAYER_FOR_REPLACE", NULL} 309#define STMT_29 \ 310 "SELECT s.local_relpath, s.kind, " \ 311 " (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' " \ 312 "FROM nodes s " \ 313 "WHERE s.wc_id = ?1 AND s.local_relpath = ?2 AND s.op_depth = ?3 " \ 314 "UNION ALL " \ 315 "SELECT s.local_relpath, s.kind, " \ 316 " (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 " \ 317 "FROM nodes s " \ 318 "LEFT OUTER JOIN nodes d ON d.wc_id= ?1 AND d.op_depth = ?5 " \ 319 " AND d.local_relpath = drp " \ 320 "WHERE s.wc_id = ?1 " \ 321 " 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)) " \ 322 " AND s.op_depth = ?3 " \ 323 "ORDER BY s.local_relpath " \ 324 "" 325 326#define STMT_SELECT_DESCENDANTS_OP_DEPTH_RV 30 327#define STMT_30_INFO {"STMT_SELECT_DESCENDANTS_OP_DEPTH_RV", NULL} 328#define STMT_30 \ 329 "SELECT local_relpath, kind " \ 330 "FROM nodes " \ 331 "WHERE wc_id = ?1 " \ 332 " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \ 333 " AND op_depth = ?3 " \ 334 " AND presence in ('normal', 'incomplete') " \ 335 "ORDER BY local_relpath DESC " \ 336 "" 337 338#define STMT_COPY_NODE_MOVE 31 339#define STMT_31_INFO {"STMT_COPY_NODE_MOVE", NULL} 340#define STMT_31 \ 341 "INSERT OR REPLACE INTO nodes ( " \ 342 " wc_id, local_relpath, op_depth, parent_relpath, repos_id, repos_path, " \ 343 " revision, presence, depth, kind, changed_revision, changed_date, " \ 344 " changed_author, checksum, properties, translated_size, last_mod_time, " \ 345 " symlink_target, moved_here, moved_to ) " \ 346 "SELECT " \ 347 " s.wc_id, ?4 , ?5 , ?6 , " \ 348 " s.repos_id, " \ 349 " s.repos_path, s.revision, s.presence, s.depth, s.kind, s.changed_revision, " \ 350 " s.changed_date, s.changed_author, s.checksum, s.properties, " \ 351 " CASE WHEN d.checksum=s.checksum THEN d.translated_size END, " \ 352 " CASE WHEN d.checksum=s.checksum THEN d.last_mod_time END, " \ 353 " s.symlink_target, 1, d.moved_to " \ 354 "FROM nodes s " \ 355 "LEFT JOIN nodes d ON d.wc_id=?1 AND d.local_relpath=?4 AND d.op_depth=?5 " \ 356 "WHERE s.wc_id = ?1 AND s.local_relpath = ?2 AND s.op_depth = ?3 " \ 357 "" 358 359#define STMT_SELECT_NO_LONGER_MOVED_RV 32 360#define STMT_32_INFO {"STMT_SELECT_NO_LONGER_MOVED_RV", NULL} 361#define STMT_32 \ 362 "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, " \ 363 " b.presence, b.op_depth " \ 364 "FROM nodes d " \ 365 "LEFT OUTER JOIN nodes b ON b.wc_id = ?1 AND b.local_relpath = d.local_relpath " \ 366 " AND b.op_depth = (SELECT MAX(x.op_depth) FROM nodes x " \ 367 " WHERE x.wc_id = ?1 " \ 368 " AND x.local_relpath = b.local_relpath " \ 369 " AND x.op_depth < ?3) " \ 370 "WHERE d.wc_id = ?1 " \ 371 " 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)) " \ 372 " AND d.op_depth = ?3 " \ 373 " AND NOT EXISTS(SELECT * FROM nodes s " \ 374 " WHERE s.wc_id = ?1 " \ 375 " AND s.local_relpath = srp " \ 376 " AND s.op_depth = ?5) " \ 377 "ORDER BY d.local_relpath DESC " \ 378 "" 379 380#define STMT_SELECT_OP_DEPTH_CHILDREN 33 381#define STMT_33_INFO {"STMT_SELECT_OP_DEPTH_CHILDREN", NULL} 382#define STMT_33 \ 383 "SELECT local_relpath, kind FROM nodes " \ 384 "WHERE wc_id = ?1 " \ 385 " AND parent_relpath = ?2 " \ 386 " AND op_depth = ?3 " \ 387 " AND presence != 'base-deleted' " \ 388 " AND file_external is NULL " \ 389 "ORDER BY local_relpath " \ 390 "" 391 392#define STMT_SELECT_OP_DEPTH_CHILDREN_EXISTS 34 393#define STMT_34_INFO {"STMT_SELECT_OP_DEPTH_CHILDREN_EXISTS", NULL} 394#define STMT_34 \ 395 "SELECT local_relpath, kind FROM nodes " \ 396 "WHERE wc_id = ?1 " \ 397 " AND parent_relpath = ?2 " \ 398 " AND op_depth = ?3 " \ 399 " AND presence IN ('normal', 'incomplete') " \ 400 "ORDER BY local_relpath " \ 401 "" 402 403#define STMT_SELECT_GE_OP_DEPTH_CHILDREN 35 404#define STMT_35_INFO {"STMT_SELECT_GE_OP_DEPTH_CHILDREN", NULL} 405#define STMT_35 \ 406 "SELECT 1 FROM nodes " \ 407 "WHERE wc_id = ?1 AND parent_relpath = ?2 " \ 408 " AND (op_depth > ?3 OR (op_depth = ?3 " \ 409 " AND presence IN ('normal', 'incomplete'))) " \ 410 "UNION ALL " \ 411 "SELECT 1 FROM ACTUAL_NODE a " \ 412 "WHERE wc_id = ?1 AND parent_relpath = ?2 " \ 413 " AND NOT EXISTS (SELECT 1 FROM nodes n " \ 414 " WHERE wc_id = ?1 AND n.local_relpath = a.local_relpath) " \ 415 "" 416 417#define STMT_DELETE_SHADOWED_RECURSIVE 36 418#define STMT_36_INFO {"STMT_DELETE_SHADOWED_RECURSIVE", NULL} 419#define STMT_36 \ 420 "DELETE FROM nodes " \ 421 "WHERE wc_id = ?1 " \ 422 " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \ 423 " AND (op_depth < ?3 " \ 424 " OR (op_depth = ?3 AND presence = 'base-deleted')) " \ 425 "" 426 427#define STMT_CLEAR_MOVED_TO_FROM_DEST 37 428#define STMT_37_INFO {"STMT_CLEAR_MOVED_TO_FROM_DEST", NULL} 429#define STMT_37 \ 430 "UPDATE NODES SET moved_to = NULL " \ 431 "WHERE wc_id = ?1 " \ 432 " AND moved_to = ?2 " \ 433 "" 434 435#define STMT_SELECT_NOT_PRESENT_DESCENDANTS 38 436#define STMT_38_INFO {"STMT_SELECT_NOT_PRESENT_DESCENDANTS", NULL} 437#define STMT_38 \ 438 "SELECT local_relpath FROM nodes " \ 439 "WHERE wc_id = ?1 AND op_depth = ?3 " \ 440 " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \ 441 " AND presence = 'not-present' " \ 442 "" 443 444#define STMT_COMMIT_DESCENDANTS_TO_BASE 39 445#define STMT_39_INFO {"STMT_COMMIT_DESCENDANTS_TO_BASE", NULL} 446#define STMT_39 \ 447 "UPDATE NODES SET op_depth = 0, " \ 448 " repos_id = ?4, " \ 449 " 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), " \ 450 " revision = ?6, " \ 451 " dav_cache = NULL, " \ 452 " moved_here = NULL, " \ 453 " moved_to = NULL, " \ 454 " presence = CASE presence " \ 455 " WHEN 'normal' THEN 'normal' " \ 456 " WHEN 'excluded' THEN 'excluded' " \ 457 " ELSE 'not-present' " \ 458 " END " \ 459 "WHERE wc_id = ?1 " \ 460 " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \ 461 " AND op_depth = ?3 " \ 462 "" 463 464#define STMT_SELECT_NODE_CHILDREN 40 465#define STMT_40_INFO {"STMT_SELECT_NODE_CHILDREN", NULL} 466#define STMT_40 \ 467 "SELECT DISTINCT local_relpath FROM nodes " \ 468 "WHERE wc_id = ?1 AND parent_relpath = ?2 " \ 469 "ORDER BY local_relpath " \ 470 "" 471 472#define STMT_SELECT_WORKING_CHILDREN 41 473#define STMT_41_INFO {"STMT_SELECT_WORKING_CHILDREN", NULL} 474#define STMT_41 \ 475 "SELECT DISTINCT local_relpath FROM nodes " \ 476 "WHERE wc_id = ?1 AND parent_relpath = ?2 " \ 477 " AND (op_depth > (SELECT MAX(op_depth) FROM nodes " \ 478 " WHERE wc_id = ?1 AND local_relpath = ?2) " \ 479 " OR " \ 480 " (op_depth = (SELECT MAX(op_depth) FROM nodes " \ 481 " WHERE wc_id = ?1 AND local_relpath = ?2) " \ 482 " AND presence IN ('normal', 'incomplete'))) " \ 483 "ORDER BY local_relpath " \ 484 "" 485 486#define STMT_SELECT_BASE_NOT_PRESENT_CHILDREN 42 487#define STMT_42_INFO {"STMT_SELECT_BASE_NOT_PRESENT_CHILDREN", NULL} 488#define STMT_42 \ 489 "SELECT local_relpath FROM nodes " \ 490 "WHERE wc_id = ?1 AND parent_relpath = ?2 AND op_depth = 0 " \ 491 " AND presence = 'not-present' " \ 492 "ORDER BY local_relpath " \ 493 "" 494 495#define STMT_SELECT_NODE_PROPS 43 496#define STMT_43_INFO {"STMT_SELECT_NODE_PROPS", NULL} 497#define STMT_43 \ 498 "SELECT properties, presence FROM nodes " \ 499 "WHERE wc_id = ?1 AND local_relpath = ?2 " \ 500 "ORDER BY op_depth DESC " \ 501 "" 502 503#define STMT_SELECT_ACTUAL_PROPS 44 504#define STMT_44_INFO {"STMT_SELECT_ACTUAL_PROPS", NULL} 505#define STMT_44 \ 506 "SELECT properties FROM actual_node " \ 507 "WHERE wc_id = ?1 AND local_relpath = ?2 " \ 508 "" 509 510#define STMT_UPDATE_ACTUAL_PROPS 45 511#define STMT_45_INFO {"STMT_UPDATE_ACTUAL_PROPS", NULL} 512#define STMT_45 \ 513 "UPDATE actual_node SET properties = ?3 " \ 514 "WHERE wc_id = ?1 AND local_relpath = ?2 " \ 515 "" 516 517#define STMT_INSERT_ACTUAL_PROPS 46 518#define STMT_46_INFO {"STMT_INSERT_ACTUAL_PROPS", NULL} 519#define STMT_46 \ 520 "INSERT INTO actual_node (wc_id, local_relpath, parent_relpath, properties) " \ 521 "VALUES (?1, ?2, ?3, ?4) " \ 522 "" 523 524#define STMT_INSERT_LOCK 47 525#define STMT_47_INFO {"STMT_INSERT_LOCK", NULL} 526#define STMT_47 \ 527 "INSERT OR REPLACE INTO lock " \ 528 "(repos_id, repos_relpath, lock_token, lock_owner, lock_comment, " \ 529 " lock_date) " \ 530 "VALUES (?1, ?2, ?3, ?4, ?5, ?6) " \ 531 "" 532 533#define STMT_SELECT_BASE_NODE_LOCK_TOKENS_RECURSIVE 48 534#define STMT_48_INFO {"STMT_SELECT_BASE_NODE_LOCK_TOKENS_RECURSIVE", NULL} 535#define STMT_48 \ 536 "SELECT nodes.repos_id, nodes.repos_path, lock_token " \ 537 "FROM nodes " \ 538 "LEFT JOIN lock ON nodes.repos_id = lock.repos_id " \ 539 " AND nodes.repos_path = lock.repos_relpath " \ 540 "WHERE wc_id = ?1 AND op_depth = 0 " \ 541 " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \ 542 "" 543 544#define STMT_INSERT_WCROOT 49 545#define STMT_49_INFO {"STMT_INSERT_WCROOT", NULL} 546#define STMT_49 \ 547 "INSERT INTO wcroot (local_abspath) " \ 548 "VALUES (?1) " \ 549 "" 550 551#define STMT_UPDATE_BASE_NODE_DAV_CACHE 50 552#define STMT_50_INFO {"STMT_UPDATE_BASE_NODE_DAV_CACHE", NULL} 553#define STMT_50 \ 554 "UPDATE nodes SET dav_cache = ?3 " \ 555 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \ 556 "" 557 558#define STMT_SELECT_BASE_DAV_CACHE 51 559#define STMT_51_INFO {"STMT_SELECT_BASE_DAV_CACHE", NULL} 560#define STMT_51 \ 561 "SELECT dav_cache FROM nodes " \ 562 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \ 563 "" 564 565#define STMT_SELECT_DELETION_INFO 52 566#define STMT_52_INFO {"STMT_SELECT_DELETION_INFO", NULL} 567#define STMT_52 \ 568 "SELECT b.presence, w.presence, w.op_depth, w.moved_to " \ 569 "FROM nodes w " \ 570 "LEFT JOIN nodes b ON b.wc_id = ?1 AND b.local_relpath = ?2 AND b.op_depth = 0 " \ 571 "WHERE w.wc_id = ?1 AND w.local_relpath = ?2 " \ 572 " AND w.op_depth = (SELECT MAX(op_depth) FROM nodes d " \ 573 " WHERE d.wc_id = ?1 AND d.local_relpath = ?2 " \ 574 " AND d.op_depth > 0) " \ 575 "LIMIT 1 " \ 576 "" 577 578#define STMT_SELECT_MOVED_TO_NODE 53 579#define STMT_53_INFO {"STMT_SELECT_MOVED_TO_NODE", NULL} 580#define STMT_53 \ 581 "SELECT op_depth, moved_to " \ 582 "FROM nodes " \ 583 "WHERE wc_id = ?1 AND local_relpath = ?2 AND moved_to IS NOT NULL " \ 584 "ORDER BY op_depth DESC " \ 585 "" 586 587#define STMT_SELECT_OP_DEPTH_MOVED_TO 54 588#define STMT_54_INFO {"STMT_SELECT_OP_DEPTH_MOVED_TO", NULL} 589#define STMT_54 \ 590 "SELECT op_depth, moved_to " \ 591 "FROM nodes " \ 592 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth > ?3 " \ 593 " AND EXISTS(SELECT * from nodes " \ 594 " WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \ 595 " AND presence IN ('normal', 'incomplete')) " \ 596 "ORDER BY op_depth ASC " \ 597 "LIMIT 1 " \ 598 "" 599 600#define STMT_SELECT_MOVED_TO 55 601#define STMT_55_INFO {"STMT_SELECT_MOVED_TO", NULL} 602#define STMT_55 \ 603 "SELECT moved_to " \ 604 "FROM nodes " \ 605 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \ 606 "" 607 608#define STMT_SELECT_MOVED_BACK 56 609#define STMT_56_INFO {"STMT_SELECT_MOVED_BACK", NULL} 610#define STMT_56 \ 611 "SELECT u.local_relpath, " \ 612 " u.presence, u.repos_id, u.repos_path, u.revision, " \ 613 " l.presence, l.repos_id, l.repos_path, l.revision, " \ 614 " u.moved_here, u.moved_to " \ 615 "FROM nodes u " \ 616 "LEFT OUTER JOIN nodes l ON l.wc_id = ?1 " \ 617 " AND l.local_relpath = u.local_relpath " \ 618 " AND l.op_depth = ?3 " \ 619 "WHERE u.wc_id = ?1 " \ 620 " AND u.local_relpath = ?2 " \ 621 " AND u.op_depth = ?4 " \ 622 "UNION ALL " \ 623 "SELECT u.local_relpath, " \ 624 " u.presence, u.repos_id, u.repos_path, u.revision, " \ 625 " l.presence, l.repos_id, l.repos_path, l.revision, " \ 626 " u.moved_here, NULL " \ 627 "FROM nodes u " \ 628 "LEFT OUTER JOIN nodes l ON l.wc_id=?1 " \ 629 " AND l.local_relpath=u.local_relpath " \ 630 " AND l.op_depth=?3 " \ 631 "WHERE u.wc_id = ?1 " \ 632 " 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)) " \ 633 " AND u.op_depth = ?4 " \ 634 "" 635 636#define STMT_DELETE_LOCK 57 637#define STMT_57_INFO {"STMT_DELETE_LOCK", NULL} 638#define STMT_57 \ 639 "DELETE FROM lock " \ 640 "WHERE repos_id = ?1 AND repos_relpath = ?2 " \ 641 "" 642 643#define STMT_DELETE_LOCK_RECURSIVELY 58 644#define STMT_58_INFO {"STMT_DELETE_LOCK_RECURSIVELY", NULL} 645#define STMT_58 \ 646 "DELETE FROM lock " \ 647 "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))) " \ 648 "" 649 650#define STMT_CLEAR_BASE_NODE_RECURSIVE_DAV_CACHE 59 651#define STMT_59_INFO {"STMT_CLEAR_BASE_NODE_RECURSIVE_DAV_CACHE", NULL} 652#define STMT_59 \ 653 "UPDATE nodes SET dav_cache = NULL " \ 654 "WHERE dav_cache IS NOT NULL AND wc_id = ?1 AND op_depth = 0 " \ 655 " AND (local_relpath = ?2 " \ 656 " OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \ 657 "" 658 659#define STMT_RECURSIVE_UPDATE_NODE_REPO 60 660#define STMT_60_INFO {"STMT_RECURSIVE_UPDATE_NODE_REPO", NULL} 661#define STMT_60 \ 662 "UPDATE nodes SET repos_id = ?4, dav_cache = NULL " \ 663 "WHERE (wc_id = ?1 AND local_relpath = ?2 AND repos_id = ?3) " \ 664 " 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)) " \ 665 " AND repos_id = ?3) " \ 666 "" 667 668#define STMT_UPDATE_LOCK_REPOS_ID 61 669#define STMT_61_INFO {"STMT_UPDATE_LOCK_REPOS_ID", NULL} 670#define STMT_61 \ 671 "UPDATE lock SET repos_id = ?2 " \ 672 "WHERE repos_id = ?1 " \ 673 "" 674 675#define STMT_UPDATE_NODE_FILEINFO 62 676#define STMT_62_INFO {"STMT_UPDATE_NODE_FILEINFO", NULL} 677#define STMT_62 \ 678 "UPDATE nodes SET translated_size = ?3, last_mod_time = ?4 " \ 679 "WHERE wc_id = ?1 AND local_relpath = ?2 " \ 680 " AND op_depth = (SELECT MAX(op_depth) FROM nodes " \ 681 " WHERE wc_id = ?1 AND local_relpath = ?2) " \ 682 "" 683 684#define STMT_INSERT_ACTUAL_CONFLICT 63 685#define STMT_63_INFO {"STMT_INSERT_ACTUAL_CONFLICT", NULL} 686#define STMT_63 \ 687 "INSERT INTO actual_node (wc_id, local_relpath, conflict_data, parent_relpath) " \ 688 "VALUES (?1, ?2, ?3, ?4) " \ 689 "" 690 691#define STMT_UPDATE_ACTUAL_CONFLICT 64 692#define STMT_64_INFO {"STMT_UPDATE_ACTUAL_CONFLICT", NULL} 693#define STMT_64 \ 694 "UPDATE actual_node SET conflict_data = ?3 " \ 695 "WHERE wc_id = ?1 AND local_relpath = ?2 " \ 696 "" 697 698#define STMT_UPDATE_ACTUAL_CHANGELISTS 65 699#define STMT_65_INFO {"STMT_UPDATE_ACTUAL_CHANGELISTS", NULL} 700#define STMT_65 \ 701 "UPDATE actual_node SET changelist = ?3 " \ 702 "WHERE wc_id = ?1 " \ 703 " 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))) " \ 704 " AND local_relpath = (SELECT local_relpath FROM targets_list AS t " \ 705 " WHERE wc_id = ?1 " \ 706 " AND t.local_relpath = actual_node.local_relpath " \ 707 " AND kind = 'file') " \ 708 "" 709 710#define STMT_UPDATE_ACTUAL_CLEAR_CHANGELIST 66 711#define STMT_66_INFO {"STMT_UPDATE_ACTUAL_CLEAR_CHANGELIST", NULL} 712#define STMT_66 \ 713 "UPDATE actual_node SET changelist = NULL " \ 714 " WHERE wc_id = ?1 AND local_relpath = ?2 " \ 715 "" 716 717#define STMT_MARK_SKIPPED_CHANGELIST_DIRS 67 718#define STMT_67_INFO {"STMT_MARK_SKIPPED_CHANGELIST_DIRS", NULL} 719#define STMT_67 \ 720 "INSERT INTO changelist_list (wc_id, local_relpath, notify, changelist) " \ 721 "SELECT wc_id, local_relpath, 7, ?3 " \ 722 "FROM targets_list " \ 723 "WHERE wc_id = ?1 " \ 724 " 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))) " \ 725 " AND kind = 'dir' " \ 726 "" 727 728#define STMT_RESET_ACTUAL_WITH_CHANGELIST 68 729#define STMT_68_INFO {"STMT_RESET_ACTUAL_WITH_CHANGELIST", NULL} 730#define STMT_68 \ 731 "REPLACE INTO actual_node ( " \ 732 " wc_id, local_relpath, parent_relpath, changelist) " \ 733 "VALUES (?1, ?2, ?3, ?4) " \ 734 "" 735 736#define STMT_CREATE_CHANGELIST_LIST 69 737#define STMT_69_INFO {"STMT_CREATE_CHANGELIST_LIST", NULL} 738#define STMT_69 \ 739 "DROP TABLE IF EXISTS changelist_list; " \ 740 "CREATE TEMPORARY TABLE changelist_list ( " \ 741 " wc_id INTEGER NOT NULL, " \ 742 " local_relpath TEXT NOT NULL, " \ 743 " notify INTEGER NOT NULL, " \ 744 " changelist TEXT NOT NULL, " \ 745 " PRIMARY KEY (wc_id, local_relpath, notify DESC) " \ 746 ") " \ 747 "" 748 749#define STMT_CREATE_CHANGELIST_TRIGGER 70 750#define STMT_70_INFO {"STMT_CREATE_CHANGELIST_TRIGGER", NULL} 751#define STMT_70 \ 752 "DROP TRIGGER IF EXISTS trigger_changelist_list_change; " \ 753 "CREATE TEMPORARY TRIGGER trigger_changelist_list_change " \ 754 "BEFORE UPDATE ON actual_node " \ 755 "WHEN old.changelist IS NOT new.changelist " \ 756 "BEGIN " \ 757 " INSERT INTO changelist_list(wc_id, local_relpath, notify, changelist) " \ 758 " SELECT old.wc_id, old.local_relpath, 27, old.changelist " \ 759 " WHERE old.changelist is NOT NULL; " \ 760 " INSERT INTO changelist_list(wc_id, local_relpath, notify, changelist) " \ 761 " SELECT new.wc_id, new.local_relpath, 26, new.changelist " \ 762 " WHERE new.changelist IS NOT NULL; " \ 763 "END " \ 764 "" 765 766#define STMT_FINALIZE_CHANGELIST 71 767#define STMT_71_INFO {"STMT_FINALIZE_CHANGELIST", NULL} 768#define STMT_71 \ 769 "DROP TRIGGER trigger_changelist_list_change; " \ 770 "DROP TABLE changelist_list; " \ 771 "DROP TABLE targets_list " \ 772 "" 773 774#define STMT_SELECT_CHANGELIST_LIST 72 775#define STMT_72_INFO {"STMT_SELECT_CHANGELIST_LIST", NULL} 776#define STMT_72 \ 777 "SELECT wc_id, local_relpath, notify, changelist " \ 778 "FROM changelist_list " \ 779 "ORDER BY wc_id, local_relpath ASC, notify DESC " \ 780 "" 781 782#define STMT_CREATE_TARGETS_LIST 73 783#define STMT_73_INFO {"STMT_CREATE_TARGETS_LIST", NULL} 784#define STMT_73 \ 785 "DROP TABLE IF EXISTS targets_list; " \ 786 "CREATE TEMPORARY TABLE targets_list ( " \ 787 " wc_id INTEGER NOT NULL, " \ 788 " local_relpath TEXT NOT NULL, " \ 789 " parent_relpath TEXT, " \ 790 " kind TEXT NOT NULL, " \ 791 " PRIMARY KEY (wc_id, local_relpath) " \ 792 " ); " \ 793 "" 794 795#define STMT_DROP_TARGETS_LIST 74 796#define STMT_74_INFO {"STMT_DROP_TARGETS_LIST", NULL} 797#define STMT_74 \ 798 "DROP TABLE targets_list " \ 799 "" 800 801#define STMT_INSERT_TARGET 75 802#define STMT_75_INFO {"STMT_INSERT_TARGET", NULL} 803#define STMT_75 \ 804 "INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \ 805 "SELECT wc_id, local_relpath, parent_relpath, kind " \ 806 "FROM nodes_current " \ 807 "WHERE wc_id = ?1 " \ 808 " AND local_relpath = ?2 " \ 809 "" 810 811#define STMT_INSERT_TARGET_DEPTH_FILES 76 812#define STMT_76_INFO {"STMT_INSERT_TARGET_DEPTH_FILES", NULL} 813#define STMT_76 \ 814 "INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \ 815 "SELECT wc_id, local_relpath, parent_relpath, kind " \ 816 "FROM nodes_current " \ 817 "WHERE wc_id = ?1 " \ 818 " AND parent_relpath = ?2 " \ 819 " AND kind = 'file' " \ 820 "" 821 822#define STMT_INSERT_TARGET_DEPTH_IMMEDIATES 77 823#define STMT_77_INFO {"STMT_INSERT_TARGET_DEPTH_IMMEDIATES", NULL} 824#define STMT_77 \ 825 "INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \ 826 "SELECT wc_id, local_relpath, parent_relpath, kind " \ 827 "FROM nodes_current " \ 828 "WHERE wc_id = ?1 " \ 829 " AND parent_relpath = ?2 " \ 830 "" 831 832#define STMT_INSERT_TARGET_DEPTH_INFINITY 78 833#define STMT_78_INFO {"STMT_INSERT_TARGET_DEPTH_INFINITY", NULL} 834#define STMT_78 \ 835 "INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \ 836 "SELECT wc_id, local_relpath, parent_relpath, kind " \ 837 "FROM nodes_current " \ 838 "WHERE wc_id = ?1 " \ 839 " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \ 840 "" 841 842#define STMT_INSERT_TARGET_WITH_CHANGELIST 79 843#define STMT_79_INFO {"STMT_INSERT_TARGET_WITH_CHANGELIST", NULL} 844#define STMT_79 \ 845 "INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \ 846 "SELECT N.wc_id, N.local_relpath, N.parent_relpath, N.kind " \ 847 " FROM actual_node AS A JOIN nodes_current AS N " \ 848 " ON A.wc_id = N.wc_id AND A.local_relpath = N.local_relpath " \ 849 " WHERE N.wc_id = ?1 " \ 850 " AND N.local_relpath = ?2 " \ 851 " AND A.changelist = ?3 " \ 852 "" 853 854#define STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_FILES 80 855#define STMT_80_INFO {"STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_FILES", NULL} 856#define STMT_80 \ 857 "INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \ 858 "SELECT N.wc_id, N.local_relpath, N.parent_relpath, N.kind " \ 859 " FROM actual_node AS A JOIN nodes_current AS N " \ 860 " ON A.wc_id = N.wc_id AND A.local_relpath = N.local_relpath " \ 861 " WHERE N.wc_id = ?1 " \ 862 " AND N.parent_relpath = ?2 " \ 863 " AND kind = 'file' " \ 864 " AND A.changelist = ?3 " \ 865 "" 866 867#define STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_IMMEDIATES 81 868#define STMT_81_INFO {"STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_IMMEDIATES", NULL} 869#define STMT_81 \ 870 "INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \ 871 "SELECT N.wc_id, N.local_relpath, N.parent_relpath, N.kind " \ 872 " FROM actual_node AS A JOIN nodes_current AS N " \ 873 " ON A.wc_id = N.wc_id AND A.local_relpath = N.local_relpath " \ 874 " WHERE N.wc_id = ?1 " \ 875 " AND N.parent_relpath = ?2 " \ 876 " AND A.changelist = ?3 " \ 877 "" 878 879#define STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_INFINITY 82 880#define STMT_82_INFO {"STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_INFINITY", NULL} 881#define STMT_82 \ 882 "INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \ 883 "SELECT N.wc_id, N.local_relpath, N.parent_relpath, N.kind " \ 884 " FROM actual_node AS A JOIN nodes_current AS N " \ 885 " ON A.wc_id = N.wc_id AND A.local_relpath = N.local_relpath " \ 886 " WHERE N.wc_id = ?1 " \ 887 " 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)) " \ 888 " AND A.changelist = ?3 " \ 889 "" 890 891#define STMT_INSERT_ACTUAL_EMPTIES 83 892#define STMT_83_INFO {"STMT_INSERT_ACTUAL_EMPTIES", NULL} 893#define STMT_83 \ 894 "INSERT OR IGNORE INTO actual_node ( " \ 895 " wc_id, local_relpath, parent_relpath) " \ 896 "SELECT wc_id, local_relpath, parent_relpath " \ 897 "FROM targets_list " \ 898 "" 899 900#define STMT_INSERT_ACTUAL_EMPTIES_FILES 84 901#define STMT_84_INFO {"STMT_INSERT_ACTUAL_EMPTIES_FILES", NULL} 902#define STMT_84 \ 903 "INSERT OR IGNORE INTO actual_node ( " \ 904 " wc_id, local_relpath, parent_relpath) " \ 905 "SELECT wc_id, local_relpath, parent_relpath " \ 906 "FROM targets_list " \ 907 "WHERE kind='file' " \ 908 "" 909 910#define STMT_DELETE_ACTUAL_EMPTY 85 911#define STMT_85_INFO {"STMT_DELETE_ACTUAL_EMPTY", NULL} 912#define STMT_85 \ 913 "DELETE FROM actual_node " \ 914 "WHERE wc_id = ?1 AND local_relpath = ?2 " \ 915 " AND properties IS NULL " \ 916 " AND conflict_data IS NULL " \ 917 " AND changelist IS NULL " \ 918 " AND text_mod IS NULL " \ 919 " AND older_checksum IS NULL " \ 920 " AND right_checksum IS NULL " \ 921 " AND left_checksum IS NULL " \ 922 "" 923 924#define STMT_DELETE_ACTUAL_EMPTIES 86 925#define STMT_86_INFO {"STMT_DELETE_ACTUAL_EMPTIES", NULL} 926#define STMT_86 \ 927 "DELETE FROM actual_node " \ 928 "WHERE wc_id = ?1 " \ 929 " 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))) " \ 930 " AND properties IS NULL " \ 931 " AND conflict_data IS NULL " \ 932 " AND changelist IS NULL " \ 933 " AND text_mod IS NULL " \ 934 " AND older_checksum IS NULL " \ 935 " AND right_checksum IS NULL " \ 936 " AND left_checksum IS NULL " \ 937 "" 938 939#define STMT_DELETE_BASE_NODE 87 940#define STMT_87_INFO {"STMT_DELETE_BASE_NODE", NULL} 941#define STMT_87 \ 942 "DELETE FROM nodes " \ 943 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \ 944 "" 945 946#define STMT_DELETE_WORKING_NODE 88 947#define STMT_88_INFO {"STMT_DELETE_WORKING_NODE", NULL} 948#define STMT_88 \ 949 "DELETE FROM nodes " \ 950 "WHERE wc_id = ?1 AND local_relpath = ?2 " \ 951 " AND op_depth = (SELECT MAX(op_depth) FROM nodes " \ 952 " WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth > 0) " \ 953 "" 954 955#define STMT_DELETE_LOWEST_WORKING_NODE 89 956#define STMT_89_INFO {"STMT_DELETE_LOWEST_WORKING_NODE", NULL} 957#define STMT_89 \ 958 "DELETE FROM nodes " \ 959 "WHERE wc_id = ?1 AND local_relpath = ?2 " \ 960 " AND op_depth = (SELECT MIN(op_depth) FROM nodes " \ 961 " WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth > ?3) " \ 962 " AND presence = 'base-deleted' " \ 963 "" 964 965#define STMT_DELETE_NODE_ALL_LAYERS 90 966#define STMT_90_INFO {"STMT_DELETE_NODE_ALL_LAYERS", NULL} 967#define STMT_90 \ 968 "DELETE FROM nodes " \ 969 "WHERE wc_id = ?1 AND local_relpath = ?2 " \ 970 "" 971 972#define STMT_DELETE_NODES_ABOVE_DEPTH_RECURSIVE 91 973#define STMT_91_INFO {"STMT_DELETE_NODES_ABOVE_DEPTH_RECURSIVE", NULL} 974#define STMT_91 \ 975 "DELETE FROM nodes " \ 976 "WHERE wc_id = ?1 " \ 977 " AND (local_relpath = ?2 " \ 978 " OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \ 979 " AND op_depth >= ?3 " \ 980 "" 981 982#define STMT_DELETE_ACTUAL_NODE 92 983#define STMT_92_INFO {"STMT_DELETE_ACTUAL_NODE", NULL} 984#define STMT_92 \ 985 "DELETE FROM actual_node " \ 986 "WHERE wc_id = ?1 AND local_relpath = ?2 " \ 987 "" 988 989#define STMT_DELETE_ACTUAL_NODE_RECURSIVE 93 990#define STMT_93_INFO {"STMT_DELETE_ACTUAL_NODE_RECURSIVE", NULL} 991#define STMT_93 \ 992 "DELETE FROM actual_node " \ 993 "WHERE wc_id = ?1 " \ 994 " AND (local_relpath = ?2 " \ 995 " OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \ 996 "" 997 998#define STMT_DELETE_ACTUAL_NODE_LEAVING_CHANGELIST 94 999#define STMT_94_INFO {"STMT_DELETE_ACTUAL_NODE_LEAVING_CHANGELIST", NULL} 1000#define STMT_94 \ 1001 "DELETE FROM actual_node " \ 1002 "WHERE wc_id = ?1 " \ 1003 " AND local_relpath = ?2 " \ 1004 " AND (changelist IS NULL " \ 1005 " OR NOT EXISTS (SELECT 1 FROM nodes_current c " \ 1006 " WHERE c.wc_id = ?1 AND c.local_relpath = ?2 " \ 1007 " AND c.kind = 'file')) " \ 1008 "" 1009 1010#define STMT_DELETE_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE 95 1011#define STMT_95_INFO {"STMT_DELETE_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE", NULL} 1012#define STMT_95 \ 1013 "DELETE FROM actual_node " \ 1014 "WHERE wc_id = ?1 " \ 1015 " AND (local_relpath = ?2 " \ 1016 " OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \ 1017 " AND (changelist IS NULL " \ 1018 " OR NOT EXISTS (SELECT 1 FROM nodes_current c " \ 1019 " WHERE c.wc_id = ?1 " \ 1020 " AND c.local_relpath = actual_node.local_relpath " \ 1021 " AND c.kind = 'file')) " \ 1022 "" 1023 1024#define STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST 96 1025#define STMT_96_INFO {"STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST", NULL} 1026#define STMT_96 \ 1027 "UPDATE actual_node " \ 1028 "SET properties = NULL, " \ 1029 " text_mod = NULL, " \ 1030 " conflict_data = NULL, " \ 1031 " tree_conflict_data = NULL, " \ 1032 " older_checksum = NULL, " \ 1033 " left_checksum = NULL, " \ 1034 " right_checksum = NULL " \ 1035 "WHERE wc_id = ?1 AND local_relpath = ?2 " \ 1036 "" 1037 1038#define STMT_CLEAR_ACTUAL_NODE_LEAVING_CONFLICT 97 1039#define STMT_97_INFO {"STMT_CLEAR_ACTUAL_NODE_LEAVING_CONFLICT", NULL} 1040#define STMT_97 \ 1041 "UPDATE actual_node " \ 1042 "SET properties = NULL, " \ 1043 " text_mod = NULL, " \ 1044 " tree_conflict_data = NULL, " \ 1045 " older_checksum = NULL, " \ 1046 " left_checksum = NULL, " \ 1047 " right_checksum = NULL, " \ 1048 " changelist = NULL " \ 1049 "WHERE wc_id = ?1 AND local_relpath = ?2 " \ 1050 "" 1051 1052#define STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE 98 1053#define STMT_98_INFO {"STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE", NULL} 1054#define STMT_98 \ 1055 "UPDATE actual_node " \ 1056 "SET properties = NULL, " \ 1057 " text_mod = NULL, " \ 1058 " conflict_data = NULL, " \ 1059 " tree_conflict_data = NULL, " \ 1060 " older_checksum = NULL, " \ 1061 " left_checksum = NULL, " \ 1062 " right_checksum = NULL " \ 1063 "WHERE wc_id = ?1 " \ 1064 " AND (local_relpath = ?2 " \ 1065 " OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \ 1066 "" 1067 1068#define STMT_UPDATE_NODE_BASE_DEPTH 99 1069#define STMT_99_INFO {"STMT_UPDATE_NODE_BASE_DEPTH", NULL} 1070#define STMT_99 \ 1071 "UPDATE nodes SET depth = ?3 " \ 1072 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \ 1073 " AND kind='dir' " \ 1074 " AND presence IN ('normal', 'incomplete') " \ 1075 "" 1076 1077#define STMT_UPDATE_NODE_BASE_PRESENCE 100 1078#define STMT_100_INFO {"STMT_UPDATE_NODE_BASE_PRESENCE", NULL} 1079#define STMT_100 \ 1080 "UPDATE nodes SET presence = ?3 " \ 1081 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \ 1082 "" 1083 1084#define STMT_UPDATE_BASE_NODE_PRESENCE_REVNUM_AND_REPOS_PATH 101 1085#define STMT_101_INFO {"STMT_UPDATE_BASE_NODE_PRESENCE_REVNUM_AND_REPOS_PATH", NULL} 1086#define STMT_101 \ 1087 "UPDATE nodes SET presence = ?3, revision = ?4, repos_path = ?5 " \ 1088 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \ 1089 "" 1090 1091#define STMT_LOOK_FOR_WORK 102 1092#define STMT_102_INFO {"STMT_LOOK_FOR_WORK", NULL} 1093#define STMT_102 \ 1094 "SELECT id FROM work_queue LIMIT 1 " \ 1095 "" 1096 1097#define STMT_INSERT_WORK_ITEM 103 1098#define STMT_103_INFO {"STMT_INSERT_WORK_ITEM", NULL} 1099#define STMT_103 \ 1100 "INSERT INTO work_queue (work) VALUES (?1) " \ 1101 "" 1102 1103#define STMT_SELECT_WORK_ITEM 104 1104#define STMT_104_INFO {"STMT_SELECT_WORK_ITEM", NULL} 1105#define STMT_104 \ 1106 "SELECT id, work FROM work_queue ORDER BY id LIMIT 1 " \ 1107 "" 1108 1109#define STMT_DELETE_WORK_ITEM 105 1110#define STMT_105_INFO {"STMT_DELETE_WORK_ITEM", NULL} 1111#define STMT_105 \ 1112 "DELETE FROM work_queue WHERE id = ?1 " \ 1113 "" 1114 1115#define STMT_INSERT_OR_IGNORE_PRISTINE 106 1116#define STMT_106_INFO {"STMT_INSERT_OR_IGNORE_PRISTINE", NULL} 1117#define STMT_106 \ 1118 "INSERT OR IGNORE INTO pristine (checksum, md5_checksum, size, refcount) " \ 1119 "VALUES (?1, ?2, ?3, 0) " \ 1120 "" 1121 1122#define STMT_INSERT_PRISTINE 107 1123#define STMT_107_INFO {"STMT_INSERT_PRISTINE", NULL} 1124#define STMT_107 \ 1125 "INSERT INTO pristine (checksum, md5_checksum, size, refcount) " \ 1126 "VALUES (?1, ?2, ?3, 0) " \ 1127 "" 1128 1129#define STMT_SELECT_PRISTINE 108 1130#define STMT_108_INFO {"STMT_SELECT_PRISTINE", NULL} 1131#define STMT_108 \ 1132 "SELECT md5_checksum " \ 1133 "FROM pristine " \ 1134 "WHERE checksum = ?1 " \ 1135 "" 1136 1137#define STMT_SELECT_PRISTINE_SIZE 109 1138#define STMT_109_INFO {"STMT_SELECT_PRISTINE_SIZE", NULL} 1139#define STMT_109 \ 1140 "SELECT size " \ 1141 "FROM pristine " \ 1142 "WHERE checksum = ?1 LIMIT 1 " \ 1143 "" 1144 1145#define STMT_SELECT_PRISTINE_BY_MD5 110 1146#define STMT_110_INFO {"STMT_SELECT_PRISTINE_BY_MD5", NULL} 1147#define STMT_110 \ 1148 "SELECT checksum " \ 1149 "FROM pristine " \ 1150 "WHERE md5_checksum = ?1 " \ 1151 "" 1152 1153#define STMT_SELECT_UNREFERENCED_PRISTINES 111 1154#define STMT_111_INFO {"STMT_SELECT_UNREFERENCED_PRISTINES", NULL} 1155#define STMT_111 \ 1156 "SELECT checksum " \ 1157 "FROM pristine " \ 1158 "WHERE refcount = 0 " \ 1159 "" 1160 1161#define STMT_DELETE_PRISTINE_IF_UNREFERENCED 112 1162#define STMT_112_INFO {"STMT_DELETE_PRISTINE_IF_UNREFERENCED", NULL} 1163#define STMT_112 \ 1164 "DELETE FROM pristine " \ 1165 "WHERE checksum = ?1 AND refcount = 0 " \ 1166 "" 1167 1168#define STMT_SELECT_COPY_PRISTINES 113 1169#define STMT_113_INFO {"STMT_SELECT_COPY_PRISTINES", NULL} 1170#define STMT_113 \ 1171 "SELECT n.checksum, md5_checksum, size " \ 1172 "FROM nodes_current n " \ 1173 "LEFT JOIN pristine p ON n.checksum = p.checksum " \ 1174 "WHERE wc_id = ?1 " \ 1175 " AND n.local_relpath = ?2 " \ 1176 " AND n.checksum IS NOT NULL " \ 1177 "UNION ALL " \ 1178 "SELECT n.checksum, md5_checksum, size " \ 1179 "FROM nodes n " \ 1180 "LEFT JOIN pristine p ON n.checksum = p.checksum " \ 1181 "WHERE wc_id = ?1 " \ 1182 " 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)) " \ 1183 " AND op_depth >= " \ 1184 " (SELECT MAX(op_depth) FROM nodes WHERE wc_id = ?1 AND local_relpath = ?2) " \ 1185 " AND n.checksum IS NOT NULL " \ 1186 "" 1187 1188#define STMT_VACUUM 114 1189#define STMT_114_INFO {"STMT_VACUUM", NULL} 1190#define STMT_114 \ 1191 "VACUUM " \ 1192 "" 1193 1194#define STMT_SELECT_CONFLICT_VICTIMS 115 1195#define STMT_115_INFO {"STMT_SELECT_CONFLICT_VICTIMS", NULL} 1196#define STMT_115 \ 1197 "SELECT local_relpath, conflict_data " \ 1198 "FROM actual_node " \ 1199 "WHERE wc_id = ?1 AND parent_relpath = ?2 AND " \ 1200 " NOT (conflict_data IS NULL) " \ 1201 "" 1202 1203#define STMT_INSERT_WC_LOCK 116 1204#define STMT_116_INFO {"STMT_INSERT_WC_LOCK", NULL} 1205#define STMT_116 \ 1206 "INSERT INTO wc_lock (wc_id, local_dir_relpath, locked_levels) " \ 1207 "VALUES (?1, ?2, ?3) " \ 1208 "" 1209 1210#define STMT_SELECT_WC_LOCK 117 1211#define STMT_117_INFO {"STMT_SELECT_WC_LOCK", NULL} 1212#define STMT_117 \ 1213 "SELECT locked_levels FROM wc_lock " \ 1214 "WHERE wc_id = ?1 AND local_dir_relpath = ?2 " \ 1215 "" 1216 1217#define STMT_SELECT_ANCESTOR_WCLOCKS 118 1218#define STMT_118_INFO {"STMT_SELECT_ANCESTOR_WCLOCKS", NULL} 1219#define STMT_118 \ 1220 "SELECT local_dir_relpath, locked_levels FROM wc_lock " \ 1221 "WHERE wc_id = ?1 " \ 1222 " AND ((local_dir_relpath >= ?3 AND local_dir_relpath <= ?2) " \ 1223 " OR local_dir_relpath = '') " \ 1224 "" 1225 1226#define STMT_DELETE_WC_LOCK 119 1227#define STMT_119_INFO {"STMT_DELETE_WC_LOCK", NULL} 1228#define STMT_119 \ 1229 "DELETE FROM wc_lock " \ 1230 "WHERE wc_id = ?1 AND local_dir_relpath = ?2 " \ 1231 "" 1232 1233#define STMT_FIND_WC_LOCK 120 1234#define STMT_120_INFO {"STMT_FIND_WC_LOCK", NULL} 1235#define STMT_120 \ 1236 "SELECT local_dir_relpath FROM wc_lock " \ 1237 "WHERE wc_id = ?1 " \ 1238 " 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)) " \ 1239 "" 1240 1241#define STMT_FIND_CONFLICT_DESCENDANT 121 1242#define STMT_121_INFO {"STMT_FIND_CONFLICT_DESCENDANT", NULL} 1243#define STMT_121 \ 1244 "SELECT 1 FROM actual_node " \ 1245 "WHERE wc_id = ?1 " \ 1246 " AND local_relpath > (?2 || '/') " \ 1247 " AND local_relpath < (?2 || '0') " \ 1248 " AND conflict_data IS NOT NULL " \ 1249 "LIMIT 1 " \ 1250 "" 1251 1252#define STMT_DELETE_WC_LOCK_ORPHAN 122 1253#define STMT_122_INFO {"STMT_DELETE_WC_LOCK_ORPHAN", NULL} 1254#define STMT_122 \ 1255 "DELETE FROM wc_lock " \ 1256 "WHERE wc_id = ?1 AND local_dir_relpath = ?2 " \ 1257 "AND NOT EXISTS (SELECT 1 FROM nodes " \ 1258 " WHERE nodes.wc_id = ?1 " \ 1259 " AND nodes.local_relpath = wc_lock.local_dir_relpath) " \ 1260 "" 1261 1262#define STMT_DELETE_WC_LOCK_ORPHAN_RECURSIVE 123 1263#define STMT_123_INFO {"STMT_DELETE_WC_LOCK_ORPHAN_RECURSIVE", NULL} 1264#define STMT_123 \ 1265 "DELETE FROM wc_lock " \ 1266 "WHERE wc_id = ?1 " \ 1267 " AND (local_dir_relpath = ?2 " \ 1268 " 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))) " \ 1269 " AND NOT EXISTS (SELECT 1 FROM nodes " \ 1270 " WHERE nodes.wc_id = ?1 " \ 1271 " AND nodes.local_relpath = wc_lock.local_dir_relpath) " \ 1272 "" 1273 1274#define STMT_APPLY_CHANGES_TO_BASE_NODE 124 1275#define STMT_124_INFO {"STMT_APPLY_CHANGES_TO_BASE_NODE", NULL} 1276#define STMT_124 \ 1277 "INSERT OR REPLACE INTO nodes ( " \ 1278 " wc_id, local_relpath, op_depth, parent_relpath, repos_id, repos_path, " \ 1279 " revision, presence, depth, kind, changed_revision, changed_date, " \ 1280 " changed_author, checksum, properties, dav_cache, symlink_target, " \ 1281 " inherited_props, file_external ) " \ 1282 "VALUES (?1, ?2, 0, " \ 1283 " ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10, ?11, ?12, ?13, ?14, ?15, ?16, ?17, " \ 1284 " (SELECT file_external FROM nodes " \ 1285 " WHERE wc_id = ?1 " \ 1286 " AND local_relpath = ?2 " \ 1287 " AND op_depth = 0)) " \ 1288 "" 1289 1290#define STMT_INSTALL_WORKING_NODE_FOR_DELETE 125 1291#define STMT_125_INFO {"STMT_INSTALL_WORKING_NODE_FOR_DELETE", NULL} 1292#define STMT_125 \ 1293 "INSERT INTO nodes ( " \ 1294 " wc_id, local_relpath, op_depth, " \ 1295 " parent_relpath, presence, kind) " \ 1296 "VALUES(?1, ?2, ?3, ?4, 'base-deleted', ?5) " \ 1297 "" 1298 1299#define STMT_REPLACE_WITH_BASE_DELETED 126 1300#define STMT_126_INFO {"STMT_REPLACE_WITH_BASE_DELETED", NULL} 1301#define STMT_126 \ 1302 "INSERT OR REPLACE INTO nodes (wc_id, local_relpath, op_depth, parent_relpath, " \ 1303 " kind, moved_to, presence) " \ 1304 "SELECT wc_id, local_relpath, op_depth, parent_relpath, " \ 1305 " kind, moved_to, 'base-deleted' " \ 1306 " FROM nodes " \ 1307 " WHERE wc_id = ?1 " \ 1308 " AND local_relpath = ?2 " \ 1309 " AND op_depth = ?3 " \ 1310 "" 1311 1312#define STMT_INSERT_DELETE_FROM_NODE_RECURSIVE 127 1313#define STMT_127_INFO {"STMT_INSERT_DELETE_FROM_NODE_RECURSIVE", NULL} 1314#define STMT_127 \ 1315 "INSERT INTO nodes ( " \ 1316 " wc_id, local_relpath, op_depth, parent_relpath, presence, kind) " \ 1317 "SELECT wc_id, local_relpath, ?4 , parent_relpath, 'base-deleted', " \ 1318 " kind " \ 1319 "FROM nodes " \ 1320 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \ 1321 "UNION ALL " \ 1322 "SELECT wc_id, local_relpath, ?4 , parent_relpath, 'base-deleted', " \ 1323 " kind " \ 1324 "FROM nodes " \ 1325 "WHERE wc_id = ?1 " \ 1326 " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \ 1327 " AND op_depth = ?3 " \ 1328 " AND presence NOT IN ('base-deleted', 'not-present', 'excluded', 'server-excluded') " \ 1329 " AND file_external IS NULL " \ 1330 "ORDER BY local_relpath " \ 1331 "" 1332 1333#define STMT_INSERT_WORKING_NODE_FROM_BASE_COPY 128 1334#define STMT_128_INFO {"STMT_INSERT_WORKING_NODE_FROM_BASE_COPY", NULL} 1335#define STMT_128 \ 1336 "INSERT OR REPLACE INTO nodes ( " \ 1337 " wc_id, local_relpath, op_depth, parent_relpath, repos_id, repos_path, " \ 1338 " revision, presence, depth, kind, changed_revision, changed_date, " \ 1339 " changed_author, checksum, properties, translated_size, last_mod_time, " \ 1340 " symlink_target, moved_to ) " \ 1341 "SELECT wc_id, local_relpath, ?3 , parent_relpath, repos_id, " \ 1342 " repos_path, revision, presence, depth, kind, changed_revision, " \ 1343 " changed_date, changed_author, checksum, properties, translated_size, " \ 1344 " last_mod_time, symlink_target, " \ 1345 " (SELECT moved_to FROM nodes " \ 1346 " WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3) moved_to " \ 1347 "FROM nodes " \ 1348 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \ 1349 "" 1350 1351#define STMT_INSERT_DELETE_FROM_BASE 129 1352#define STMT_129_INFO {"STMT_INSERT_DELETE_FROM_BASE", NULL} 1353#define STMT_129 \ 1354 "INSERT INTO nodes ( " \ 1355 " wc_id, local_relpath, op_depth, parent_relpath, presence, kind) " \ 1356 "SELECT wc_id, local_relpath, ?3 , parent_relpath, " \ 1357 " 'base-deleted', kind " \ 1358 "FROM nodes " \ 1359 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \ 1360 "" 1361 1362#define STMT_UPDATE_OP_DEPTH_INCREASE_RECURSIVE 130 1363#define STMT_130_INFO {"STMT_UPDATE_OP_DEPTH_INCREASE_RECURSIVE", NULL} 1364#define STMT_130 \ 1365 "UPDATE nodes SET op_depth = ?3 + 1 " \ 1366 "WHERE wc_id = ?1 " \ 1367 " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \ 1368 " AND op_depth = ?3 " \ 1369 "" 1370 1371#define STMT_COPY_OP_DEPTH_RECURSIVE 131 1372#define STMT_131_INFO {"STMT_COPY_OP_DEPTH_RECURSIVE", NULL} 1373#define STMT_131 \ 1374 "INSERT INTO nodes ( " \ 1375 " wc_id, local_relpath, op_depth, parent_relpath, repos_id, repos_path, " \ 1376 " revision, presence, depth, kind, changed_revision, changed_date, " \ 1377 " changed_author, checksum, properties, translated_size, last_mod_time, " \ 1378 " symlink_target, moved_here, moved_to ) " \ 1379 "SELECT " \ 1380 " wc_id, local_relpath, ?4, parent_relpath, repos_id, " \ 1381 " repos_path, revision, presence, depth, kind, changed_revision, " \ 1382 " changed_date, changed_author, checksum, properties, translated_size, " \ 1383 " last_mod_time, symlink_target, NULL, NULL " \ 1384 "FROM nodes " \ 1385 "WHERE wc_id = ?1 AND op_depth = ?3 AND local_relpath = ?2 " \ 1386 "UNION ALL " \ 1387 "SELECT " \ 1388 " wc_id, local_relpath, ?4, parent_relpath, repos_id, " \ 1389 " repos_path, revision, presence, depth, kind, changed_revision, " \ 1390 " changed_date, changed_author, checksum, properties, translated_size, " \ 1391 " last_mod_time, symlink_target, NULL, NULL " \ 1392 "FROM nodes " \ 1393 "WHERE wc_id = ?1 AND op_depth = ?3 " \ 1394 " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \ 1395 "ORDER BY local_relpath " \ 1396 "" 1397 1398#define STMT_DOES_NODE_EXIST 132 1399#define STMT_132_INFO {"STMT_DOES_NODE_EXIST", NULL} 1400#define STMT_132 \ 1401 "SELECT 1 FROM nodes WHERE wc_id = ?1 AND local_relpath = ?2 " \ 1402 "LIMIT 1 " \ 1403 "" 1404 1405#define STMT_HAS_SERVER_EXCLUDED_DESCENDANTS 133 1406#define STMT_133_INFO {"STMT_HAS_SERVER_EXCLUDED_DESCENDANTS", NULL} 1407#define STMT_133 \ 1408 "SELECT local_relpath FROM nodes " \ 1409 "WHERE wc_id = ?1 " \ 1410 " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \ 1411 " AND op_depth = 0 AND presence = 'server-excluded' " \ 1412 "LIMIT 1 " \ 1413 "" 1414 1415#define STMT_SELECT_ALL_EXCLUDED_DESCENDANTS 134 1416#define STMT_134_INFO {"STMT_SELECT_ALL_EXCLUDED_DESCENDANTS", NULL} 1417#define STMT_134 \ 1418 "SELECT local_relpath FROM nodes " \ 1419 "WHERE wc_id = ?1 " \ 1420 " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \ 1421 " AND op_depth = 0 " \ 1422 " AND (presence = 'server-excluded' OR presence = 'excluded') " \ 1423 "" 1424 1425#define STMT_INSERT_WORKING_NODE_COPY_FROM 135 1426#define STMT_135_INFO {"STMT_INSERT_WORKING_NODE_COPY_FROM", NULL} 1427#define STMT_135 \ 1428 "INSERT OR REPLACE INTO nodes ( " \ 1429 " wc_id, local_relpath, op_depth, parent_relpath, repos_id, " \ 1430 " repos_path, revision, presence, depth, moved_here, kind, changed_revision, " \ 1431 " changed_date, changed_author, checksum, properties, translated_size, " \ 1432 " last_mod_time, symlink_target, moved_to ) " \ 1433 "SELECT wc_id, ?3 , ?4 , ?5 , " \ 1434 " repos_id, repos_path, revision, ?6 , depth, " \ 1435 " ?7, kind, changed_revision, changed_date, " \ 1436 " changed_author, checksum, properties, translated_size, " \ 1437 " last_mod_time, symlink_target, " \ 1438 " (SELECT dst.moved_to FROM nodes AS dst " \ 1439 " WHERE dst.wc_id = ?1 " \ 1440 " AND dst.local_relpath = ?3 " \ 1441 " AND dst.op_depth = ?4) " \ 1442 "FROM nodes_current " \ 1443 "WHERE wc_id = ?1 AND local_relpath = ?2 " \ 1444 "" 1445 1446#define STMT_INSERT_WORKING_NODE_COPY_FROM_DEPTH 136 1447#define STMT_136_INFO {"STMT_INSERT_WORKING_NODE_COPY_FROM_DEPTH", NULL} 1448#define STMT_136 \ 1449 "INSERT OR REPLACE INTO nodes ( " \ 1450 " wc_id, local_relpath, op_depth, parent_relpath, repos_id, " \ 1451 " repos_path, revision, presence, depth, moved_here, kind, changed_revision, " \ 1452 " changed_date, changed_author, checksum, properties, translated_size, " \ 1453 " last_mod_time, symlink_target, moved_to ) " \ 1454 "SELECT wc_id, ?3 , ?4 , ?5 , " \ 1455 " repos_id, repos_path, revision, ?6 , depth, " \ 1456 " ?8 , kind, changed_revision, changed_date, " \ 1457 " changed_author, checksum, properties, translated_size, " \ 1458 " last_mod_time, symlink_target, " \ 1459 " (SELECT dst.moved_to FROM nodes AS dst " \ 1460 " WHERE dst.wc_id = ?1 " \ 1461 " AND dst.local_relpath = ?3 " \ 1462 " AND dst.op_depth = ?4) " \ 1463 "FROM nodes " \ 1464 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?7 " \ 1465 "" 1466 1467#define STMT_UPDATE_BASE_REVISION 137 1468#define STMT_137_INFO {"STMT_UPDATE_BASE_REVISION", NULL} 1469#define STMT_137 \ 1470 "UPDATE nodes SET revision = ?3 " \ 1471 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \ 1472 "" 1473 1474#define STMT_UPDATE_BASE_REPOS 138 1475#define STMT_138_INFO {"STMT_UPDATE_BASE_REPOS", NULL} 1476#define STMT_138 \ 1477 "UPDATE nodes SET repos_id = ?3, repos_path = ?4 " \ 1478 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \ 1479 "" 1480 1481#define STMT_ACTUAL_HAS_CHILDREN 139 1482#define STMT_139_INFO {"STMT_ACTUAL_HAS_CHILDREN", NULL} 1483#define STMT_139 \ 1484 "SELECT 1 FROM actual_node " \ 1485 "WHERE wc_id = ?1 AND parent_relpath = ?2 " \ 1486 "LIMIT 1 " \ 1487 "" 1488 1489#define STMT_INSERT_EXTERNAL 140 1490#define STMT_140_INFO {"STMT_INSERT_EXTERNAL", NULL} 1491#define STMT_140 \ 1492 "INSERT OR REPLACE INTO externals ( " \ 1493 " wc_id, local_relpath, parent_relpath, presence, kind, def_local_relpath, " \ 1494 " repos_id, def_repos_relpath, def_operational_revision, def_revision) " \ 1495 "VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10) " \ 1496 "" 1497 1498#define STMT_SELECT_EXTERNAL_INFO 141 1499#define STMT_141_INFO {"STMT_SELECT_EXTERNAL_INFO", NULL} 1500#define STMT_141 \ 1501 "SELECT presence, kind, def_local_relpath, repos_id, " \ 1502 " def_repos_relpath, def_operational_revision, def_revision " \ 1503 "FROM externals WHERE wc_id = ?1 AND local_relpath = ?2 " \ 1504 "LIMIT 1 " \ 1505 "" 1506 1507#define STMT_DELETE_FILE_EXTERNALS 142 1508#define STMT_142_INFO {"STMT_DELETE_FILE_EXTERNALS", NULL} 1509#define STMT_142 \ 1510 "DELETE FROM nodes " \ 1511 "WHERE wc_id = ?1 " \ 1512 " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \ 1513 " AND op_depth = 0 " \ 1514 " AND file_external IS NOT NULL " \ 1515 "" 1516 1517#define STMT_DELETE_FILE_EXTERNAL_REGISTATIONS 143 1518#define STMT_143_INFO {"STMT_DELETE_FILE_EXTERNAL_REGISTATIONS", NULL} 1519#define STMT_143 \ 1520 "DELETE FROM externals " \ 1521 "WHERE wc_id = ?1 " \ 1522 " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \ 1523 " AND kind != 'dir' " \ 1524 "" 1525 1526#define STMT_DELETE_EXTERNAL_REGISTATIONS 144 1527#define STMT_144_INFO {"STMT_DELETE_EXTERNAL_REGISTATIONS", NULL} 1528#define STMT_144 \ 1529 "DELETE FROM externals " \ 1530 "WHERE wc_id = ?1 " \ 1531 " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \ 1532 "" 1533 1534#define STMT_SELECT_COMMITTABLE_EXTERNALS_BELOW 145 1535#define STMT_145_INFO {"STMT_SELECT_COMMITTABLE_EXTERNALS_BELOW", NULL} 1536#define STMT_145 \ 1537 "SELECT local_relpath, kind, def_repos_relpath, " \ 1538 " (SELECT root FROM repository AS r WHERE r.id = e.repos_id) " \ 1539 "FROM externals e " \ 1540 "WHERE wc_id = ?1 " \ 1541 " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \ 1542 " AND def_revision IS NULL " \ 1543 " AND repos_id = (SELECT repos_id " \ 1544 " FROM nodes AS n " \ 1545 " WHERE n.wc_id = ?1 " \ 1546 " AND n.local_relpath = '' " \ 1547 " AND n.op_depth = 0) " \ 1548 " AND ((kind='dir') " \ 1549 " OR EXISTS (SELECT 1 FROM nodes " \ 1550 " WHERE nodes.wc_id = e.wc_id " \ 1551 " AND nodes.local_relpath = e.parent_relpath)) " \ 1552 "" 1553 1554#define STMT_SELECT_COMMITTABLE_EXTERNALS_IMMEDIATELY_BELOW 146 1555#define STMT_146_INFO {"STMT_SELECT_COMMITTABLE_EXTERNALS_IMMEDIATELY_BELOW", NULL} 1556#define STMT_146 \ 1557 "SELECT local_relpath, kind, def_repos_relpath, " \ 1558 " (SELECT root FROM repository AS r WHERE r.id = e.repos_id) " \ 1559 "FROM externals e " \ 1560 "WHERE wc_id = ?1 " \ 1561 " 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)) " \ 1562 " AND parent_relpath = ?2 " \ 1563 " AND def_revision IS NULL " \ 1564 " AND repos_id = (SELECT repos_id " \ 1565 " FROM nodes AS n " \ 1566 " WHERE n.wc_id = ?1 " \ 1567 " AND n.local_relpath = '' " \ 1568 " AND n.op_depth = 0) " \ 1569 " AND ((kind='dir') " \ 1570 " OR EXISTS (SELECT 1 FROM nodes " \ 1571 " WHERE nodes.wc_id = e.wc_id " \ 1572 " AND nodes.local_relpath = e.parent_relpath)) " \ 1573 "" 1574 1575#define STMT_SELECT_EXTERNALS_DEFINED 147 1576#define STMT_147_INFO {"STMT_SELECT_EXTERNALS_DEFINED", NULL} 1577#define STMT_147 \ 1578 "SELECT local_relpath, def_local_relpath " \ 1579 "FROM externals " \ 1580 "WHERE (wc_id = ?1 AND def_local_relpath = ?2) " \ 1581 " 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))) " \ 1582 "" 1583 1584#define STMT_DELETE_EXTERNAL 148 1585#define STMT_148_INFO {"STMT_DELETE_EXTERNAL", NULL} 1586#define STMT_148 \ 1587 "DELETE FROM externals " \ 1588 "WHERE wc_id = ?1 AND local_relpath = ?2 " \ 1589 "" 1590 1591#define STMT_SELECT_EXTERNAL_PROPERTIES 149 1592#define STMT_149_INFO {"STMT_SELECT_EXTERNAL_PROPERTIES", NULL} 1593#define STMT_149 \ 1594 "SELECT IFNULL((SELECT properties FROM actual_node a " \ 1595 " WHERE a.wc_id = ?1 AND A.local_relpath = n.local_relpath), " \ 1596 " properties), " \ 1597 " local_relpath, depth " \ 1598 "FROM nodes_current n " \ 1599 "WHERE wc_id = ?1 AND local_relpath = ?2 " \ 1600 " AND kind = 'dir' AND presence IN ('normal', 'incomplete') " \ 1601 "UNION ALL " \ 1602 "SELECT IFNULL((SELECT properties FROM actual_node a " \ 1603 " WHERE a.wc_id = ?1 AND A.local_relpath = n.local_relpath), " \ 1604 " properties), " \ 1605 " local_relpath, depth " \ 1606 "FROM nodes_current n " \ 1607 "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)) " \ 1608 " AND kind = 'dir' AND presence IN ('normal', 'incomplete') " \ 1609 "" 1610 1611#define STMT_SELECT_CURRENT_PROPS_RECURSIVE 150 1612#define STMT_150_INFO {"STMT_SELECT_CURRENT_PROPS_RECURSIVE", NULL} 1613#define STMT_150 \ 1614 "SELECT IFNULL((SELECT properties FROM actual_node a " \ 1615 " WHERE a.wc_id = ?1 AND A.local_relpath = n.local_relpath), " \ 1616 " properties), " \ 1617 " local_relpath " \ 1618 "FROM nodes_current n " \ 1619 "WHERE (wc_id = ?1 AND local_relpath = ?2) " \ 1620 " 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))) " \ 1621 "" 1622 1623#define STMT_PRAGMA_LOCKING_MODE 151 1624#define STMT_151_INFO {"STMT_PRAGMA_LOCKING_MODE", NULL} 1625#define STMT_151 \ 1626 "PRAGMA locking_mode = exclusive; " \ 1627 "PRAGMA journal_mode = DELETE " \ 1628 "" 1629 1630#define STMT_INSERT_ACTUAL_NODE 152 1631#define STMT_152_INFO {"STMT_INSERT_ACTUAL_NODE", NULL} 1632#define STMT_152 \ 1633 "INSERT OR REPLACE INTO actual_node ( " \ 1634 " wc_id, local_relpath, parent_relpath, properties, changelist, conflict_data) " \ 1635 "VALUES (?1, ?2, ?3, ?4, ?5, ?6) " \ 1636 "" 1637 1638#define STMT_SELECT_ALL_FILES 153 1639#define STMT_153_INFO {"STMT_SELECT_ALL_FILES", NULL} 1640#define STMT_153 \ 1641 "SELECT local_relpath FROM nodes_current " \ 1642 "WHERE wc_id = ?1 AND parent_relpath = ?2 AND kind = 'file' " \ 1643 "" 1644 1645#define STMT_UPDATE_NODE_PROPS 154 1646#define STMT_154_INFO {"STMT_UPDATE_NODE_PROPS", NULL} 1647#define STMT_154 \ 1648 "UPDATE nodes SET properties = ?4 " \ 1649 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \ 1650 "" 1651 1652#define STMT_PRAGMA_TABLE_INFO_NODES 155 1653#define STMT_155_INFO {"STMT_PRAGMA_TABLE_INFO_NODES", NULL} 1654#define STMT_155 \ 1655 "PRAGMA table_info(\"NODES\") " \ 1656 "" 1657 1658#define STMT_CREATE_TARGET_PROP_CACHE 156 1659#define STMT_156_INFO {"STMT_CREATE_TARGET_PROP_CACHE", NULL} 1660#define STMT_156 \ 1661 "DROP TABLE IF EXISTS target_prop_cache; " \ 1662 "CREATE TEMPORARY TABLE target_prop_cache ( " \ 1663 " local_relpath TEXT NOT NULL PRIMARY KEY, " \ 1664 " kind TEXT NOT NULL, " \ 1665 " properties BLOB " \ 1666 "); " \ 1667 "" 1668 1669#define STMT_CACHE_TARGET_PROPS 157 1670#define STMT_157_INFO {"STMT_CACHE_TARGET_PROPS", NULL} 1671#define STMT_157 \ 1672 "INSERT INTO target_prop_cache(local_relpath, kind, properties) " \ 1673 " SELECT n.local_relpath, n.kind, " \ 1674 " IFNULL((SELECT properties FROM actual_node AS a " \ 1675 " WHERE a.wc_id = n.wc_id " \ 1676 " AND a.local_relpath = n.local_relpath), " \ 1677 " n.properties) " \ 1678 " FROM targets_list AS t " \ 1679 " JOIN nodes AS n " \ 1680 " ON n.wc_id = ?1 " \ 1681 " AND n.local_relpath = t.local_relpath " \ 1682 " AND n.op_depth = (SELECT MAX(op_depth) FROM nodes AS n3 " \ 1683 " WHERE n3.wc_id = ?1 " \ 1684 " AND n3.local_relpath = t.local_relpath) " \ 1685 " WHERE t.wc_id = ?1 " \ 1686 " AND (presence='normal' OR presence='incomplete') " \ 1687 " ORDER BY t.local_relpath " \ 1688 "" 1689 1690#define STMT_CACHE_TARGET_PRISTINE_PROPS 158 1691#define STMT_158_INFO {"STMT_CACHE_TARGET_PRISTINE_PROPS", NULL} 1692#define STMT_158 \ 1693 "INSERT INTO target_prop_cache(local_relpath, kind, properties) " \ 1694 " SELECT n.local_relpath, n.kind, " \ 1695 " CASE n.presence " \ 1696 " WHEN 'base-deleted' " \ 1697 " THEN (SELECT properties FROM nodes AS p " \ 1698 " WHERE p.wc_id = n.wc_id " \ 1699 " AND p.local_relpath = n.local_relpath " \ 1700 " AND p.op_depth < n.op_depth " \ 1701 " ORDER BY p.op_depth DESC ) " \ 1702 " ELSE properties END " \ 1703 " FROM targets_list AS t " \ 1704 " JOIN nodes AS n " \ 1705 " ON n.wc_id = ?1 " \ 1706 " AND n.local_relpath = t.local_relpath " \ 1707 " AND n.op_depth = (SELECT MAX(op_depth) FROM nodes AS n3 " \ 1708 " WHERE n3.wc_id = ?1 " \ 1709 " AND n3.local_relpath = t.local_relpath) " \ 1710 " WHERE t.wc_id = ?1 " \ 1711 " AND (presence = 'normal' " \ 1712 " OR presence = 'incomplete' " \ 1713 " OR presence = 'base-deleted') " \ 1714 " ORDER BY t.local_relpath " \ 1715 "" 1716 1717#define STMT_SELECT_ALL_TARGET_PROP_CACHE 159 1718#define STMT_159_INFO {"STMT_SELECT_ALL_TARGET_PROP_CACHE", NULL} 1719#define STMT_159 \ 1720 "SELECT local_relpath, properties FROM target_prop_cache " \ 1721 "ORDER BY local_relpath " \ 1722 "" 1723 1724#define STMT_DROP_TARGET_PROP_CACHE 160 1725#define STMT_160_INFO {"STMT_DROP_TARGET_PROP_CACHE", NULL} 1726#define STMT_160 \ 1727 "DROP TABLE target_prop_cache; " \ 1728 "" 1729 1730#define STMT_CREATE_REVERT_LIST 161 1731#define STMT_161_INFO {"STMT_CREATE_REVERT_LIST", NULL} 1732#define STMT_161 \ 1733 "DROP TABLE IF EXISTS revert_list; " \ 1734 "CREATE TEMPORARY TABLE revert_list ( " \ 1735 " local_relpath TEXT NOT NULL, " \ 1736 " actual INTEGER NOT NULL, " \ 1737 " conflict_data BLOB, " \ 1738 " notify INTEGER, " \ 1739 " op_depth INTEGER, " \ 1740 " repos_id INTEGER, " \ 1741 " kind TEXT, " \ 1742 " PRIMARY KEY (local_relpath, actual) " \ 1743 " ); " \ 1744 "DROP TRIGGER IF EXISTS trigger_revert_list_nodes; " \ 1745 "CREATE TEMPORARY TRIGGER trigger_revert_list_nodes " \ 1746 "BEFORE DELETE ON nodes " \ 1747 "BEGIN " \ 1748 " INSERT OR REPLACE INTO revert_list(local_relpath, actual, op_depth, " \ 1749 " repos_id, kind) " \ 1750 " SELECT OLD.local_relpath, 0, OLD.op_depth, OLD.repos_id, OLD.kind; " \ 1751 "END; " \ 1752 "DROP TRIGGER IF EXISTS trigger_revert_list_actual_delete; " \ 1753 "CREATE TEMPORARY TRIGGER trigger_revert_list_actual_delete " \ 1754 "BEFORE DELETE ON actual_node " \ 1755 "BEGIN " \ 1756 " INSERT OR REPLACE INTO revert_list(local_relpath, actual, conflict_data, " \ 1757 " notify) " \ 1758 " SELECT OLD.local_relpath, 1, OLD.conflict_data, " \ 1759 " CASE " \ 1760 " WHEN OLD.properties IS NOT NULL " \ 1761 " THEN 1 " \ 1762 " WHEN NOT EXISTS(SELECT 1 FROM NODES n " \ 1763 " WHERE n.wc_id = OLD.wc_id " \ 1764 " AND n.local_relpath = OLD.local_relpath) " \ 1765 " THEN 1 " \ 1766 " END notify " \ 1767 " WHERE OLD.conflict_data IS NOT NULL " \ 1768 " OR notify IS NOT NULL; " \ 1769 "END; " \ 1770 "DROP TRIGGER IF EXISTS trigger_revert_list_actual_update; " \ 1771 "CREATE TEMPORARY TRIGGER trigger_revert_list_actual_update " \ 1772 "BEFORE UPDATE ON actual_node " \ 1773 "BEGIN " \ 1774 " INSERT OR REPLACE INTO revert_list(local_relpath, actual, conflict_data, " \ 1775 " notify) " \ 1776 " SELECT OLD.local_relpath, 1, OLD.conflict_data, " \ 1777 " CASE " \ 1778 " WHEN OLD.properties IS NOT NULL " \ 1779 " THEN 1 " \ 1780 " WHEN NOT EXISTS(SELECT 1 FROM NODES n " \ 1781 " WHERE n.wc_id = OLD.wc_id " \ 1782 " AND n.local_relpath = OLD.local_relpath) " \ 1783 " THEN 1 " \ 1784 " END notify " \ 1785 " WHERE OLD.conflict_data IS NOT NULL " \ 1786 " OR notify IS NOT NULL; " \ 1787 "END " \ 1788 "" 1789 1790#define STMT_DROP_REVERT_LIST_TRIGGERS 162 1791#define STMT_162_INFO {"STMT_DROP_REVERT_LIST_TRIGGERS", NULL} 1792#define STMT_162 \ 1793 "DROP TRIGGER trigger_revert_list_nodes; " \ 1794 "DROP TRIGGER trigger_revert_list_actual_delete; " \ 1795 "DROP TRIGGER trigger_revert_list_actual_update " \ 1796 "" 1797 1798#define STMT_SELECT_REVERT_LIST 163 1799#define STMT_163_INFO {"STMT_SELECT_REVERT_LIST", NULL} 1800#define STMT_163 \ 1801 "SELECT actual, notify, kind, op_depth, repos_id, conflict_data " \ 1802 "FROM revert_list " \ 1803 "WHERE local_relpath = ?1 " \ 1804 "ORDER BY actual DESC " \ 1805 "" 1806 1807#define STMT_SELECT_REVERT_LIST_COPIED_CHILDREN 164 1808#define STMT_164_INFO {"STMT_SELECT_REVERT_LIST_COPIED_CHILDREN", NULL} 1809#define STMT_164 \ 1810 "SELECT local_relpath, kind " \ 1811 "FROM revert_list " \ 1812 "WHERE (((local_relpath) > (CASE (?1) WHEN '' THEN '' ELSE (?1) || '/' END)) AND ((local_relpath) < CASE (?1) WHEN '' THEN X'FFFF' ELSE (?1) || '0' END)) " \ 1813 " AND op_depth >= ?2 " \ 1814 " AND repos_id IS NOT NULL " \ 1815 "ORDER BY local_relpath " \ 1816 "" 1817 1818#define STMT_DELETE_REVERT_LIST 165 1819#define STMT_165_INFO {"STMT_DELETE_REVERT_LIST", NULL} 1820#define STMT_165 \ 1821 "DELETE FROM revert_list WHERE local_relpath = ?1 " \ 1822 "" 1823 1824#define STMT_SELECT_REVERT_LIST_RECURSIVE 166 1825#define STMT_166_INFO {"STMT_SELECT_REVERT_LIST_RECURSIVE", NULL} 1826#define STMT_166 \ 1827 "SELECT p.local_relpath, n.kind, a.notify, a.kind " \ 1828 "FROM (SELECT DISTINCT local_relpath " \ 1829 " FROM revert_list " \ 1830 " WHERE (local_relpath = ?1 " \ 1831 " OR (((local_relpath) > (CASE (?1) WHEN '' THEN '' ELSE (?1) || '/' END)) AND ((local_relpath) < CASE (?1) WHEN '' THEN X'FFFF' ELSE (?1) || '0' END)))) p " \ 1832 "LEFT JOIN revert_list n ON n.local_relpath=p.local_relpath AND n.actual=0 " \ 1833 "LEFT JOIN revert_list a ON a.local_relpath=p.local_relpath AND a.actual=1 " \ 1834 "ORDER BY p.local_relpath " \ 1835 "" 1836 1837#define STMT_DELETE_REVERT_LIST_RECURSIVE 167 1838#define STMT_167_INFO {"STMT_DELETE_REVERT_LIST_RECURSIVE", NULL} 1839#define STMT_167 \ 1840 "DELETE FROM revert_list " \ 1841 "WHERE (local_relpath = ?1 " \ 1842 " OR (((local_relpath) > (CASE (?1) WHEN '' THEN '' ELSE (?1) || '/' END)) AND ((local_relpath) < CASE (?1) WHEN '' THEN X'FFFF' ELSE (?1) || '0' END))) " \ 1843 "" 1844 1845#define STMT_DROP_REVERT_LIST 168 1846#define STMT_168_INFO {"STMT_DROP_REVERT_LIST", NULL} 1847#define STMT_168 \ 1848 "DROP TABLE IF EXISTS revert_list " \ 1849 "" 1850 1851#define STMT_CREATE_DELETE_LIST 169 1852#define STMT_169_INFO {"STMT_CREATE_DELETE_LIST", NULL} 1853#define STMT_169 \ 1854 "DROP TABLE IF EXISTS delete_list; " \ 1855 "CREATE TEMPORARY TABLE delete_list ( " \ 1856 " local_relpath TEXT PRIMARY KEY NOT NULL UNIQUE " \ 1857 " ) " \ 1858 "" 1859 1860#define STMT_INSERT_DELETE_LIST 170 1861#define STMT_170_INFO {"STMT_INSERT_DELETE_LIST", NULL} 1862#define STMT_170 \ 1863 "INSERT INTO delete_list(local_relpath) " \ 1864 "SELECT ?2 " \ 1865 "UNION ALL " \ 1866 "SELECT local_relpath FROM nodes AS n " \ 1867 "WHERE wc_id = ?1 " \ 1868 " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \ 1869 " AND op_depth >= ?3 " \ 1870 " AND op_depth = (SELECT MAX(s.op_depth) FROM nodes AS s " \ 1871 " WHERE s.wc_id = ?1 " \ 1872 " AND s.local_relpath = n.local_relpath) " \ 1873 " AND presence NOT IN ('base-deleted', 'not-present', 'excluded', 'server-excluded') " \ 1874 " AND file_external IS NULL " \ 1875 "ORDER by local_relpath " \ 1876 "" 1877 1878#define STMT_SELECT_DELETE_LIST 171 1879#define STMT_171_INFO {"STMT_SELECT_DELETE_LIST", NULL} 1880#define STMT_171 \ 1881 "SELECT local_relpath FROM delete_list " \ 1882 "ORDER BY local_relpath " \ 1883 "" 1884 1885#define STMT_FINALIZE_DELETE 172 1886#define STMT_172_INFO {"STMT_FINALIZE_DELETE", NULL} 1887#define STMT_172 \ 1888 "DROP TABLE IF EXISTS delete_list " \ 1889 "" 1890 1891#define STMT_CREATE_UPDATE_MOVE_LIST 173 1892#define STMT_173_INFO {"STMT_CREATE_UPDATE_MOVE_LIST", NULL} 1893#define STMT_173 \ 1894 "DROP TABLE IF EXISTS update_move_list; " \ 1895 "CREATE TEMPORARY TABLE update_move_list ( " \ 1896 " local_relpath TEXT PRIMARY KEY NOT NULL UNIQUE, " \ 1897 " action INTEGER NOT NULL, " \ 1898 " kind TEXT NOT NULL, " \ 1899 " content_state INTEGER NOT NULL, " \ 1900 " prop_state INTEGER NOT NULL " \ 1901 " ) " \ 1902 "" 1903 1904#define STMT_INSERT_UPDATE_MOVE_LIST 174 1905#define STMT_174_INFO {"STMT_INSERT_UPDATE_MOVE_LIST", NULL} 1906#define STMT_174 \ 1907 "INSERT INTO update_move_list(local_relpath, action, kind, content_state, " \ 1908 " prop_state) " \ 1909 "VALUES (?1, ?2, ?3, ?4, ?5) " \ 1910 "" 1911 1912#define STMT_SELECT_UPDATE_MOVE_LIST 175 1913#define STMT_175_INFO {"STMT_SELECT_UPDATE_MOVE_LIST", NULL} 1914#define STMT_175 \ 1915 "SELECT local_relpath, action, kind, content_state, prop_state " \ 1916 "FROM update_move_list " \ 1917 "ORDER BY local_relpath " \ 1918 "" 1919 1920#define STMT_FINALIZE_UPDATE_MOVE 176 1921#define STMT_176_INFO {"STMT_FINALIZE_UPDATE_MOVE", NULL} 1922#define STMT_176 \ 1923 "DROP TABLE IF EXISTS update_move_list " \ 1924 "" 1925 1926#define STMT_MOVE_NOTIFY_TO_REVERT 177 1927#define STMT_177_INFO {"STMT_MOVE_NOTIFY_TO_REVERT", NULL} 1928#define STMT_177 \ 1929 "INSERT INTO revert_list (local_relpath, notify, kind, actual) " \ 1930 " SELECT local_relpath, 2, kind, 1 FROM update_move_list; " \ 1931 "DROP TABLE update_move_list " \ 1932 "" 1933 1934#define STMT_SELECT_MIN_MAX_REVISIONS 178 1935#define STMT_178_INFO {"STMT_SELECT_MIN_MAX_REVISIONS", NULL} 1936#define STMT_178 \ 1937 "SELECT MIN(revision), MAX(revision), " \ 1938 " MIN(changed_revision), MAX(changed_revision) FROM nodes " \ 1939 " WHERE wc_id = ?1 " \ 1940 " AND (local_relpath = ?2 " \ 1941 " OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \ 1942 " AND presence IN ('normal', 'incomplete') " \ 1943 " AND file_external IS NULL " \ 1944 " AND op_depth = 0 " \ 1945 "" 1946 1947#define STMT_HAS_SPARSE_NODES 179 1948#define STMT_179_INFO {"STMT_HAS_SPARSE_NODES", NULL} 1949#define STMT_179 \ 1950 "SELECT 1 FROM nodes " \ 1951 "WHERE wc_id = ?1 " \ 1952 " AND (local_relpath = ?2 " \ 1953 " OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \ 1954 " AND op_depth = 0 " \ 1955 " AND (presence IN ('server-excluded', 'excluded') " \ 1956 " OR depth NOT IN ('infinity', 'unknown')) " \ 1957 " AND file_external IS NULL " \ 1958 "LIMIT 1 " \ 1959 "" 1960 1961#define STMT_SUBTREE_HAS_TREE_MODIFICATIONS 180 1962#define STMT_180_INFO {"STMT_SUBTREE_HAS_TREE_MODIFICATIONS", NULL} 1963#define STMT_180 \ 1964 "SELECT 1 FROM nodes " \ 1965 "WHERE wc_id = ?1 " \ 1966 " AND (local_relpath = ?2 " \ 1967 " OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \ 1968 " AND op_depth > 0 " \ 1969 "LIMIT 1 " \ 1970 "" 1971 1972#define STMT_SUBTREE_HAS_PROP_MODIFICATIONS 181 1973#define STMT_181_INFO {"STMT_SUBTREE_HAS_PROP_MODIFICATIONS", NULL} 1974#define STMT_181 \ 1975 "SELECT 1 FROM actual_node " \ 1976 "WHERE wc_id = ?1 " \ 1977 " AND (local_relpath = ?2 " \ 1978 " OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \ 1979 " AND properties IS NOT NULL " \ 1980 "LIMIT 1 " \ 1981 "" 1982 1983#define STMT_HAS_SWITCHED 182 1984#define STMT_182_INFO {"STMT_HAS_SWITCHED", NULL} 1985#define STMT_182 \ 1986 "SELECT 1 " \ 1987 "FROM nodes " \ 1988 "WHERE wc_id = ?1 " \ 1989 " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \ 1990 " AND op_depth = 0 " \ 1991 " AND file_external IS NULL " \ 1992 " AND presence IN ('normal', 'incomplete') " \ 1993 " 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) " \ 1994 "LIMIT 1 " \ 1995 "" 1996 1997#define STMT_SELECT_MOVED_FROM_RELPATH 183 1998#define STMT_183_INFO {"STMT_SELECT_MOVED_FROM_RELPATH", NULL} 1999#define STMT_183 \ 2000 "SELECT local_relpath, op_depth FROM nodes " \ 2001 "WHERE wc_id = ?1 AND moved_to = ?2 AND op_depth > 0 " \ 2002 "" 2003 2004#define STMT_UPDATE_MOVED_TO_RELPATH 184 2005#define STMT_184_INFO {"STMT_UPDATE_MOVED_TO_RELPATH", NULL} 2006#define STMT_184 \ 2007 "UPDATE nodes SET moved_to = ?4 " \ 2008 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \ 2009 "" 2010 2011#define STMT_CLEAR_MOVED_TO_RELPATH 185 2012#define STMT_185_INFO {"STMT_CLEAR_MOVED_TO_RELPATH", NULL} 2013#define STMT_185 \ 2014 "UPDATE nodes SET moved_to = NULL " \ 2015 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \ 2016 "" 2017 2018#define STMT_CLEAR_MOVED_HERE_RECURSIVE 186 2019#define STMT_186_INFO {"STMT_CLEAR_MOVED_HERE_RECURSIVE", NULL} 2020#define STMT_186 \ 2021 "UPDATE nodes SET moved_here = NULL " \ 2022 "WHERE wc_id = ?1 " \ 2023 " 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))) " \ 2024 " AND op_depth = ?3 " \ 2025 "" 2026 2027#define STMT_SELECT_MOVED_HERE_CHILDREN 187 2028#define STMT_187_INFO {"STMT_SELECT_MOVED_HERE_CHILDREN", NULL} 2029#define STMT_187 \ 2030 "SELECT moved_to, local_relpath FROM nodes " \ 2031 "WHERE wc_id = ?1 AND op_depth > 0 " \ 2032 " AND (((moved_to) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((moved_to) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \ 2033 "" 2034 2035#define STMT_SELECT_MOVED_FOR_DELETE 188 2036#define STMT_188_INFO {"STMT_SELECT_MOVED_FOR_DELETE", NULL} 2037#define STMT_188 \ 2038 "SELECT local_relpath, moved_to, op_depth, " \ 2039 " (SELECT CASE WHEN r.moved_here THEN r.op_depth END FROM nodes r " \ 2040 " WHERE r.wc_id = ?1 " \ 2041 " AND r.local_relpath = n.local_relpath " \ 2042 " AND r.op_depth < n.op_depth " \ 2043 " ORDER BY r.op_depth DESC LIMIT 1) AS moved_here_op_depth " \ 2044 " FROM nodes n " \ 2045 "WHERE wc_id = ?1 " \ 2046 " 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))) " \ 2047 " AND moved_to IS NOT NULL " \ 2048 " AND op_depth >= ?3 " \ 2049 "" 2050 2051#define STMT_SELECT_MOVED_FROM_FOR_DELETE 189 2052#define STMT_189_INFO {"STMT_SELECT_MOVED_FROM_FOR_DELETE", NULL} 2053#define STMT_189 \ 2054 "SELECT local_relpath, op_depth, " \ 2055 " (SELECT CASE WHEN r.moved_here THEN r.op_depth END FROM nodes r " \ 2056 " WHERE r.wc_id = ?1 " \ 2057 " AND r.local_relpath = n.local_relpath " \ 2058 " AND r.op_depth < n.op_depth " \ 2059 " ORDER BY r.op_depth DESC LIMIT 1) AS moved_here_op_depth " \ 2060 " FROM nodes n " \ 2061 "WHERE wc_id = ?1 AND moved_to = ?2 AND op_depth > 0 " \ 2062 "" 2063 2064#define STMT_UPDATE_MOVED_TO_DESCENDANTS 190 2065#define STMT_190_INFO {"STMT_UPDATE_MOVED_TO_DESCENDANTS", NULL} 2066#define STMT_190 \ 2067 "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) " \ 2068 " WHERE wc_id = ?1 " \ 2069 " AND (((moved_to) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((moved_to) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \ 2070 "" 2071 2072#define STMT_CLEAR_MOVED_TO_DESCENDANTS 191 2073#define STMT_191_INFO {"STMT_CLEAR_MOVED_TO_DESCENDANTS", NULL} 2074#define STMT_191 \ 2075 "UPDATE nodes SET moved_to = NULL " \ 2076 " WHERE wc_id = ?1 " \ 2077 " AND (((moved_to) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((moved_to) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \ 2078 "" 2079 2080#define STMT_SELECT_MOVED_PAIR3 192 2081#define STMT_192_INFO {"STMT_SELECT_MOVED_PAIR3", NULL} 2082#define STMT_192 \ 2083 "SELECT n.local_relpath, d.moved_to, d.op_depth, n.kind " \ 2084 "FROM nodes n " \ 2085 "JOIN nodes d ON d.wc_id = ?1 AND d.local_relpath = n.local_relpath " \ 2086 " AND d.op_depth = (SELECT MIN(dd.op_depth) " \ 2087 " FROM nodes dd " \ 2088 " WHERE dd.wc_id = ?1 " \ 2089 " AND dd.local_relpath = d.local_relpath " \ 2090 " AND dd.op_depth > ?3) " \ 2091 "WHERE n.wc_id = ?1 AND n.local_relpath = ?2 AND n.op_depth = ?3 " \ 2092 " AND d.moved_to IS NOT NULL " \ 2093 "UNION ALL " \ 2094 "SELECT n.local_relpath, d.moved_to, d.op_depth, n.kind " \ 2095 "FROM nodes n " \ 2096 "JOIN nodes d ON d.wc_id = ?1 AND d.local_relpath = n.local_relpath " \ 2097 " AND d.op_depth = (SELECT MIN(dd.op_depth) " \ 2098 " FROM nodes dd " \ 2099 " WHERE dd.wc_id = ?1 " \ 2100 " AND dd.local_relpath = d.local_relpath " \ 2101 " AND dd.op_depth > ?3) " \ 2102 "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)) " \ 2103 " AND n.op_depth = ?3 " \ 2104 " AND d.moved_to IS NOT NULL " \ 2105 "ORDER BY n.local_relpath " \ 2106 "" 2107 2108#define STMT_SELECT_MOVED_OUTSIDE 193 2109#define STMT_193_INFO {"STMT_SELECT_MOVED_OUTSIDE", NULL} 2110#define STMT_193 \ 2111 "SELECT local_relpath, moved_to, op_depth FROM nodes " \ 2112 "WHERE wc_id = ?1 " \ 2113 " 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))) " \ 2114 " AND op_depth >= ?3 " \ 2115 " AND moved_to IS NOT NULL " \ 2116 " AND NOT (((moved_to) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((moved_to) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \ 2117 "" 2118 2119#define STMT_SELECT_MOVED_DESCENDANTS_SRC 194 2120#define STMT_194_INFO {"STMT_SELECT_MOVED_DESCENDANTS_SRC", NULL} 2121#define STMT_194 \ 2122 "SELECT s.op_depth, n.local_relpath, n.kind, n.repos_path, s.moved_to " \ 2123 "FROM nodes n " \ 2124 "JOIN nodes s ON s.wc_id = n.wc_id AND s.local_relpath = n.local_relpath " \ 2125 " AND s.op_depth = (SELECT MIN(d.op_depth) " \ 2126 " FROM nodes d " \ 2127 " WHERE d.wc_id = ?1 " \ 2128 " AND d.local_relpath = s.local_relpath " \ 2129 " AND d.op_depth > ?3) " \ 2130 "WHERE n.wc_id = ?1 AND n.op_depth = ?3 " \ 2131 " 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))) " \ 2132 " AND s.moved_to IS NOT NULL " \ 2133 "" 2134 2135#define STMT_COMMIT_UPDATE_ORIGIN 195 2136#define STMT_195_INFO {"STMT_COMMIT_UPDATE_ORIGIN", NULL} 2137#define STMT_195 \ 2138 "UPDATE nodes SET repos_id = ?4, " \ 2139 " 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), " \ 2140 " revision = ?6 " \ 2141 "WHERE wc_id = ?1 " \ 2142 " AND (local_relpath = ?2 " \ 2143 " OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \ 2144 " AND op_depth = ?3 " \ 2145 "" 2146 2147#define STMT_HAS_LAYER_BETWEEN 196 2148#define STMT_196_INFO {"STMT_HAS_LAYER_BETWEEN", NULL} 2149#define STMT_196 \ 2150 "SELECT 1 FROM NODES " \ 2151 "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth > ?3 AND op_depth < ?4 " \ 2152 "" 2153 2154#define STMT_SELECT_REPOS_PATH_REVISION 197 2155#define STMT_197_INFO {"STMT_SELECT_REPOS_PATH_REVISION", NULL} 2156#define STMT_197 \ 2157 "SELECT local_relpath, repos_path, revision FROM nodes " \ 2158 "WHERE wc_id = ?1 " \ 2159 " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \ 2160 " AND op_depth = 0 " \ 2161 "ORDER BY local_relpath " \ 2162 "" 2163 2164#define STMT_SELECT_HAS_NON_FILE_CHILDREN 198 2165#define STMT_198_INFO {"STMT_SELECT_HAS_NON_FILE_CHILDREN", NULL} 2166#define STMT_198 \ 2167 "SELECT 1 FROM nodes " \ 2168 "WHERE wc_id = ?1 AND parent_relpath = ?2 AND op_depth = ?3 AND kind != 'file' " \ 2169 "LIMIT 1 " \ 2170 "" 2171 2172#define STMT_SELECT_HAS_GRANDCHILDREN 199 2173#define STMT_199_INFO {"STMT_SELECT_HAS_GRANDCHILDREN", NULL} 2174#define STMT_199 \ 2175 "SELECT 1 FROM nodes " \ 2176 "WHERE wc_id = ?1 " \ 2177 " AND (((parent_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((parent_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \ 2178 " AND op_depth = ?3 " \ 2179 " AND file_external IS NULL " \ 2180 "LIMIT 1 " \ 2181 "" 2182 2183#define STMT_SELECT_ALL_NODES 200 2184#define STMT_200_INFO {"STMT_SELECT_ALL_NODES", NULL} 2185#define STMT_200 \ 2186 "SELECT op_depth, local_relpath, parent_relpath, file_external FROM nodes " \ 2187 "WHERE wc_id = ?1 " \ 2188 "" 2189 2190#define STMT_SELECT_IPROPS 201 2191#define STMT_201_INFO {"STMT_SELECT_IPROPS", NULL} 2192#define STMT_201 \ 2193 "SELECT inherited_props FROM nodes " \ 2194 "WHERE wc_id = ?1 " \ 2195 " AND local_relpath = ?2 " \ 2196 " AND op_depth = 0 " \ 2197 "" 2198 2199#define STMT_UPDATE_IPROP 202 2200#define STMT_202_INFO {"STMT_UPDATE_IPROP", NULL} 2201#define STMT_202 \ 2202 "UPDATE nodes " \ 2203 "SET inherited_props = ?3 " \ 2204 "WHERE (wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0) " \ 2205 "" 2206 2207#define STMT_SELECT_IPROPS_NODE 203 2208#define STMT_203_INFO {"STMT_SELECT_IPROPS_NODE", NULL} 2209#define STMT_203 \ 2210 "SELECT local_relpath, repos_path FROM nodes " \ 2211 "WHERE wc_id = ?1 " \ 2212 " AND local_relpath = ?2 " \ 2213 " AND op_depth = 0 " \ 2214 " AND (inherited_props not null) " \ 2215 "" 2216 2217#define STMT_SELECT_IPROPS_RECURSIVE 204 2218#define STMT_204_INFO {"STMT_SELECT_IPROPS_RECURSIVE", NULL} 2219#define STMT_204 \ 2220 "SELECT local_relpath, repos_path FROM nodes " \ 2221 "WHERE wc_id = ?1 " \ 2222 " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \ 2223 " AND op_depth = 0 " \ 2224 " AND (inherited_props not null) " \ 2225 "" 2226 2227#define STMT_SELECT_IPROPS_CHILDREN 205 2228#define STMT_205_INFO {"STMT_SELECT_IPROPS_CHILDREN", NULL} 2229#define STMT_205 \ 2230 "SELECT local_relpath, repos_path FROM nodes " \ 2231 "WHERE wc_id = ?1 " \ 2232 " AND parent_relpath = ?2 " \ 2233 " AND op_depth = 0 " \ 2234 " AND (inherited_props not null) " \ 2235 "" 2236 2237#define STMT_HAVE_STAT1_TABLE 206 2238#define STMT_206_INFO {"STMT_HAVE_STAT1_TABLE", NULL} 2239#define STMT_206 \ 2240 "SELECT 1 FROM sqlite_master WHERE name='sqlite_stat1' AND type='table' " \ 2241 "LIMIT 1 " \ 2242 "" 2243 2244#define STMT_CREATE_SCHEMA 207 2245#define STMT_207_INFO {"STMT_CREATE_SCHEMA", NULL} 2246#define STMT_207 \ 2247 "CREATE TABLE REPOSITORY ( " \ 2248 " id INTEGER PRIMARY KEY AUTOINCREMENT, " \ 2249 " root TEXT UNIQUE NOT NULL, " \ 2250 " uuid TEXT NOT NULL " \ 2251 " ); " \ 2252 "CREATE INDEX I_UUID ON REPOSITORY (uuid); " \ 2253 "CREATE INDEX I_ROOT ON REPOSITORY (root); " \ 2254 "CREATE TABLE WCROOT ( " \ 2255 " id INTEGER PRIMARY KEY AUTOINCREMENT, " \ 2256 " local_abspath TEXT UNIQUE " \ 2257 " ); " \ 2258 "CREATE UNIQUE INDEX I_LOCAL_ABSPATH ON WCROOT (local_abspath); " \ 2259 "CREATE TABLE PRISTINE ( " \ 2260 " checksum TEXT NOT NULL PRIMARY KEY, " \ 2261 " compression INTEGER, " \ 2262 " size INTEGER NOT NULL, " \ 2263 " refcount INTEGER NOT NULL, " \ 2264 " md5_checksum TEXT NOT NULL " \ 2265 " ); " \ 2266 "CREATE INDEX I_PRISTINE_MD5 ON PRISTINE (md5_checksum); " \ 2267 "CREATE TABLE ACTUAL_NODE ( " \ 2268 " wc_id INTEGER NOT NULL REFERENCES WCROOT (id), " \ 2269 " local_relpath TEXT NOT NULL, " \ 2270 " parent_relpath TEXT, " \ 2271 " properties BLOB, " \ 2272 " conflict_old TEXT, " \ 2273 " conflict_new TEXT, " \ 2274 " conflict_working TEXT, " \ 2275 " prop_reject TEXT, " \ 2276 " changelist TEXT, " \ 2277 " text_mod TEXT, " \ 2278 " tree_conflict_data TEXT, " \ 2279 " conflict_data BLOB, " \ 2280 " older_checksum TEXT REFERENCES PRISTINE (checksum), " \ 2281 " left_checksum TEXT REFERENCES PRISTINE (checksum), " \ 2282 " right_checksum TEXT REFERENCES PRISTINE (checksum), " \ 2283 " PRIMARY KEY (wc_id, local_relpath) " \ 2284 " ); " \ 2285 "CREATE UNIQUE INDEX I_ACTUAL_PARENT ON ACTUAL_NODE (wc_id, parent_relpath, " \ 2286 " local_relpath); " \ 2287 "CREATE TABLE LOCK ( " \ 2288 " repos_id INTEGER NOT NULL REFERENCES REPOSITORY (id), " \ 2289 " repos_relpath TEXT NOT NULL, " \ 2290 " lock_token TEXT NOT NULL, " \ 2291 " lock_owner TEXT, " \ 2292 " lock_comment TEXT, " \ 2293 " lock_date INTEGER, " \ 2294 " PRIMARY KEY (repos_id, repos_relpath) " \ 2295 " ); " \ 2296 "CREATE TABLE WORK_QUEUE ( " \ 2297 " id INTEGER PRIMARY KEY AUTOINCREMENT, " \ 2298 " work BLOB NOT NULL " \ 2299 " ); " \ 2300 "CREATE TABLE WC_LOCK ( " \ 2301 " wc_id INTEGER NOT NULL REFERENCES WCROOT (id), " \ 2302 " local_dir_relpath TEXT NOT NULL, " \ 2303 " locked_levels INTEGER NOT NULL DEFAULT -1, " \ 2304 " PRIMARY KEY (wc_id, local_dir_relpath) " \ 2305 " ); " \ 2306 "PRAGMA user_version = " \ 2307 APR_STRINGIFY(SVN_WC__VERSION) \ 2308 "; " \ 2309 "" 2310 2311#define STMT_CREATE_NODES 208 2312#define STMT_208_INFO {"STMT_CREATE_NODES", NULL} 2313#define STMT_208 \ 2314 "CREATE TABLE NODES ( " \ 2315 " wc_id INTEGER NOT NULL REFERENCES WCROOT (id), " \ 2316 " local_relpath TEXT NOT NULL, " \ 2317 " op_depth INTEGER NOT NULL, " \ 2318 " parent_relpath TEXT, " \ 2319 " repos_id INTEGER REFERENCES REPOSITORY (id), " \ 2320 " repos_path TEXT, " \ 2321 " revision INTEGER, " \ 2322 " presence TEXT NOT NULL, " \ 2323 " moved_here INTEGER, " \ 2324 " moved_to TEXT, " \ 2325 " kind TEXT NOT NULL, " \ 2326 " properties BLOB, " \ 2327 " depth TEXT, " \ 2328 " checksum TEXT REFERENCES PRISTINE (checksum), " \ 2329 " symlink_target TEXT, " \ 2330 " changed_revision INTEGER, " \ 2331 " changed_date INTEGER, " \ 2332 " changed_author TEXT, " \ 2333 " translated_size INTEGER, " \ 2334 " last_mod_time INTEGER, " \ 2335 " dav_cache BLOB, " \ 2336 " file_external INTEGER, " \ 2337 " inherited_props BLOB, " \ 2338 " PRIMARY KEY (wc_id, local_relpath, op_depth) " \ 2339 " ); " \ 2340 "CREATE UNIQUE INDEX I_NODES_PARENT ON NODES (wc_id, parent_relpath, " \ 2341 " local_relpath, op_depth); " \ 2342 "CREATE UNIQUE INDEX I_NODES_MOVED ON NODES (wc_id, moved_to, op_depth); " \ 2343 "CREATE VIEW NODES_CURRENT AS " \ 2344 " SELECT * FROM nodes AS n " \ 2345 " WHERE op_depth = (SELECT MAX(op_depth) FROM nodes AS n2 " \ 2346 " WHERE n2.wc_id = n.wc_id " \ 2347 " AND n2.local_relpath = n.local_relpath); " \ 2348 "CREATE VIEW NODES_BASE AS " \ 2349 " SELECT * FROM nodes " \ 2350 " WHERE op_depth = 0; " \ 2351 "" 2352 2353#define STMT_CREATE_NODES_TRIGGERS 209 2354#define STMT_209_INFO {"STMT_CREATE_NODES_TRIGGERS", NULL} 2355#define STMT_209 \ 2356 "CREATE TRIGGER nodes_insert_trigger " \ 2357 "AFTER INSERT ON nodes " \ 2358 "WHEN NEW.checksum IS NOT NULL " \ 2359 "BEGIN " \ 2360 " UPDATE pristine SET refcount = refcount + 1 " \ 2361 " WHERE checksum = NEW.checksum; " \ 2362 "END; " \ 2363 "CREATE TRIGGER nodes_delete_trigger " \ 2364 "AFTER DELETE ON nodes " \ 2365 "WHEN OLD.checksum IS NOT NULL " \ 2366 "BEGIN " \ 2367 " UPDATE pristine SET refcount = refcount - 1 " \ 2368 " WHERE checksum = OLD.checksum; " \ 2369 "END; " \ 2370 "CREATE TRIGGER nodes_update_checksum_trigger " \ 2371 "AFTER UPDATE OF checksum ON nodes " \ 2372 "WHEN NEW.checksum IS NOT OLD.checksum " \ 2373 "BEGIN " \ 2374 " UPDATE pristine SET refcount = refcount + 1 " \ 2375 " WHERE checksum = NEW.checksum; " \ 2376 " UPDATE pristine SET refcount = refcount - 1 " \ 2377 " WHERE checksum = OLD.checksum; " \ 2378 "END; " \ 2379 "" 2380 2381#define STMT_CREATE_EXTERNALS 210 2382#define STMT_210_INFO {"STMT_CREATE_EXTERNALS", NULL} 2383#define STMT_210 \ 2384 "CREATE TABLE EXTERNALS ( " \ 2385 " wc_id INTEGER NOT NULL REFERENCES WCROOT (id), " \ 2386 " local_relpath TEXT NOT NULL, " \ 2387 " parent_relpath TEXT NOT NULL, " \ 2388 " repos_id INTEGER NOT NULL REFERENCES REPOSITORY (id), " \ 2389 " presence TEXT NOT NULL, " \ 2390 " kind TEXT NOT NULL, " \ 2391 " def_local_relpath TEXT NOT NULL, " \ 2392 " def_repos_relpath TEXT NOT NULL, " \ 2393 " def_operational_revision TEXT, " \ 2394 " def_revision TEXT, " \ 2395 " PRIMARY KEY (wc_id, local_relpath) " \ 2396 "); " \ 2397 "CREATE UNIQUE INDEX I_EXTERNALS_DEFINED ON EXTERNALS (wc_id, " \ 2398 " def_local_relpath, " \ 2399 " local_relpath); " \ 2400 "" 2401 2402#define STMT_INSTALL_SCHEMA_STATISTICS 211 2403#define STMT_211_INFO {"STMT_INSTALL_SCHEMA_STATISTICS", NULL} 2404#define STMT_211 \ 2405 "ANALYZE sqlite_master; " \ 2406 "DELETE FROM sqlite_stat1 " \ 2407 "WHERE tbl in ('NODES', 'ACTUAL_NODE', 'LOCK', 'WC_LOCK', 'EXTERNALS'); " \ 2408 "INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES " \ 2409 " ('NODES', 'sqlite_autoindex_NODES_1', '8000 8000 2 1'); " \ 2410 "INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES " \ 2411 " ('NODES', 'I_NODES_PARENT', '8000 8000 10 2 1'); " \ 2412 "INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES " \ 2413 " ('NODES', 'I_NODES_MOVED', '8000 8000 1 1'); " \ 2414 "INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES " \ 2415 " ('ACTUAL_NODE', 'sqlite_autoindex_ACTUAL_NODE_1', '8000 8000 1'); " \ 2416 "INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES " \ 2417 " ('ACTUAL_NODE', 'I_ACTUAL_PARENT', '8000 8000 10 1'); " \ 2418 "INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES " \ 2419 " ('LOCK', 'sqlite_autoindex_LOCK_1', '100 100 1'); " \ 2420 "INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES " \ 2421 " ('WC_LOCK', 'sqlite_autoindex_WC_LOCK_1', '100 100 1'); " \ 2422 "INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES " \ 2423 " ('EXTERNALS','sqlite_autoindex_EXTERNALS_1', '100 100 1'); " \ 2424 "INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES " \ 2425 " ('EXTERNALS','I_EXTERNALS_DEFINED', '100 100 3 1'); " \ 2426 "ANALYZE sqlite_master; " \ 2427 "" 2428 2429#define STMT_UPGRADE_TO_20 212 2430#define STMT_212_INFO {"STMT_UPGRADE_TO_20", NULL} 2431#define STMT_212 \ 2432 "UPDATE BASE_NODE SET checksum = (SELECT checksum FROM pristine " \ 2433 " WHERE md5_checksum = BASE_NODE.checksum) " \ 2434 "WHERE EXISTS (SELECT 1 FROM pristine WHERE md5_checksum = BASE_NODE.checksum); " \ 2435 "UPDATE WORKING_NODE SET checksum = (SELECT checksum FROM pristine " \ 2436 " WHERE md5_checksum = WORKING_NODE.checksum) " \ 2437 "WHERE EXISTS (SELECT 1 FROM pristine " \ 2438 " WHERE md5_checksum = WORKING_NODE.checksum); " \ 2439 "INSERT INTO NODES ( " \ 2440 " wc_id, local_relpath, op_depth, parent_relpath, " \ 2441 " repos_id, repos_path, revision, " \ 2442 " presence, depth, moved_here, moved_to, kind, " \ 2443 " changed_revision, changed_date, changed_author, " \ 2444 " checksum, properties, translated_size, last_mod_time, " \ 2445 " dav_cache, symlink_target, file_external ) " \ 2446 "SELECT wc_id, local_relpath, 0 , parent_relpath, " \ 2447 " repos_id, repos_relpath, revnum, " \ 2448 " presence, depth, NULL , NULL , kind, " \ 2449 " changed_rev, changed_date, changed_author, " \ 2450 " checksum, properties, translated_size, last_mod_time, " \ 2451 " dav_cache, symlink_target, file_external " \ 2452 "FROM BASE_NODE; " \ 2453 "INSERT INTO NODES ( " \ 2454 " wc_id, local_relpath, op_depth, parent_relpath, " \ 2455 " repos_id, repos_path, revision, " \ 2456 " presence, depth, moved_here, moved_to, kind, " \ 2457 " changed_revision, changed_date, changed_author, " \ 2458 " checksum, properties, translated_size, last_mod_time, " \ 2459 " dav_cache, symlink_target, file_external ) " \ 2460 "SELECT wc_id, local_relpath, 2 , parent_relpath, " \ 2461 " copyfrom_repos_id, copyfrom_repos_path, copyfrom_revnum, " \ 2462 " presence, depth, NULL , NULL , kind, " \ 2463 " changed_rev, changed_date, changed_author, " \ 2464 " checksum, properties, translated_size, last_mod_time, " \ 2465 " NULL , symlink_target, NULL " \ 2466 "FROM WORKING_NODE; " \ 2467 "DROP TABLE BASE_NODE; " \ 2468 "DROP TABLE WORKING_NODE; " \ 2469 "PRAGMA user_version = 20; " \ 2470 "" 2471 2472#define STMT_UPGRADE_TO_21 213 2473#define STMT_213_INFO {"STMT_UPGRADE_TO_21", NULL} 2474#define STMT_213 \ 2475 "PRAGMA user_version = 21; " \ 2476 "" 2477 2478#define STMT_UPGRADE_21_SELECT_OLD_TREE_CONFLICT 214 2479#define STMT_214_INFO {"STMT_UPGRADE_21_SELECT_OLD_TREE_CONFLICT", NULL} 2480#define STMT_214 \ 2481 "SELECT wc_id, local_relpath, tree_conflict_data " \ 2482 "FROM actual_node " \ 2483 "WHERE tree_conflict_data IS NOT NULL " \ 2484 "" 2485 2486#define STMT_UPGRADE_21_ERASE_OLD_CONFLICTS 215 2487#define STMT_215_INFO {"STMT_UPGRADE_21_ERASE_OLD_CONFLICTS", NULL} 2488#define STMT_215 \ 2489 "UPDATE actual_node SET tree_conflict_data = NULL " \ 2490 "" 2491 2492#define STMT_UPGRADE_TO_22 216 2493#define STMT_216_INFO {"STMT_UPGRADE_TO_22", NULL} 2494#define STMT_216 \ 2495 "UPDATE actual_node SET tree_conflict_data = conflict_data; " \ 2496 "UPDATE actual_node SET conflict_data = NULL; " \ 2497 "PRAGMA user_version = 22; " \ 2498 "" 2499 2500#define STMT_UPGRADE_TO_23 217 2501#define STMT_217_INFO {"STMT_UPGRADE_TO_23", NULL} 2502#define STMT_217 \ 2503 "PRAGMA user_version = 23; " \ 2504 "" 2505 2506#define STMT_UPGRADE_23_HAS_WORKING_NODES 218 2507#define STMT_218_INFO {"STMT_UPGRADE_23_HAS_WORKING_NODES", NULL} 2508#define STMT_218 \ 2509 "SELECT 1 FROM nodes WHERE op_depth > 0 " \ 2510 "LIMIT 1 " \ 2511 "" 2512 2513#define STMT_UPGRADE_TO_24 219 2514#define STMT_219_INFO {"STMT_UPGRADE_TO_24", NULL} 2515#define STMT_219 \ 2516 "UPDATE pristine SET refcount = " \ 2517 " (SELECT COUNT(*) FROM nodes " \ 2518 " WHERE checksum = pristine.checksum ); " \ 2519 "PRAGMA user_version = 24; " \ 2520 "" 2521 2522#define STMT_UPGRADE_TO_25 220 2523#define STMT_220_INFO {"STMT_UPGRADE_TO_25", NULL} 2524#define STMT_220 \ 2525 "DROP VIEW IF EXISTS NODES_CURRENT; " \ 2526 "CREATE VIEW NODES_CURRENT AS " \ 2527 " SELECT * FROM nodes " \ 2528 " JOIN (SELECT wc_id, local_relpath, MAX(op_depth) AS op_depth FROM nodes " \ 2529 " GROUP BY wc_id, local_relpath) AS filter " \ 2530 " ON nodes.wc_id = filter.wc_id " \ 2531 " AND nodes.local_relpath = filter.local_relpath " \ 2532 " AND nodes.op_depth = filter.op_depth; " \ 2533 "PRAGMA user_version = 25; " \ 2534 "" 2535 2536#define STMT_UPGRADE_TO_26 221 2537#define STMT_221_INFO {"STMT_UPGRADE_TO_26", NULL} 2538#define STMT_221 \ 2539 "DROP VIEW IF EXISTS NODES_BASE; " \ 2540 "CREATE VIEW NODES_BASE AS " \ 2541 " SELECT * FROM nodes " \ 2542 " WHERE op_depth = 0; " \ 2543 "PRAGMA user_version = 26; " \ 2544 "" 2545 2546#define STMT_UPGRADE_TO_27 222 2547#define STMT_222_INFO {"STMT_UPGRADE_TO_27", NULL} 2548#define STMT_222 \ 2549 "PRAGMA user_version = 27; " \ 2550 "" 2551 2552#define STMT_UPGRADE_27_HAS_ACTUAL_NODES_CONFLICTS 223 2553#define STMT_223_INFO {"STMT_UPGRADE_27_HAS_ACTUAL_NODES_CONFLICTS", NULL} 2554#define STMT_223 \ 2555 "SELECT 1 FROM actual_node " \ 2556 "WHERE NOT ((prop_reject IS NULL) AND (conflict_old IS NULL) " \ 2557 " AND (conflict_new IS NULL) AND (conflict_working IS NULL) " \ 2558 " AND (tree_conflict_data IS NULL)) " \ 2559 "LIMIT 1 " \ 2560 "" 2561 2562#define STMT_UPGRADE_TO_28 224 2563#define STMT_224_INFO {"STMT_UPGRADE_TO_28", NULL} 2564#define STMT_224 \ 2565 "UPDATE NODES SET checksum = (SELECT checksum FROM pristine " \ 2566 " WHERE md5_checksum = nodes.checksum) " \ 2567 "WHERE EXISTS (SELECT 1 FROM pristine WHERE md5_checksum = nodes.checksum); " \ 2568 "PRAGMA user_version = 28; " \ 2569 "" 2570 2571#define STMT_UPGRADE_TO_29 225 2572#define STMT_225_INFO {"STMT_UPGRADE_TO_29", NULL} 2573#define STMT_225 \ 2574 "DROP TRIGGER IF EXISTS nodes_update_checksum_trigger; " \ 2575 "DROP TRIGGER IF EXISTS nodes_insert_trigger; " \ 2576 "DROP TRIGGER IF EXISTS nodes_delete_trigger; " \ 2577 "CREATE TRIGGER nodes_update_checksum_trigger " \ 2578 "AFTER UPDATE OF checksum ON nodes " \ 2579 "WHEN NEW.checksum IS NOT OLD.checksum " \ 2580 "BEGIN " \ 2581 " UPDATE pristine SET refcount = refcount + 1 " \ 2582 " WHERE checksum = NEW.checksum; " \ 2583 " UPDATE pristine SET refcount = refcount - 1 " \ 2584 " WHERE checksum = OLD.checksum; " \ 2585 "END; " \ 2586 "CREATE TRIGGER nodes_insert_trigger " \ 2587 "AFTER INSERT ON nodes " \ 2588 "WHEN NEW.checksum IS NOT NULL " \ 2589 "BEGIN " \ 2590 " UPDATE pristine SET refcount = refcount + 1 " \ 2591 " WHERE checksum = NEW.checksum; " \ 2592 "END; " \ 2593 "CREATE TRIGGER nodes_delete_trigger " \ 2594 "AFTER DELETE ON nodes " \ 2595 "WHEN OLD.checksum IS NOT NULL " \ 2596 "BEGIN " \ 2597 " UPDATE pristine SET refcount = refcount - 1 " \ 2598 " WHERE checksum = OLD.checksum; " \ 2599 "END; " \ 2600 "PRAGMA user_version = 29; " \ 2601 "" 2602 2603#define STMT_UPGRADE_TO_30 226 2604#define STMT_226_INFO {"STMT_UPGRADE_TO_30", NULL} 2605#define STMT_226 \ 2606 "CREATE UNIQUE INDEX IF NOT EXISTS I_NODES_MOVED " \ 2607 "ON NODES (wc_id, moved_to, op_depth); " \ 2608 "CREATE INDEX IF NOT EXISTS I_PRISTINE_MD5 ON PRISTINE (md5_checksum); " \ 2609 "UPDATE nodes SET presence = \"server-excluded\" WHERE presence = \"absent\"; " \ 2610 "UPDATE nodes SET file_external=1 WHERE file_external IS NOT NULL; " \ 2611 "" 2612 2613#define STMT_UPGRADE_30_SELECT_CONFLICT_SEPARATE 227 2614#define STMT_227_INFO {"STMT_UPGRADE_30_SELECT_CONFLICT_SEPARATE", NULL} 2615#define STMT_227 \ 2616 "SELECT wc_id, local_relpath, " \ 2617 " conflict_old, conflict_working, conflict_new, prop_reject, tree_conflict_data " \ 2618 "FROM actual_node " \ 2619 "WHERE conflict_old IS NOT NULL " \ 2620 " OR conflict_working IS NOT NULL " \ 2621 " OR conflict_new IS NOT NULL " \ 2622 " OR prop_reject IS NOT NULL " \ 2623 " OR tree_conflict_data IS NOT NULL " \ 2624 "ORDER by wc_id, local_relpath " \ 2625 "" 2626 2627#define STMT_UPGRADE_30_SET_CONFLICT 228 2628#define STMT_228_INFO {"STMT_UPGRADE_30_SET_CONFLICT", NULL} 2629#define STMT_228 \ 2630 "UPDATE actual_node SET conflict_data = ?3, conflict_old = NULL, " \ 2631 " conflict_working = NULL, conflict_new = NULL, prop_reject = NULL, " \ 2632 " tree_conflict_data = NULL " \ 2633 "WHERE wc_id = ?1 and local_relpath = ?2 " \ 2634 "" 2635 2636#define STMT_UPGRADE_TO_31_ALTER_TABLE 229 2637#define STMT_229_INFO {"STMT_UPGRADE_TO_31_ALTER_TABLE", NULL} 2638#define STMT_229 \ 2639 "ALTER TABLE NODES ADD COLUMN inherited_props BLOB; " \ 2640 "" 2641 2642#define STMT_UPGRADE_TO_31_FINALIZE 230 2643#define STMT_230_INFO {"STMT_UPGRADE_TO_31_FINALIZE", NULL} 2644#define STMT_230 \ 2645 "DROP INDEX IF EXISTS I_ACTUAL_CHANGELIST; " \ 2646 "DROP INDEX IF EXISTS I_EXTERNALS_PARENT; " \ 2647 "DROP INDEX I_NODES_PARENT; " \ 2648 "CREATE UNIQUE INDEX I_NODES_PARENT ON NODES (wc_id, parent_relpath, " \ 2649 " local_relpath, op_depth); " \ 2650 "DROP INDEX I_ACTUAL_PARENT; " \ 2651 "CREATE UNIQUE INDEX I_ACTUAL_PARENT ON ACTUAL_NODE (wc_id, parent_relpath, " \ 2652 " local_relpath); " \ 2653 "PRAGMA user_version = 31; " \ 2654 "" 2655 2656#define STMT_UPGRADE_31_SELECT_WCROOT_NODES 231 2657#define STMT_231_INFO {"STMT_UPGRADE_31_SELECT_WCROOT_NODES", NULL} 2658#define STMT_231 \ 2659 "SELECT l.wc_id, l.local_relpath FROM nodes as l " \ 2660 "LEFT OUTER JOIN nodes as r " \ 2661 "ON l.wc_id = r.wc_id " \ 2662 " AND r.local_relpath = l.parent_relpath " \ 2663 " AND r.op_depth = 0 " \ 2664 "WHERE l.op_depth = 0 " \ 2665 " AND l.repos_path != '' " \ 2666 " AND ((l.repos_id IS NOT r.repos_id) " \ 2667 " 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))) " \ 2668 "" 2669 2670#define STMT_UPGRADE_TO_32 232 2671#define STMT_232_INFO {"STMT_UPGRADE_TO_32", NULL} 2672#define STMT_232 \ 2673 "DROP INDEX IF EXISTS I_ACTUAL_CHANGELIST; " \ 2674 "DROP INDEX IF EXISTS I_EXTERNALS_PARENT; " \ 2675 "CREATE INDEX I_EXTERNALS_PARENT ON EXTERNALS (wc_id, parent_relpath); " \ 2676 "DROP INDEX I_NODES_PARENT; " \ 2677 "CREATE UNIQUE INDEX I_NODES_PARENT ON NODES (wc_id, parent_relpath, " \ 2678 " local_relpath, op_depth); " \ 2679 "DROP INDEX I_ACTUAL_PARENT; " \ 2680 "CREATE UNIQUE INDEX I_ACTUAL_PARENT ON ACTUAL_NODE (wc_id, parent_relpath, " \ 2681 " local_relpath); " \ 2682 "-- format: YYY " \ 2683 "" 2684 2685#define WC_QUERIES_SQL_99 \ 2686 "CREATE TABLE ACTUAL_NODE_BACKUP ( " \ 2687 " wc_id INTEGER NOT NULL, " \ 2688 " local_relpath TEXT NOT NULL, " \ 2689 " parent_relpath TEXT, " \ 2690 " properties BLOB, " \ 2691 " conflict_old TEXT, " \ 2692 " conflict_new TEXT, " \ 2693 " conflict_working TEXT, " \ 2694 " prop_reject TEXT, " \ 2695 " changelist TEXT, " \ 2696 " text_mod TEXT " \ 2697 " ); " \ 2698 "INSERT INTO ACTUAL_NODE_BACKUP SELECT " \ 2699 " wc_id, local_relpath, parent_relpath, properties, conflict_old, " \ 2700 " conflict_new, conflict_working, prop_reject, changelist, text_mod " \ 2701 "FROM ACTUAL_NODE; " \ 2702 "DROP TABLE ACTUAL_NODE; " \ 2703 "CREATE TABLE ACTUAL_NODE ( " \ 2704 " wc_id INTEGER NOT NULL REFERENCES WCROOT (id), " \ 2705 " local_relpath TEXT NOT NULL, " \ 2706 " parent_relpath TEXT, " \ 2707 " properties BLOB, " \ 2708 " conflict_old TEXT, " \ 2709 " conflict_new TEXT, " \ 2710 " conflict_working TEXT, " \ 2711 " prop_reject TEXT, " \ 2712 " changelist TEXT, " \ 2713 " text_mod TEXT, " \ 2714 " PRIMARY KEY (wc_id, local_relpath) " \ 2715 " ); " \ 2716 "CREATE UNIQUE INDEX I_ACTUAL_PARENT ON ACTUAL_NODE (wc_id, parent_relpath, " \ 2717 " local_relpath); " \ 2718 "INSERT INTO ACTUAL_NODE SELECT " \ 2719 " wc_id, local_relpath, parent_relpath, properties, conflict_old, " \ 2720 " conflict_new, conflict_working, prop_reject, changelist, text_mod " \ 2721 "FROM ACTUAL_NODE_BACKUP; " \ 2722 "DROP TABLE ACTUAL_NODE_BACKUP; " \ 2723 "" 2724 2725#define STMT_VERIFICATION_TRIGGERS 233 2726#define STMT_233_INFO {"STMT_VERIFICATION_TRIGGERS", NULL} 2727#define STMT_233 \ 2728 "CREATE TEMPORARY TRIGGER no_repository_updates BEFORE UPDATE ON repository " \ 2729 "BEGIN " \ 2730 " SELECT RAISE(FAIL, 'Updates to REPOSITORY are not allowed.'); " \ 2731 "END; " \ 2732 "CREATE TEMPORARY TRIGGER validation_01 BEFORE INSERT ON nodes " \ 2733 "WHEN NOT ((new.local_relpath = '' AND new.parent_relpath IS NULL) " \ 2734 " OR (relpath_depth(new.local_relpath) " \ 2735 " = relpath_depth(new.parent_relpath) + 1)) " \ 2736 "BEGIN " \ 2737 " SELECT RAISE(FAIL, 'WC DB validity check 01 failed'); " \ 2738 "END; " \ 2739 "CREATE TEMPORARY TRIGGER validation_02 BEFORE INSERT ON nodes " \ 2740 "WHEN NOT new.op_depth <= relpath_depth(new.local_relpath) " \ 2741 "BEGIN " \ 2742 " SELECT RAISE(FAIL, 'WC DB validity check 02 failed'); " \ 2743 "END; " \ 2744 "CREATE TEMPORARY TRIGGER validation_03 BEFORE INSERT ON nodes " \ 2745 "WHEN NOT ( " \ 2746 " (new.op_depth = relpath_depth(new.local_relpath)) " \ 2747 " OR " \ 2748 " (EXISTS (SELECT 1 FROM nodes " \ 2749 " WHERE wc_id = new.wc_id AND op_depth = new.op_depth " \ 2750 " AND local_relpath = new.parent_relpath)) " \ 2751 " ) " \ 2752 " AND NOT (new.file_external IS NOT NULL AND new.op_depth = 0) " \ 2753 "BEGIN " \ 2754 " SELECT RAISE(FAIL, 'WC DB validity check 03 failed'); " \ 2755 "END; " \ 2756 "CREATE TEMPORARY TRIGGER validation_04 BEFORE INSERT ON actual_node " \ 2757 "WHEN NOT (new.local_relpath = '' " \ 2758 " OR EXISTS (SELECT 1 FROM nodes " \ 2759 " WHERE wc_id = new.wc_id " \ 2760 " AND local_relpath = new.parent_relpath)) " \ 2761 "BEGIN " \ 2762 " SELECT RAISE(FAIL, 'WC DB validity check 04 failed'); " \ 2763 "END; " \ 2764 "" 2765 2766#define STMT_STATIC_VERIFY 234 2767#define STMT_234_INFO {"STMT_STATIC_VERIFY", NULL} 2768#define STMT_234 \ 2769 "SELECT local_relpath, op_depth, 1, 'Invalid parent relpath set in NODES' " \ 2770 "FROM nodes n WHERE local_relpath != '' " \ 2771 " AND (parent_relpath IS NULL " \ 2772 " 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)) " \ 2773 " OR relpath_depth(local_relpath) != relpath_depth(parent_relpath)+1) " \ 2774 "UNION ALL " \ 2775 "SELECT local_relpath, -1, 2, 'Invalid parent relpath set in ACTUAL' " \ 2776 "FROM actual_node a WHERE local_relpath != '' " \ 2777 " AND (parent_relpath IS NULL " \ 2778 " 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)) " \ 2779 " OR relpath_depth(local_relpath) != relpath_depth(parent_relpath)+1) " \ 2780 "UNION ALL " \ 2781 "SELECT local_relpath, -1, 10, 'No ancestor in ACTUAL' " \ 2782 "FROM actual_node a WHERE local_relpath != '' " \ 2783 " AND NOT EXISTS(SELECT 1 from nodes i " \ 2784 " WHERE i.wc_id=a.wc_id " \ 2785 " AND i.local_relpath=a.parent_relpath) " \ 2786 " AND NOT EXISTS(SELECT 1 from nodes i " \ 2787 " WHERE i.wc_id=a.wc_id " \ 2788 " AND i.local_relpath=a.local_relpath) " \ 2789 "UNION ALL " \ 2790 "SELECT a.local_relpath, -1, 11, 'Bad or Unneeded actual data' " \ 2791 "FROM actual_node a " \ 2792 "LEFT JOIN nodes n on n.wc_id = a.wc_id AND n.local_relpath = a.local_relpath " \ 2793 " AND n.op_depth = (SELECT MAX(op_depth) from nodes i " \ 2794 " WHERE i.wc_id=a.wc_id AND i.local_relpath=a.local_relpath) " \ 2795 "WHERE (a.properties IS NOT NULL " \ 2796 " AND (n.presence IS NULL " \ 2797 " OR n.presence NOT IN ('normal', 'incomplete'))) " \ 2798 " OR (a.changelist IS NOT NULL AND (n.kind IS NOT NULL AND n.kind != 'file')) " \ 2799 " OR (a.conflict_data IS NULL AND a.properties IS NULL AND a.changelist IS NULL) " \ 2800 " AND NOT EXISTS(SELECT 1 from nodes i " \ 2801 " WHERE i.wc_id=a.wc_id " \ 2802 " AND i.local_relpath=a.parent_relpath) " \ 2803 "UNION ALL " \ 2804 "SELECT local_relpath, op_depth, 20, 'No ancestor in NODES' " \ 2805 "FROM nodes n WHERE local_relpath != '' " \ 2806 " AND file_external IS NULL " \ 2807 " AND NOT EXISTS(SELECT 1 from nodes i " \ 2808 " WHERE i.wc_id=n.wc_id " \ 2809 " AND i.local_relpath=n.parent_relpath " \ 2810 " AND i.op_depth <= n.op_depth) " \ 2811 "UNION ALL " \ 2812 "SELECT local_relpath, op_depth, 21, 'Unneeded node data' " \ 2813 "FROM nodes " \ 2814 "WHERE presence NOT IN ('normal', 'incomplete') " \ 2815 "AND (properties IS NOT NULL " \ 2816 " OR checksum IS NOT NULL " \ 2817 " OR depth IS NOT NULL " \ 2818 " OR symlink_target IS NOT NULL " \ 2819 " OR changed_revision IS NOT NULL " \ 2820 " OR (changed_date IS NOT NULL AND changed_date != 0) " \ 2821 " OR changed_author IS NOT NULL " \ 2822 " OR translated_size IS NOT NULL " \ 2823 " OR last_mod_time IS NOT NULL " \ 2824 " OR dav_cache IS NOT NULL " \ 2825 " OR file_external IS NOT NULL " \ 2826 " OR inherited_props IS NOT NULL) " \ 2827 "UNION ALL " \ 2828 "SELECT local_relpath, op_depth, 22, 'Unneeded base-deleted node data' " \ 2829 "FROM nodes " \ 2830 "WHERE presence IN ('base-deleted') " \ 2831 "AND (repos_id IS NOT NULL " \ 2832 " OR repos_path IS NOT NULL " \ 2833 " OR revision IS NOT NULL) " \ 2834 "UNION ALL " \ 2835 "SELECT local_relpath, op_depth, 23, 'Kind specific data invalid on normal' " \ 2836 "FROM nodes " \ 2837 "WHERE presence IN ('normal', 'incomplete') " \ 2838 "AND (kind IS NULL " \ 2839 " OR (repos_path IS NULL " \ 2840 " AND (properties IS NOT NULL " \ 2841 " OR changed_revision IS NOT NULL " \ 2842 " OR changed_author IS NOT NULL " \ 2843 " OR (changed_date IS NOT NULL AND changed_date != 0))) " \ 2844 " OR (CASE WHEN kind = 'file' AND repos_path IS NOT NULL " \ 2845 " THEN checksum IS NULL " \ 2846 " ELSE checksum IS NOT NULL END) " \ 2847 " OR (CASE WHEN kind = 'dir' THEN depth IS NULL " \ 2848 " ELSE depth IS NOT NULL END) " \ 2849 " OR (CASE WHEN kind = 'symlink' THEN symlink_target IS NULL " \ 2850 " ELSE symlink_target IS NOT NULL END)) " \ 2851 "UNION ALL " \ 2852 "SELECT local_relpath, op_depth, 24, 'Invalid op-depth for local add' " \ 2853 "FROM nodes " \ 2854 "WHERE presence IN ('normal', 'incomplete') " \ 2855 " AND repos_path IS NULL " \ 2856 " AND op_depth != relpath_depth(local_relpath) " \ 2857 "UNION ALL " \ 2858 "SELECT local_relpath, op_depth, 25, 'Node missing op-depth ancestor' " \ 2859 "FROM nodes n " \ 2860 "WHERE op_depth < relpath_depth(local_relpath) " \ 2861 " AND file_external IS NULL " \ 2862 " AND NOT EXISTS(SELECT 1 FROM nodes p " \ 2863 " WHERE p.wc_id=n.wc_id AND p.local_relpath=n.parent_relpath " \ 2864 " AND p.op_depth=n.op_depth " \ 2865 " AND (p.presence IN ('normal', 'incomplete') " \ 2866 " OR (p.presence IN ('base-deleted', 'not-present') " \ 2867 " AND n.presence = 'base-deleted'))) " \ 2868 "UNION ALL " \ 2869 "SELECT n.local_relpath, n.op_depth, 26, 'Copied descendant mismatch' " \ 2870 "FROM nodes n " \ 2871 "JOIN nodes p " \ 2872 " ON p.wc_id=n.wc_id AND p.local_relpath=n.parent_relpath " \ 2873 " AND n.op_depth=p.op_depth " \ 2874 "WHERE n.op_depth > 0 AND n.presence IN ('normal', 'incomplete') " \ 2875 " AND (n.repos_id != p.repos_id " \ 2876 " OR n.repos_path != " \ 2877 " (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) " \ 2878 " OR n.revision != p.revision " \ 2879 " OR p.kind != 'dir' " \ 2880 " OR n.moved_here IS NOT p.moved_here) " \ 2881 "UNION ALL " \ 2882 "SELECT n.local_relpath, n.op_depth, 27, 'Invalid op-root presence' " \ 2883 "FROM nodes n " \ 2884 "WHERE n.op_depth = relpath_depth(local_relpath) " \ 2885 " AND presence NOT IN ('normal', 'incomplete', 'base-deleted') " \ 2886 "UNION ALL " \ 2887 "SELECT n.local_relpath, s.op_depth, 28, 'Incomplete shadowing' " \ 2888 "FROM nodes n " \ 2889 "JOIN nodes s ON s.wc_id=n.wc_id AND s.local_relpath=n.local_relpath " \ 2890 " AND s.op_depth = relpath_depth(s.local_relpath) " \ 2891 " AND s.op_depth = (SELECT MIN(op_depth) FROM nodes d " \ 2892 " WHERE d.wc_id=s.wc_id AND d.local_relpath=s.local_relpath " \ 2893 " AND d.op_depth > n.op_depth) " \ 2894 "WHERE n.presence IN ('normal', 'incomplete') " \ 2895 " AND EXISTS(SELECT 1 " \ 2896 " FROM nodes dn " \ 2897 " WHERE dn.wc_id=n.wc_id AND dn.op_depth=n.op_depth " \ 2898 " AND dn.presence IN ('normal', 'incomplete') " \ 2899 " 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)) " \ 2900 " AND dn.file_external IS NULL " \ 2901 " AND NOT EXISTS(SELECT 1 " \ 2902 " FROM nodes ds " \ 2903 " WHERE ds.wc_id=n.wc_id AND ds.op_depth=s.op_depth " \ 2904 " AND ds.local_relpath=dn.local_relpath)) " \ 2905 "UNION ALL " \ 2906 "SELECT s.local_relpath, s.op_depth, 29, 'Invalid base-delete' " \ 2907 "FROM nodes s " \ 2908 "LEFT JOIN nodes n ON n.wc_id=s.wc_id AND n.local_relpath=s.local_relpath " \ 2909 " AND n.op_depth = (SELECT MAX(op_depth) FROM nodes d " \ 2910 " WHERE d.wc_id=s.wc_id AND d.local_relpath=s.local_relpath " \ 2911 " AND d.op_depth < s.op_depth) " \ 2912 "WHERE s.presence = 'base-deleted' " \ 2913 " AND (n.presence IS NULL " \ 2914 " OR n.presence NOT IN ('normal', 'incomplete') " \ 2915 " ) " \ 2916 "UNION ALL " \ 2917 "SELECT n.local_relpath, n.op_depth, 30, 'Invalid data for BASE' " \ 2918 "FROM nodes n " \ 2919 "WHERE n.op_depth = 0 " \ 2920 " AND (n.moved_to IS NOT NULL " \ 2921 " OR n.moved_here IS NOT NULL) " \ 2922 "UNION ALL " \ 2923 "SELECT d.local_relpath, d.op_depth, 60, 'Moved here without origin' " \ 2924 "FROM nodes d " \ 2925 "WHERE d.op_depth = relpath_depth(d.local_relpath) " \ 2926 " AND d.moved_here IS NOT NULL " \ 2927 " AND NOT EXISTS(SELECT 1 FROM nodes s " \ 2928 " WHERE s.wc_id = d.wc_id AND s.moved_to = d.local_relpath) " \ 2929 "UNION ALL " \ 2930 "SELECT s.local_relpath, s.op_depth, 61, 'Moved to without target' " \ 2931 "FROM nodes s " \ 2932 "WHERE s.moved_to IS NOT NULL " \ 2933 " AND NOT EXISTS(SELECT 1 FROM nodes d " \ 2934 " WHERE d.wc_id = s.wc_id AND d.local_relpath = s.moved_to " \ 2935 " AND d.op_depth = relpath_depth(d.local_relpath) " \ 2936 " AND d.moved_here =1 AND d.repos_path IS NOT NULL) " \ 2937 "" 2938 2939#define WC_QUERIES_SQL_DECLARE_STATEMENTS(varname) \ 2940 static const char * const varname[] = { \ 2941 STMT_0, \ 2942 STMT_1, \ 2943 STMT_2, \ 2944 STMT_3, \ 2945 STMT_4, \ 2946 STMT_5, \ 2947 STMT_6, \ 2948 STMT_7, \ 2949 STMT_8, \ 2950 STMT_9, \ 2951 STMT_10, \ 2952 STMT_11, \ 2953 STMT_12, \ 2954 STMT_13, \ 2955 STMT_14, \ 2956 STMT_15, \ 2957 STMT_16, \ 2958 STMT_17, \ 2959 STMT_18, \ 2960 STMT_19, \ 2961 STMT_20, \ 2962 STMT_21, \ 2963 STMT_22, \ 2964 STMT_23, \ 2965 STMT_24, \ 2966 STMT_25, \ 2967 STMT_26, \ 2968 STMT_27, \ 2969 STMT_28, \ 2970 STMT_29, \ 2971 STMT_30, \ 2972 STMT_31, \ 2973 STMT_32, \ 2974 STMT_33, \ 2975 STMT_34, \ 2976 STMT_35, \ 2977 STMT_36, \ 2978 STMT_37, \ 2979 STMT_38, \ 2980 STMT_39, \ 2981 STMT_40, \ 2982 STMT_41, \ 2983 STMT_42, \ 2984 STMT_43, \ 2985 STMT_44, \ 2986 STMT_45, \ 2987 STMT_46, \ 2988 STMT_47, \ 2989 STMT_48, \ 2990 STMT_49, \ 2991 STMT_50, \ 2992 STMT_51, \ 2993 STMT_52, \ 2994 STMT_53, \ 2995 STMT_54, \ 2996 STMT_55, \ 2997 STMT_56, \ 2998 STMT_57, \ 2999 STMT_58, \ 3000 STMT_59, \ 3001 STMT_60, \ 3002 STMT_61, \ 3003 STMT_62, \ 3004 STMT_63, \ 3005 STMT_64, \ 3006 STMT_65, \ 3007 STMT_66, \ 3008 STMT_67, \ 3009 STMT_68, \ 3010 STMT_69, \ 3011 STMT_70, \ 3012 STMT_71, \ 3013 STMT_72, \ 3014 STMT_73, \ 3015 STMT_74, \ 3016 STMT_75, \ 3017 STMT_76, \ 3018 STMT_77, \ 3019 STMT_78, \ 3020 STMT_79, \ 3021 STMT_80, \ 3022 STMT_81, \ 3023 STMT_82, \ 3024 STMT_83, \ 3025 STMT_84, \ 3026 STMT_85, \ 3027 STMT_86, \ 3028 STMT_87, \ 3029 STMT_88, \ 3030 STMT_89, \ 3031 STMT_90, \ 3032 STMT_91, \ 3033 STMT_92, \ 3034 STMT_93, \ 3035 STMT_94, \ 3036 STMT_95, \ 3037 STMT_96, \ 3038 STMT_97, \ 3039 STMT_98, \ 3040 STMT_99, \ 3041 STMT_100, \ 3042 STMT_101, \ 3043 STMT_102, \ 3044 STMT_103, \ 3045 STMT_104, \ 3046 STMT_105, \ 3047 STMT_106, \ 3048 STMT_107, \ 3049 STMT_108, \ 3050 STMT_109, \ 3051 STMT_110, \ 3052 STMT_111, \ 3053 STMT_112, \ 3054 STMT_113, \ 3055 STMT_114, \ 3056 STMT_115, \ 3057 STMT_116, \ 3058 STMT_117, \ 3059 STMT_118, \ 3060 STMT_119, \ 3061 STMT_120, \ 3062 STMT_121, \ 3063 STMT_122, \ 3064 STMT_123, \ 3065 STMT_124, \ 3066 STMT_125, \ 3067 STMT_126, \ 3068 STMT_127, \ 3069 STMT_128, \ 3070 STMT_129, \ 3071 STMT_130, \ 3072 STMT_131, \ 3073 STMT_132, \ 3074 STMT_133, \ 3075 STMT_134, \ 3076 STMT_135, \ 3077 STMT_136, \ 3078 STMT_137, \ 3079 STMT_138, \ 3080 STMT_139, \ 3081 STMT_140, \ 3082 STMT_141, \ 3083 STMT_142, \ 3084 STMT_143, \ 3085 STMT_144, \ 3086 STMT_145, \ 3087 STMT_146, \ 3088 STMT_147, \ 3089 STMT_148, \ 3090 STMT_149, \ 3091 STMT_150, \ 3092 STMT_151, \ 3093 STMT_152, \ 3094 STMT_153, \ 3095 STMT_154, \ 3096 STMT_155, \ 3097 STMT_156, \ 3098 STMT_157, \ 3099 STMT_158, \ 3100 STMT_159, \ 3101 STMT_160, \ 3102 STMT_161, \ 3103 STMT_162, \ 3104 STMT_163, \ 3105 STMT_164, \ 3106 STMT_165, \ 3107 STMT_166, \ 3108 STMT_167, \ 3109 STMT_168, \ 3110 STMT_169, \ 3111 STMT_170, \ 3112 STMT_171, \ 3113 STMT_172, \ 3114 STMT_173, \ 3115 STMT_174, \ 3116 STMT_175, \ 3117 STMT_176, \ 3118 STMT_177, \ 3119 STMT_178, \ 3120 STMT_179, \ 3121 STMT_180, \ 3122 STMT_181, \ 3123 STMT_182, \ 3124 STMT_183, \ 3125 STMT_184, \ 3126 STMT_185, \ 3127 STMT_186, \ 3128 STMT_187, \ 3129 STMT_188, \ 3130 STMT_189, \ 3131 STMT_190, \ 3132 STMT_191, \ 3133 STMT_192, \ 3134 STMT_193, \ 3135 STMT_194, \ 3136 STMT_195, \ 3137 STMT_196, \ 3138 STMT_197, \ 3139 STMT_198, \ 3140 STMT_199, \ 3141 STMT_200, \ 3142 STMT_201, \ 3143 STMT_202, \ 3144 STMT_203, \ 3145 STMT_204, \ 3146 STMT_205, \ 3147 STMT_206, \ 3148 STMT_207, \ 3149 STMT_208, \ 3150 STMT_209, \ 3151 STMT_210, \ 3152 STMT_211, \ 3153 STMT_212, \ 3154 STMT_213, \ 3155 STMT_214, \ 3156 STMT_215, \ 3157 STMT_216, \ 3158 STMT_217, \ 3159 STMT_218, \ 3160 STMT_219, \ 3161 STMT_220, \ 3162 STMT_221, \ 3163 STMT_222, \ 3164 STMT_223, \ 3165 STMT_224, \ 3166 STMT_225, \ 3167 STMT_226, \ 3168 STMT_227, \ 3169 STMT_228, \ 3170 STMT_229, \ 3171 STMT_230, \ 3172 STMT_231, \ 3173 STMT_232, \ 3174 STMT_233, \ 3175 STMT_234, \ 3176 NULL \ 3177 } 3178 3179#define WC_QUERIES_SQL_DECLARE_STATEMENT_INFO(varname) \ 3180 static const char * const varname[][2] = { \ 3181 STMT_0_INFO, \ 3182 STMT_1_INFO, \ 3183 STMT_2_INFO, \ 3184 STMT_3_INFO, \ 3185 STMT_4_INFO, \ 3186 STMT_5_INFO, \ 3187 STMT_6_INFO, \ 3188 STMT_7_INFO, \ 3189 STMT_8_INFO, \ 3190 STMT_9_INFO, \ 3191 STMT_10_INFO, \ 3192 STMT_11_INFO, \ 3193 STMT_12_INFO, \ 3194 STMT_13_INFO, \ 3195 STMT_14_INFO, \ 3196 STMT_15_INFO, \ 3197 STMT_16_INFO, \ 3198 STMT_17_INFO, \ 3199 STMT_18_INFO, \ 3200 STMT_19_INFO, \ 3201 STMT_20_INFO, \ 3202 STMT_21_INFO, \ 3203 STMT_22_INFO, \ 3204 STMT_23_INFO, \ 3205 STMT_24_INFO, \ 3206 STMT_25_INFO, \ 3207 STMT_26_INFO, \ 3208 STMT_27_INFO, \ 3209 STMT_28_INFO, \ 3210 STMT_29_INFO, \ 3211 STMT_30_INFO, \ 3212 STMT_31_INFO, \ 3213 STMT_32_INFO, \ 3214 STMT_33_INFO, \ 3215 STMT_34_INFO, \ 3216 STMT_35_INFO, \ 3217 STMT_36_INFO, \ 3218 STMT_37_INFO, \ 3219 STMT_38_INFO, \ 3220 STMT_39_INFO, \ 3221 STMT_40_INFO, \ 3222 STMT_41_INFO, \ 3223 STMT_42_INFO, \ 3224 STMT_43_INFO, \ 3225 STMT_44_INFO, \ 3226 STMT_45_INFO, \ 3227 STMT_46_INFO, \ 3228 STMT_47_INFO, \ 3229 STMT_48_INFO, \ 3230 STMT_49_INFO, \ 3231 STMT_50_INFO, \ 3232 STMT_51_INFO, \ 3233 STMT_52_INFO, \ 3234 STMT_53_INFO, \ 3235 STMT_54_INFO, \ 3236 STMT_55_INFO, \ 3237 STMT_56_INFO, \ 3238 STMT_57_INFO, \ 3239 STMT_58_INFO, \ 3240 STMT_59_INFO, \ 3241 STMT_60_INFO, \ 3242 STMT_61_INFO, \ 3243 STMT_62_INFO, \ 3244 STMT_63_INFO, \ 3245 STMT_64_INFO, \ 3246 STMT_65_INFO, \ 3247 STMT_66_INFO, \ 3248 STMT_67_INFO, \ 3249 STMT_68_INFO, \ 3250 STMT_69_INFO, \ 3251 STMT_70_INFO, \ 3252 STMT_71_INFO, \ 3253 STMT_72_INFO, \ 3254 STMT_73_INFO, \ 3255 STMT_74_INFO, \ 3256 STMT_75_INFO, \ 3257 STMT_76_INFO, \ 3258 STMT_77_INFO, \ 3259 STMT_78_INFO, \ 3260 STMT_79_INFO, \ 3261 STMT_80_INFO, \ 3262 STMT_81_INFO, \ 3263 STMT_82_INFO, \ 3264 STMT_83_INFO, \ 3265 STMT_84_INFO, \ 3266 STMT_85_INFO, \ 3267 STMT_86_INFO, \ 3268 STMT_87_INFO, \ 3269 STMT_88_INFO, \ 3270 STMT_89_INFO, \ 3271 STMT_90_INFO, \ 3272 STMT_91_INFO, \ 3273 STMT_92_INFO, \ 3274 STMT_93_INFO, \ 3275 STMT_94_INFO, \ 3276 STMT_95_INFO, \ 3277 STMT_96_INFO, \ 3278 STMT_97_INFO, \ 3279 STMT_98_INFO, \ 3280 STMT_99_INFO, \ 3281 STMT_100_INFO, \ 3282 STMT_101_INFO, \ 3283 STMT_102_INFO, \ 3284 STMT_103_INFO, \ 3285 STMT_104_INFO, \ 3286 STMT_105_INFO, \ 3287 STMT_106_INFO, \ 3288 STMT_107_INFO, \ 3289 STMT_108_INFO, \ 3290 STMT_109_INFO, \ 3291 STMT_110_INFO, \ 3292 STMT_111_INFO, \ 3293 STMT_112_INFO, \ 3294 STMT_113_INFO, \ 3295 STMT_114_INFO, \ 3296 STMT_115_INFO, \ 3297 STMT_116_INFO, \ 3298 STMT_117_INFO, \ 3299 STMT_118_INFO, \ 3300 STMT_119_INFO, \ 3301 STMT_120_INFO, \ 3302 STMT_121_INFO, \ 3303 STMT_122_INFO, \ 3304 STMT_123_INFO, \ 3305 STMT_124_INFO, \ 3306 STMT_125_INFO, \ 3307 STMT_126_INFO, \ 3308 STMT_127_INFO, \ 3309 STMT_128_INFO, \ 3310 STMT_129_INFO, \ 3311 STMT_130_INFO, \ 3312 STMT_131_INFO, \ 3313 STMT_132_INFO, \ 3314 STMT_133_INFO, \ 3315 STMT_134_INFO, \ 3316 STMT_135_INFO, \ 3317 STMT_136_INFO, \ 3318 STMT_137_INFO, \ 3319 STMT_138_INFO, \ 3320 STMT_139_INFO, \ 3321 STMT_140_INFO, \ 3322 STMT_141_INFO, \ 3323 STMT_142_INFO, \ 3324 STMT_143_INFO, \ 3325 STMT_144_INFO, \ 3326 STMT_145_INFO, \ 3327 STMT_146_INFO, \ 3328 STMT_147_INFO, \ 3329 STMT_148_INFO, \ 3330 STMT_149_INFO, \ 3331 STMT_150_INFO, \ 3332 STMT_151_INFO, \ 3333 STMT_152_INFO, \ 3334 STMT_153_INFO, \ 3335 STMT_154_INFO, \ 3336 STMT_155_INFO, \ 3337 STMT_156_INFO, \ 3338 STMT_157_INFO, \ 3339 STMT_158_INFO, \ 3340 STMT_159_INFO, \ 3341 STMT_160_INFO, \ 3342 STMT_161_INFO, \ 3343 STMT_162_INFO, \ 3344 STMT_163_INFO, \ 3345 STMT_164_INFO, \ 3346 STMT_165_INFO, \ 3347 STMT_166_INFO, \ 3348 STMT_167_INFO, \ 3349 STMT_168_INFO, \ 3350 STMT_169_INFO, \ 3351 STMT_170_INFO, \ 3352 STMT_171_INFO, \ 3353 STMT_172_INFO, \ 3354 STMT_173_INFO, \ 3355 STMT_174_INFO, \ 3356 STMT_175_INFO, \ 3357 STMT_176_INFO, \ 3358 STMT_177_INFO, \ 3359 STMT_178_INFO, \ 3360 STMT_179_INFO, \ 3361 STMT_180_INFO, \ 3362 STMT_181_INFO, \ 3363 STMT_182_INFO, \ 3364 STMT_183_INFO, \ 3365 STMT_184_INFO, \ 3366 STMT_185_INFO, \ 3367 STMT_186_INFO, \ 3368 STMT_187_INFO, \ 3369 STMT_188_INFO, \ 3370 STMT_189_INFO, \ 3371 STMT_190_INFO, \ 3372 STMT_191_INFO, \ 3373 STMT_192_INFO, \ 3374 STMT_193_INFO, \ 3375 STMT_194_INFO, \ 3376 STMT_195_INFO, \ 3377 STMT_196_INFO, \ 3378 STMT_197_INFO, \ 3379 STMT_198_INFO, \ 3380 STMT_199_INFO, \ 3381 STMT_200_INFO, \ 3382 STMT_201_INFO, \ 3383 STMT_202_INFO, \ 3384 STMT_203_INFO, \ 3385 STMT_204_INFO, \ 3386 STMT_205_INFO, \ 3387 STMT_206_INFO, \ 3388 STMT_207_INFO, \ 3389 STMT_208_INFO, \ 3390 STMT_209_INFO, \ 3391 STMT_210_INFO, \ 3392 STMT_211_INFO, \ 3393 STMT_212_INFO, \ 3394 STMT_213_INFO, \ 3395 STMT_214_INFO, \ 3396 STMT_215_INFO, \ 3397 STMT_216_INFO, \ 3398 STMT_217_INFO, \ 3399 STMT_218_INFO, \ 3400 STMT_219_INFO, \ 3401 STMT_220_INFO, \ 3402 STMT_221_INFO, \ 3403 STMT_222_INFO, \ 3404 STMT_223_INFO, \ 3405 STMT_224_INFO, \ 3406 STMT_225_INFO, \ 3407 STMT_226_INFO, \ 3408 STMT_227_INFO, \ 3409 STMT_228_INFO, \ 3410 STMT_229_INFO, \ 3411 STMT_230_INFO, \ 3412 STMT_231_INFO, \ 3413 STMT_232_INFO, \ 3414 STMT_233_INFO, \ 3415 STMT_234_INFO, \ 3416 {NULL, NULL} \ 3417 } 3418