]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/subversion/subversion/libsvn_wc/wc-metadata.h
Update Subversion and dependencies to 1.14.0 LTS.
[FreeBSD/FreeBSD.git] / contrib / subversion / subversion / libsvn_wc / wc-metadata.h
1 /* This file is automatically generated from wc-metadata.sql and token-map.h.
2  * Do not edit this file -- edit the source and rerun gen-make.py */
3
4 #define STMT_CREATE_SCHEMA 0
5 #define STMT_0_INFO {"STMT_CREATE_SCHEMA", NULL}
6 #define STMT_0 \
7   "CREATE TABLE REPOSITORY ( " \
8   "  id INTEGER PRIMARY KEY AUTOINCREMENT, " \
9   "  root  TEXT UNIQUE NOT NULL, " \
10   "  uuid  TEXT NOT NULL " \
11   "  ); " \
12   "CREATE INDEX I_UUID ON REPOSITORY (uuid); " \
13   "CREATE INDEX I_ROOT ON REPOSITORY (root); " \
14   "CREATE TABLE WCROOT ( " \
15   "  id  INTEGER PRIMARY KEY AUTOINCREMENT, " \
16   "  local_abspath  TEXT UNIQUE " \
17   "  ); " \
18   "CREATE UNIQUE INDEX I_LOCAL_ABSPATH ON WCROOT (local_abspath); " \
19   "CREATE TABLE PRISTINE ( " \
20   "  checksum  TEXT NOT NULL PRIMARY KEY, " \
21   "  compression  INTEGER, " \
22   "  size  INTEGER NOT NULL, " \
23   "  refcount  INTEGER NOT NULL, " \
24   "  md5_checksum  TEXT NOT NULL " \
25   "  ); " \
26   "CREATE INDEX I_PRISTINE_MD5 ON PRISTINE (md5_checksum); " \
27   "CREATE TABLE ACTUAL_NODE ( " \
28   "  wc_id  INTEGER NOT NULL REFERENCES WCROOT (id), " \
29   "  local_relpath  TEXT NOT NULL, " \
30   "  parent_relpath  TEXT, " \
31   "  properties  BLOB, " \
32   "  conflict_old  TEXT, " \
33   "  conflict_new  TEXT, " \
34   "  conflict_working  TEXT, " \
35   "  prop_reject  TEXT, " \
36   "  changelist  TEXT, " \
37   "  text_mod  TEXT, " \
38   "  tree_conflict_data  TEXT, " \
39   "  conflict_data  BLOB, " \
40   "  older_checksum  TEXT REFERENCES PRISTINE (checksum), " \
41   "  left_checksum  TEXT REFERENCES PRISTINE (checksum), " \
42   "  right_checksum  TEXT REFERENCES PRISTINE (checksum), " \
43   "  PRIMARY KEY (wc_id, local_relpath) " \
44   "  ); " \
45   "CREATE UNIQUE INDEX I_ACTUAL_PARENT ON ACTUAL_NODE (wc_id, parent_relpath, " \
46   "                                                    local_relpath); " \
47   "CREATE TABLE LOCK ( " \
48   "  repos_id  INTEGER NOT NULL REFERENCES REPOSITORY (id), " \
49   "  repos_relpath  TEXT NOT NULL, " \
50   "  lock_token  TEXT NOT NULL, " \
51   "  lock_owner  TEXT, " \
52   "  lock_comment  TEXT, " \
53   "  lock_date  INTEGER, " \
54   "  PRIMARY KEY (repos_id, repos_relpath) " \
55   "  ); " \
56   "CREATE TABLE WORK_QUEUE ( " \
57   "  id  INTEGER PRIMARY KEY AUTOINCREMENT, " \
58   "  work  BLOB NOT NULL " \
59   "  ); " \
60   "CREATE TABLE WC_LOCK ( " \
61   "  wc_id  INTEGER NOT NULL  REFERENCES WCROOT (id), " \
62   "  local_dir_relpath  TEXT NOT NULL, " \
63   "  locked_levels  INTEGER NOT NULL DEFAULT -1, " \
64   "  PRIMARY KEY (wc_id, local_dir_relpath) " \
65   " ); " \
66   "CREATE TABLE NODES ( " \
67   "  wc_id  INTEGER NOT NULL REFERENCES WCROOT (id), " \
68   "  local_relpath  TEXT NOT NULL, " \
69   "  op_depth INTEGER NOT NULL, " \
70   "  parent_relpath  TEXT, " \
71   "  repos_id  INTEGER REFERENCES REPOSITORY (id), " \
72   "  repos_path  TEXT, " \
73   "  revision  INTEGER, " \
74   "  presence  TEXT NOT NULL, " \
75   "  moved_here  INTEGER, " \
76   "  moved_to  TEXT, " \
77   "  kind  TEXT NOT NULL, " \
78   "  properties  BLOB, " \
79   "  depth  TEXT, " \
80   "  checksum  TEXT REFERENCES PRISTINE (checksum), " \
81   "  symlink_target  TEXT, " \
82   "  changed_revision  INTEGER, " \
83   "  changed_date      INTEGER, " \
84   "  changed_author    TEXT, " \
85   "  translated_size  INTEGER, " \
86   "  last_mod_time  INTEGER, " \
87   "  dav_cache  BLOB, " \
88   "  file_external  INTEGER, " \
89   "  inherited_props  BLOB, " \
90   "  PRIMARY KEY (wc_id, local_relpath, op_depth) " \
91   "  ); " \
92   "CREATE UNIQUE INDEX I_NODES_PARENT ON NODES (wc_id, parent_relpath, " \
93   "                                             local_relpath, op_depth); " \
94   "CREATE UNIQUE INDEX I_NODES_MOVED ON NODES (wc_id, moved_to, op_depth); " \
95   "CREATE VIEW NODES_CURRENT AS " \
96   "  SELECT * FROM nodes AS n " \
97   "    WHERE op_depth = (SELECT MAX(op_depth) FROM nodes AS n2 " \
98   "                      WHERE n2.wc_id = n.wc_id " \
99   "                        AND n2.local_relpath = n.local_relpath); " \
100   "CREATE VIEW NODES_BASE AS " \
101   "  SELECT * FROM nodes " \
102   "  WHERE op_depth = 0; " \
103   "CREATE TRIGGER nodes_insert_trigger " \
104   "AFTER INSERT ON nodes " \
105   "WHEN NEW.checksum IS NOT NULL " \
106   "BEGIN " \
107   "  UPDATE pristine SET refcount = refcount + 1 " \
108   "  WHERE checksum = NEW.checksum; " \
109   "END; " \
110   "CREATE TRIGGER nodes_delete_trigger " \
111   "AFTER DELETE ON nodes " \
112   "WHEN OLD.checksum IS NOT NULL " \
113   "BEGIN " \
114   "  UPDATE pristine SET refcount = refcount - 1 " \
115   "  WHERE checksum = OLD.checksum; " \
116   "END; " \
117   "CREATE TRIGGER nodes_update_checksum_trigger " \
118   "AFTER UPDATE OF checksum ON nodes " \
119   "WHEN NEW.checksum IS NOT OLD.checksum " \
120   "BEGIN " \
121   "  UPDATE pristine SET refcount = refcount + 1 " \
122   "  WHERE checksum = NEW.checksum; " \
123   "  UPDATE pristine SET refcount = refcount - 1 " \
124   "  WHERE checksum = OLD.checksum; " \
125   "END; " \
126   "CREATE TABLE EXTERNALS ( " \
127   "  wc_id  INTEGER NOT NULL REFERENCES WCROOT (id), " \
128   "  local_relpath  TEXT NOT NULL, " \
129   "  parent_relpath  TEXT NOT NULL, " \
130   "  repos_id  INTEGER NOT NULL REFERENCES REPOSITORY (id), " \
131   "  presence  TEXT NOT NULL, " \
132   "  kind  TEXT NOT NULL, " \
133   "  def_local_relpath         TEXT NOT NULL, " \
134   "  def_repos_relpath         TEXT NOT NULL, " \
135   "  def_operational_revision  TEXT, " \
136   "  def_revision              TEXT, " \
137   "  PRIMARY KEY (wc_id, local_relpath) " \
138   "); " \
139   "CREATE UNIQUE INDEX I_EXTERNALS_DEFINED ON EXTERNALS (wc_id, " \
140   "                                                      def_local_relpath, " \
141   "                                                      local_relpath); " \
142   "PRAGMA user_version = " \
143   APR_STRINGIFY(SVN_WC__VERSION) \
144   "; " \
145   ""
146
147 #define STMT_INSTALL_SCHEMA_STATISTICS 1
148 #define STMT_1_INFO {"STMT_INSTALL_SCHEMA_STATISTICS", NULL}
149 #define STMT_1 \
150   "ANALYZE sqlite_master; " \
151   "DELETE FROM sqlite_stat1 " \
152   "WHERE tbl in ('NODES', 'ACTUAL_NODE', 'LOCK', 'WC_LOCK', 'EXTERNALS'); " \
153   "INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES " \
154   "    ('NODES', 'sqlite_autoindex_NODES_1',               '8000 8000 2 1'); " \
155   "INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES " \
156   "    ('NODES', 'I_NODES_PARENT',                         '8000 8000 10 2 1'); " \
157   "INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES " \
158   "    ('NODES', 'I_NODES_MOVED',                          '8000 8000 1 1'); " \
159   "INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES " \
160   "    ('ACTUAL_NODE', 'sqlite_autoindex_ACTUAL_NODE_1',   '8000 8000 1'); " \
161   "INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES " \
162   "    ('ACTUAL_NODE', 'I_ACTUAL_PARENT',                  '8000 8000 10 1'); " \
163   "INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES " \
164   "    ('LOCK', 'sqlite_autoindex_LOCK_1',                 '100 100 1'); " \
165   "INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES " \
166   "    ('WC_LOCK', 'sqlite_autoindex_WC_LOCK_1',           '100 100 1'); " \
167   "INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES " \
168   "    ('EXTERNALS','sqlite_autoindex_EXTERNALS_1',        '100 100 1'); " \
169   "INSERT INTO sqlite_stat1(tbl, idx, stat) VALUES " \
170   "    ('EXTERNALS','I_EXTERNALS_DEFINED',                 '100 100 3 1'); " \
171   "ANALYZE sqlite_master; " \
172   ""
173
174 #define STMT_UPGRADE_TO_30 2
175 #define STMT_2_INFO {"STMT_UPGRADE_TO_30", NULL}
176 #define STMT_2 \
177   "CREATE UNIQUE INDEX IF NOT EXISTS I_NODES_MOVED " \
178   "ON NODES (wc_id, moved_to, op_depth); " \
179   "CREATE INDEX IF NOT EXISTS I_PRISTINE_MD5 ON PRISTINE (md5_checksum); " \
180   "UPDATE nodes SET presence = \"server-excluded\" WHERE presence = \"absent\"; " \
181   "UPDATE nodes SET file_external=1 WHERE file_external IS NOT NULL; " \
182   ""
183
184 #define STMT_UPGRADE_30_SELECT_CONFLICT_SEPARATE 3
185 #define STMT_3_INFO {"STMT_UPGRADE_30_SELECT_CONFLICT_SEPARATE", NULL}
186 #define STMT_3 \
187   "SELECT wc_id, local_relpath, " \
188   "  conflict_old, conflict_working, conflict_new, prop_reject, tree_conflict_data " \
189   "FROM actual_node " \
190   "WHERE conflict_old IS NOT NULL " \
191   "   OR conflict_working IS NOT NULL " \
192   "   OR conflict_new IS NOT NULL " \
193   "   OR prop_reject IS NOT NULL " \
194   "   OR tree_conflict_data IS NOT NULL " \
195   "ORDER by wc_id, local_relpath " \
196   ""
197
198 #define STMT_UPGRADE_30_SET_CONFLICT 4
199 #define STMT_4_INFO {"STMT_UPGRADE_30_SET_CONFLICT", NULL}
200 #define STMT_4 \
201   "UPDATE actual_node SET conflict_data = ?3, conflict_old = NULL, " \
202   "  conflict_working = NULL, conflict_new = NULL, prop_reject = NULL, " \
203   "  tree_conflict_data = NULL " \
204   "WHERE wc_id = ?1 and local_relpath = ?2 " \
205   ""
206
207 #define STMT_UPGRADE_TO_31 5
208 #define STMT_5_INFO {"STMT_UPGRADE_TO_31", NULL}
209 #define STMT_5 \
210   "ALTER TABLE NODES ADD COLUMN inherited_props BLOB; " \
211   "DROP INDEX IF EXISTS I_ACTUAL_CHANGELIST; " \
212   "DROP INDEX IF EXISTS I_EXTERNALS_PARENT; " \
213   "DROP INDEX I_NODES_PARENT; " \
214   "CREATE UNIQUE INDEX I_NODES_PARENT ON NODES (wc_id, parent_relpath, " \
215   "                                             local_relpath, op_depth); " \
216   "DROP INDEX I_ACTUAL_PARENT; " \
217   "CREATE UNIQUE INDEX I_ACTUAL_PARENT ON ACTUAL_NODE (wc_id, parent_relpath, " \
218   "                                                    local_relpath); " \
219   "PRAGMA user_version = 31; " \
220   ""
221
222 #define STMT_UPGRADE_31_SELECT_WCROOT_NODES 6
223 #define STMT_6_INFO {"STMT_UPGRADE_31_SELECT_WCROOT_NODES", NULL}
224 #define STMT_6 \
225   "SELECT l.wc_id, l.local_relpath FROM nodes as l " \
226   "LEFT OUTER JOIN nodes as r " \
227   "ON l.wc_id = r.wc_id " \
228   "   AND r.local_relpath = l.parent_relpath " \
229   "   AND r.op_depth = 0 " \
230   "WHERE l.op_depth = 0 " \
231   "  AND l.repos_path != '' " \
232   "  AND ((l.repos_id IS NOT r.repos_id) " \
233   "       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))) " \
234   ""
235
236 #define WC_METADATA_SQL_99 \
237   "CREATE TABLE ACTUAL_NODE_BACKUP ( " \
238   "  wc_id  INTEGER NOT NULL, " \
239   "  local_relpath  TEXT NOT NULL, " \
240   "  parent_relpath  TEXT, " \
241   "  properties  BLOB, " \
242   "  conflict_old  TEXT, " \
243   "  conflict_new  TEXT, " \
244   "  conflict_working  TEXT, " \
245   "  prop_reject  TEXT, " \
246   "  changelist  TEXT, " \
247   "  text_mod  TEXT " \
248   "  ); " \
249   "INSERT INTO ACTUAL_NODE_BACKUP SELECT " \
250   "  wc_id, local_relpath, parent_relpath, properties, conflict_old, " \
251   "  conflict_new, conflict_working, prop_reject, changelist, text_mod " \
252   "FROM ACTUAL_NODE; " \
253   "DROP TABLE ACTUAL_NODE; " \
254   "CREATE TABLE ACTUAL_NODE ( " \
255   "  wc_id  INTEGER NOT NULL REFERENCES WCROOT (id), " \
256   "  local_relpath  TEXT NOT NULL, " \
257   "  parent_relpath  TEXT, " \
258   "  properties  BLOB, " \
259   "  conflict_old  TEXT, " \
260   "  conflict_new  TEXT, " \
261   "  conflict_working  TEXT, " \
262   "  prop_reject  TEXT, " \
263   "  changelist  TEXT, " \
264   "  text_mod  TEXT, " \
265   "  PRIMARY KEY (wc_id, local_relpath) " \
266   "  ); " \
267   "CREATE UNIQUE INDEX I_ACTUAL_PARENT ON ACTUAL_NODE (wc_id, parent_relpath, " \
268   "                                                    local_relpath); " \
269   "INSERT INTO ACTUAL_NODE SELECT " \
270   "  wc_id, local_relpath, parent_relpath, properties, conflict_old, " \
271   "  conflict_new, conflict_working, prop_reject, changelist, text_mod " \
272   "FROM ACTUAL_NODE_BACKUP; " \
273   "DROP TABLE ACTUAL_NODE_BACKUP; " \
274   ""
275
276 #define WC_METADATA_SQL_DECLARE_STATEMENTS(varname) \
277   static const char * const varname[] = { \
278     STMT_0, \
279     STMT_1, \
280     STMT_2, \
281     STMT_3, \
282     STMT_4, \
283     STMT_5, \
284     STMT_6, \
285     NULL \
286   }
287
288 #define WC_METADATA_SQL_DECLARE_STATEMENT_INFO(varname) \
289   static const char * const varname[][2] = { \
290     STMT_0_INFO, \
291     STMT_1_INFO, \
292     STMT_2_INFO, \
293     STMT_3_INFO, \
294     STMT_4_INFO, \
295     STMT_5_INFO, \
296     STMT_6_INFO, \
297     {NULL, NULL} \
298   }