xref: /sqlite-3.40.0/src/pragma.h (revision 38d69855)
1 /* DO NOT EDIT!
2 ** This file is automatically generated by the script at
3 ** ../tool/mkpragmatab.tcl.  To update the set of pragmas, edit
4 ** that script and rerun it.
5 */
6 #define PragTyp_HEADER_VALUE                   0
7 #define PragTyp_AUTO_VACUUM                    1
8 #define PragTyp_FLAG                           2
9 #define PragTyp_BUSY_TIMEOUT                   3
10 #define PragTyp_CACHE_SIZE                     4
11 #define PragTyp_CACHE_SPILL                    5
12 #define PragTyp_CASE_SENSITIVE_LIKE            6
13 #define PragTyp_COLLATION_LIST                 7
14 #define PragTyp_COMPILE_OPTIONS                8
15 #define PragTyp_DATA_STORE_DIRECTORY           9
16 #define PragTyp_DATABASE_LIST                 10
17 #define PragTyp_DEFAULT_CACHE_SIZE            11
18 #define PragTyp_ENCODING                      12
19 #define PragTyp_FOREIGN_KEY_CHECK             13
20 #define PragTyp_FOREIGN_KEY_LIST              14
21 #define PragTyp_INCREMENTAL_VACUUM            15
22 #define PragTyp_INDEX_INFO                    16
23 #define PragTyp_INDEX_LIST                    17
24 #define PragTyp_INTEGRITY_CHECK               18
25 #define PragTyp_JOURNAL_MODE                  19
26 #define PragTyp_JOURNAL_SIZE_LIMIT            20
27 #define PragTyp_LOCK_PROXY_FILE               21
28 #define PragTyp_LOCKING_MODE                  22
29 #define PragTyp_PAGE_COUNT                    23
30 #define PragTyp_MMAP_SIZE                     24
31 #define PragTyp_PAGE_SIZE                     25
32 #define PragTyp_SECURE_DELETE                 26
33 #define PragTyp_SHRINK_MEMORY                 27
34 #define PragTyp_SOFT_HEAP_LIMIT               28
35 #define PragTyp_STATS                         29
36 #define PragTyp_SYNCHRONOUS                   30
37 #define PragTyp_TABLE_INFO                    31
38 #define PragTyp_TEMP_STORE                    32
39 #define PragTyp_TEMP_STORE_DIRECTORY          33
40 #define PragTyp_THREADS                       34
41 #define PragTyp_WAL_AUTOCHECKPOINT            35
42 #define PragTyp_WAL_CHECKPOINT                36
43 #define PragTyp_ACTIVATE_EXTENSIONS           37
44 #define PragTyp_HEXKEY                        38
45 #define PragTyp_KEY                           39
46 #define PragTyp_REKEY                         40
47 #define PragTyp_LOCK_STATUS                   41
48 #define PragTyp_PARSER_TRACE                  42
49 #define PragFlag_NeedSchema           0x01
50 #define PragFlag_ReadOnly             0x02
51 static const struct sPragmaNames {
52   const char *const zName;  /* Name of pragma */
53   u8 ePragTyp;              /* PragTyp_XXX value */
54   u8 mPragFlag;             /* Zero or more PragFlag_XXX values */
55   u32 iArg;                 /* Extra argument */
56 } aPragmaNames[] = {
57 #if defined(SQLITE_HAS_CODEC) || defined(SQLITE_ENABLE_CEROD)
58   { /* zName:     */ "activate_extensions",
59     /* ePragTyp:  */ PragTyp_ACTIVATE_EXTENSIONS,
60     /* ePragFlag: */ 0,
61     /* iArg:      */ 0 },
62 #endif
63 #if !defined(SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS)
64   { /* zName:     */ "application_id",
65     /* ePragTyp:  */ PragTyp_HEADER_VALUE,
66     /* ePragFlag: */ 0,
67     /* iArg:      */ BTREE_APPLICATION_ID },
68 #endif
69 #if !defined(SQLITE_OMIT_AUTOVACUUM)
70   { /* zName:     */ "auto_vacuum",
71     /* ePragTyp:  */ PragTyp_AUTO_VACUUM,
72     /* ePragFlag: */ PragFlag_NeedSchema,
73     /* iArg:      */ 0 },
74 #endif
75 #if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
76 #if !defined(SQLITE_OMIT_AUTOMATIC_INDEX)
77   { /* zName:     */ "automatic_index",
78     /* ePragTyp:  */ PragTyp_FLAG,
79     /* ePragFlag: */ 0,
80     /* iArg:      */ SQLITE_AutoIndex },
81 #endif
82 #endif
83   { /* zName:     */ "busy_timeout",
84     /* ePragTyp:  */ PragTyp_BUSY_TIMEOUT,
85     /* ePragFlag: */ 0,
86     /* iArg:      */ 0 },
87 #if !defined(SQLITE_OMIT_PAGER_PRAGMAS)
88   { /* zName:     */ "cache_size",
89     /* ePragTyp:  */ PragTyp_CACHE_SIZE,
90     /* ePragFlag: */ PragFlag_NeedSchema,
91     /* iArg:      */ 0 },
92 #endif
93 #if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
94   { /* zName:     */ "cache_spill",
95     /* ePragTyp:  */ PragTyp_CACHE_SPILL,
96     /* ePragFlag: */ 0,
97     /* iArg:      */ 0 },
98 #endif
99   { /* zName:     */ "case_sensitive_like",
100     /* ePragTyp:  */ PragTyp_CASE_SENSITIVE_LIKE,
101     /* ePragFlag: */ 0,
102     /* iArg:      */ 0 },
103   { /* zName:     */ "cell_size_check",
104     /* ePragTyp:  */ PragTyp_FLAG,
105     /* ePragFlag: */ 0,
106     /* iArg:      */ SQLITE_CellSizeCk },
107 #if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
108   { /* zName:     */ "checkpoint_fullfsync",
109     /* ePragTyp:  */ PragTyp_FLAG,
110     /* ePragFlag: */ 0,
111     /* iArg:      */ SQLITE_CkptFullFSync },
112 #endif
113 #if !defined(SQLITE_OMIT_SCHEMA_PRAGMAS)
114   { /* zName:     */ "collation_list",
115     /* ePragTyp:  */ PragTyp_COLLATION_LIST,
116     /* ePragFlag: */ 0,
117     /* iArg:      */ 0 },
118 #endif
119 #if !defined(SQLITE_OMIT_COMPILEOPTION_DIAGS)
120   { /* zName:     */ "compile_options",
121     /* ePragTyp:  */ PragTyp_COMPILE_OPTIONS,
122     /* ePragFlag: */ 0,
123     /* iArg:      */ 0 },
124 #endif
125 #if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
126   { /* zName:     */ "count_changes",
127     /* ePragTyp:  */ PragTyp_FLAG,
128     /* ePragFlag: */ 0,
129     /* iArg:      */ SQLITE_CountRows },
130 #endif
131 #if !defined(SQLITE_OMIT_PAGER_PRAGMAS) && SQLITE_OS_WIN
132   { /* zName:     */ "data_store_directory",
133     /* ePragTyp:  */ PragTyp_DATA_STORE_DIRECTORY,
134     /* ePragFlag: */ 0,
135     /* iArg:      */ 0 },
136 #endif
137 #if !defined(SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS)
138   { /* zName:     */ "data_version",
139     /* ePragTyp:  */ PragTyp_HEADER_VALUE,
140     /* ePragFlag: */ PragFlag_ReadOnly,
141     /* iArg:      */ BTREE_DATA_VERSION },
142 #endif
143 #if !defined(SQLITE_OMIT_SCHEMA_PRAGMAS)
144   { /* zName:     */ "database_list",
145     /* ePragTyp:  */ PragTyp_DATABASE_LIST,
146     /* ePragFlag: */ PragFlag_NeedSchema,
147     /* iArg:      */ 0 },
148 #endif
149 #if !defined(SQLITE_OMIT_PAGER_PRAGMAS) && !defined(SQLITE_OMIT_DEPRECATED)
150   { /* zName:     */ "default_cache_size",
151     /* ePragTyp:  */ PragTyp_DEFAULT_CACHE_SIZE,
152     /* ePragFlag: */ PragFlag_NeedSchema,
153     /* iArg:      */ 0 },
154 #endif
155 #if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
156 #if !defined(SQLITE_OMIT_FOREIGN_KEY) && !defined(SQLITE_OMIT_TRIGGER)
157   { /* zName:     */ "defer_foreign_keys",
158     /* ePragTyp:  */ PragTyp_FLAG,
159     /* ePragFlag: */ 0,
160     /* iArg:      */ SQLITE_DeferFKs },
161 #endif
162 #endif
163 #if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
164   { /* zName:     */ "empty_result_callbacks",
165     /* ePragTyp:  */ PragTyp_FLAG,
166     /* ePragFlag: */ 0,
167     /* iArg:      */ SQLITE_NullCallback },
168 #endif
169 #if !defined(SQLITE_OMIT_UTF16)
170   { /* zName:     */ "encoding",
171     /* ePragTyp:  */ PragTyp_ENCODING,
172     /* ePragFlag: */ 0,
173     /* iArg:      */ 0 },
174 #endif
175 #if !defined(SQLITE_OMIT_FOREIGN_KEY) && !defined(SQLITE_OMIT_TRIGGER)
176   { /* zName:     */ "foreign_key_check",
177     /* ePragTyp:  */ PragTyp_FOREIGN_KEY_CHECK,
178     /* ePragFlag: */ PragFlag_NeedSchema,
179     /* iArg:      */ 0 },
180 #endif
181 #if !defined(SQLITE_OMIT_FOREIGN_KEY)
182   { /* zName:     */ "foreign_key_list",
183     /* ePragTyp:  */ PragTyp_FOREIGN_KEY_LIST,
184     /* ePragFlag: */ PragFlag_NeedSchema,
185     /* iArg:      */ 0 },
186 #endif
187 #if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
188 #if !defined(SQLITE_OMIT_FOREIGN_KEY) && !defined(SQLITE_OMIT_TRIGGER)
189   { /* zName:     */ "foreign_keys",
190     /* ePragTyp:  */ PragTyp_FLAG,
191     /* ePragFlag: */ 0,
192     /* iArg:      */ SQLITE_ForeignKeys },
193 #endif
194 #endif
195 #if !defined(SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS)
196   { /* zName:     */ "freelist_count",
197     /* ePragTyp:  */ PragTyp_HEADER_VALUE,
198     /* ePragFlag: */ PragFlag_ReadOnly,
199     /* iArg:      */ BTREE_FREE_PAGE_COUNT },
200 #endif
201 #if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
202   { /* zName:     */ "full_column_names",
203     /* ePragTyp:  */ PragTyp_FLAG,
204     /* ePragFlag: */ 0,
205     /* iArg:      */ SQLITE_FullColNames },
206   { /* zName:     */ "fullfsync",
207     /* ePragTyp:  */ PragTyp_FLAG,
208     /* ePragFlag: */ 0,
209     /* iArg:      */ SQLITE_FullFSync },
210 #endif
211 #if defined(SQLITE_HAS_CODEC)
212   { /* zName:     */ "hexkey",
213     /* ePragTyp:  */ PragTyp_HEXKEY,
214     /* ePragFlag: */ 0,
215     /* iArg:      */ 0 },
216   { /* zName:     */ "hexrekey",
217     /* ePragTyp:  */ PragTyp_HEXKEY,
218     /* ePragFlag: */ 0,
219     /* iArg:      */ 0 },
220 #endif
221 #if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
222 #if !defined(SQLITE_OMIT_CHECK)
223   { /* zName:     */ "ignore_check_constraints",
224     /* ePragTyp:  */ PragTyp_FLAG,
225     /* ePragFlag: */ 0,
226     /* iArg:      */ SQLITE_IgnoreChecks },
227 #endif
228 #endif
229 #if !defined(SQLITE_OMIT_AUTOVACUUM)
230   { /* zName:     */ "incremental_vacuum",
231     /* ePragTyp:  */ PragTyp_INCREMENTAL_VACUUM,
232     /* ePragFlag: */ PragFlag_NeedSchema,
233     /* iArg:      */ 0 },
234 #endif
235 #if !defined(SQLITE_OMIT_SCHEMA_PRAGMAS)
236   { /* zName:     */ "index_info",
237     /* ePragTyp:  */ PragTyp_INDEX_INFO,
238     /* ePragFlag: */ PragFlag_NeedSchema,
239     /* iArg:      */ 0 },
240   { /* zName:     */ "index_list",
241     /* ePragTyp:  */ PragTyp_INDEX_LIST,
242     /* ePragFlag: */ PragFlag_NeedSchema,
243     /* iArg:      */ 0 },
244   { /* zName:     */ "index_xinfo",
245     /* ePragTyp:  */ PragTyp_INDEX_INFO,
246     /* ePragFlag: */ PragFlag_NeedSchema,
247     /* iArg:      */ 1 },
248 #endif
249 #if !defined(SQLITE_OMIT_INTEGRITY_CHECK)
250   { /* zName:     */ "integrity_check",
251     /* ePragTyp:  */ PragTyp_INTEGRITY_CHECK,
252     /* ePragFlag: */ PragFlag_NeedSchema,
253     /* iArg:      */ 0 },
254 #endif
255 #if !defined(SQLITE_OMIT_PAGER_PRAGMAS)
256   { /* zName:     */ "journal_mode",
257     /* ePragTyp:  */ PragTyp_JOURNAL_MODE,
258     /* ePragFlag: */ PragFlag_NeedSchema,
259     /* iArg:      */ 0 },
260   { /* zName:     */ "journal_size_limit",
261     /* ePragTyp:  */ PragTyp_JOURNAL_SIZE_LIMIT,
262     /* ePragFlag: */ 0,
263     /* iArg:      */ 0 },
264 #endif
265 #if defined(SQLITE_HAS_CODEC)
266   { /* zName:     */ "key",
267     /* ePragTyp:  */ PragTyp_KEY,
268     /* ePragFlag: */ 0,
269     /* iArg:      */ 0 },
270 #endif
271 #if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
272   { /* zName:     */ "legacy_file_format",
273     /* ePragTyp:  */ PragTyp_FLAG,
274     /* ePragFlag: */ 0,
275     /* iArg:      */ SQLITE_LegacyFileFmt },
276 #endif
277 #if !defined(SQLITE_OMIT_PAGER_PRAGMAS) && SQLITE_ENABLE_LOCKING_STYLE
278   { /* zName:     */ "lock_proxy_file",
279     /* ePragTyp:  */ PragTyp_LOCK_PROXY_FILE,
280     /* ePragFlag: */ 0,
281     /* iArg:      */ 0 },
282 #endif
283 #if defined(SQLITE_DEBUG) || defined(SQLITE_TEST)
284   { /* zName:     */ "lock_status",
285     /* ePragTyp:  */ PragTyp_LOCK_STATUS,
286     /* ePragFlag: */ 0,
287     /* iArg:      */ 0 },
288 #endif
289 #if !defined(SQLITE_OMIT_PAGER_PRAGMAS)
290   { /* zName:     */ "locking_mode",
291     /* ePragTyp:  */ PragTyp_LOCKING_MODE,
292     /* ePragFlag: */ 0,
293     /* iArg:      */ 0 },
294   { /* zName:     */ "max_page_count",
295     /* ePragTyp:  */ PragTyp_PAGE_COUNT,
296     /* ePragFlag: */ PragFlag_NeedSchema,
297     /* iArg:      */ 0 },
298   { /* zName:     */ "mmap_size",
299     /* ePragTyp:  */ PragTyp_MMAP_SIZE,
300     /* ePragFlag: */ 0,
301     /* iArg:      */ 0 },
302   { /* zName:     */ "page_count",
303     /* ePragTyp:  */ PragTyp_PAGE_COUNT,
304     /* ePragFlag: */ PragFlag_NeedSchema,
305     /* iArg:      */ 0 },
306   { /* zName:     */ "page_size",
307     /* ePragTyp:  */ PragTyp_PAGE_SIZE,
308     /* ePragFlag: */ 0,
309     /* iArg:      */ 0 },
310 #endif
311 #if defined(SQLITE_DEBUG) && !defined(SQLITE_OMIT_PARSER_TRACE)
312   { /* zName:     */ "parser_trace",
313     /* ePragTyp:  */ PragTyp_PARSER_TRACE,
314     /* ePragFlag: */ 0,
315     /* iArg:      */ 0 },
316 #endif
317 #if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
318   { /* zName:     */ "query_only",
319     /* ePragTyp:  */ PragTyp_FLAG,
320     /* ePragFlag: */ 0,
321     /* iArg:      */ SQLITE_QueryOnly },
322 #endif
323 #if !defined(SQLITE_OMIT_INTEGRITY_CHECK)
324   { /* zName:     */ "quick_check",
325     /* ePragTyp:  */ PragTyp_INTEGRITY_CHECK,
326     /* ePragFlag: */ PragFlag_NeedSchema,
327     /* iArg:      */ 0 },
328 #endif
329 #if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
330   { /* zName:     */ "read_uncommitted",
331     /* ePragTyp:  */ PragTyp_FLAG,
332     /* ePragFlag: */ 0,
333     /* iArg:      */ SQLITE_ReadUncommitted },
334   { /* zName:     */ "recursive_triggers",
335     /* ePragTyp:  */ PragTyp_FLAG,
336     /* ePragFlag: */ 0,
337     /* iArg:      */ SQLITE_RecTriggers },
338 #endif
339 #if defined(SQLITE_HAS_CODEC)
340   { /* zName:     */ "rekey",
341     /* ePragTyp:  */ PragTyp_REKEY,
342     /* ePragFlag: */ 0,
343     /* iArg:      */ 0 },
344 #endif
345 #if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
346   { /* zName:     */ "reverse_unordered_selects",
347     /* ePragTyp:  */ PragTyp_FLAG,
348     /* ePragFlag: */ 0,
349     /* iArg:      */ SQLITE_ReverseOrder },
350 #endif
351 #if !defined(SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS)
352   { /* zName:     */ "schema_version",
353     /* ePragTyp:  */ PragTyp_HEADER_VALUE,
354     /* ePragFlag: */ 0,
355     /* iArg:      */ BTREE_SCHEMA_VERSION },
356 #endif
357 #if !defined(SQLITE_OMIT_PAGER_PRAGMAS)
358   { /* zName:     */ "secure_delete",
359     /* ePragTyp:  */ PragTyp_SECURE_DELETE,
360     /* ePragFlag: */ 0,
361     /* iArg:      */ 0 },
362 #endif
363 #if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
364   { /* zName:     */ "short_column_names",
365     /* ePragTyp:  */ PragTyp_FLAG,
366     /* ePragFlag: */ 0,
367     /* iArg:      */ SQLITE_ShortColNames },
368 #endif
369   { /* zName:     */ "shrink_memory",
370     /* ePragTyp:  */ PragTyp_SHRINK_MEMORY,
371     /* ePragFlag: */ 0,
372     /* iArg:      */ 0 },
373   { /* zName:     */ "soft_heap_limit",
374     /* ePragTyp:  */ PragTyp_SOFT_HEAP_LIMIT,
375     /* ePragFlag: */ 0,
376     /* iArg:      */ 0 },
377 #if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
378 #if defined(SQLITE_DEBUG)
379   { /* zName:     */ "sql_trace",
380     /* ePragTyp:  */ PragTyp_FLAG,
381     /* ePragFlag: */ 0,
382     /* iArg:      */ SQLITE_SqlTrace },
383 #endif
384 #endif
385 #if !defined(SQLITE_OMIT_SCHEMA_PRAGMAS)
386   { /* zName:     */ "stats",
387     /* ePragTyp:  */ PragTyp_STATS,
388     /* ePragFlag: */ PragFlag_NeedSchema,
389     /* iArg:      */ 0 },
390 #endif
391 #if !defined(SQLITE_OMIT_PAGER_PRAGMAS)
392   { /* zName:     */ "synchronous",
393     /* ePragTyp:  */ PragTyp_SYNCHRONOUS,
394     /* ePragFlag: */ PragFlag_NeedSchema,
395     /* iArg:      */ 0 },
396 #endif
397 #if !defined(SQLITE_OMIT_SCHEMA_PRAGMAS)
398   { /* zName:     */ "table_info",
399     /* ePragTyp:  */ PragTyp_TABLE_INFO,
400     /* ePragFlag: */ PragFlag_NeedSchema,
401     /* iArg:      */ 0 },
402 #endif
403 #if !defined(SQLITE_OMIT_PAGER_PRAGMAS)
404   { /* zName:     */ "temp_store",
405     /* ePragTyp:  */ PragTyp_TEMP_STORE,
406     /* ePragFlag: */ 0,
407     /* iArg:      */ 0 },
408   { /* zName:     */ "temp_store_directory",
409     /* ePragTyp:  */ PragTyp_TEMP_STORE_DIRECTORY,
410     /* ePragFlag: */ 0,
411     /* iArg:      */ 0 },
412 #endif
413   { /* zName:     */ "threads",
414     /* ePragTyp:  */ PragTyp_THREADS,
415     /* ePragFlag: */ 0,
416     /* iArg:      */ 0 },
417 #if !defined(SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS)
418   { /* zName:     */ "user_version",
419     /* ePragTyp:  */ PragTyp_HEADER_VALUE,
420     /* ePragFlag: */ 0,
421     /* iArg:      */ BTREE_USER_VERSION },
422 #endif
423 #if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
424 #if defined(SQLITE_DEBUG)
425   { /* zName:     */ "vdbe_addoptrace",
426     /* ePragTyp:  */ PragTyp_FLAG,
427     /* ePragFlag: */ 0,
428     /* iArg:      */ SQLITE_VdbeAddopTrace },
429   { /* zName:     */ "vdbe_debug",
430     /* ePragTyp:  */ PragTyp_FLAG,
431     /* ePragFlag: */ 0,
432     /* iArg:      */ SQLITE_SqlTrace|SQLITE_VdbeListing|SQLITE_VdbeTrace },
433   { /* zName:     */ "vdbe_eqp",
434     /* ePragTyp:  */ PragTyp_FLAG,
435     /* ePragFlag: */ 0,
436     /* iArg:      */ SQLITE_VdbeEQP },
437   { /* zName:     */ "vdbe_listing",
438     /* ePragTyp:  */ PragTyp_FLAG,
439     /* ePragFlag: */ 0,
440     /* iArg:      */ SQLITE_VdbeListing },
441   { /* zName:     */ "vdbe_trace",
442     /* ePragTyp:  */ PragTyp_FLAG,
443     /* ePragFlag: */ 0,
444     /* iArg:      */ SQLITE_VdbeTrace },
445 #endif
446 #endif
447 #if !defined(SQLITE_OMIT_WAL)
448   { /* zName:     */ "wal_autocheckpoint",
449     /* ePragTyp:  */ PragTyp_WAL_AUTOCHECKPOINT,
450     /* ePragFlag: */ 0,
451     /* iArg:      */ 0 },
452   { /* zName:     */ "wal_checkpoint",
453     /* ePragTyp:  */ PragTyp_WAL_CHECKPOINT,
454     /* ePragFlag: */ PragFlag_NeedSchema,
455     /* iArg:      */ 0 },
456 #endif
457 #if !defined(SQLITE_OMIT_FLAG_PRAGMAS)
458   { /* zName:     */ "writable_schema",
459     /* ePragTyp:  */ PragTyp_FLAG,
460     /* ePragFlag: */ 0,
461     /* iArg:      */ SQLITE_WriteSchema|SQLITE_RecoveryMode },
462 #endif
463 };
464 /* Number of pragmas: 60 on by default, 73 total. */
465