1pub const MAX_LENGTH: u32 = 1_000_000_000;
4
5pub const MIN_LENGTH: u32 = 30;
7
8pub const MAX_ALLOCATION_SIZE: u32 = 2_147_483_391;
10
11pub const MAX_COLUMN: u16 = 2000;
14
15pub const MAX_SQL_LENGTH: u32 = 1_000_000_000;
17
18pub const MAX_EXPR_DEPTH: u32 = 1000;
20
21pub const MAX_PARSER_DEPTH: u32 = 2500;
23
24pub const MAX_COMPOUND_SELECT: u32 = 500;
26
27pub const MAX_VDBE_OP: u32 = 250_000_000;
29
30pub const MAX_FUNCTION_ARG: u16 = 1000;
32
33pub const DEFAULT_CACHE_SIZE: i32 = -2000;
36
37pub const DEFAULT_WAL_AUTOCHECKPOINT: u32 = 1000;
39
40pub const MAX_ATTACHED: u8 = 10;
42
43pub const MAX_VARIABLE_NUMBER: u32 = 32766;
45
46pub const MAX_PAGE_SIZE: u32 = 65536;
48
49pub const DEFAULT_PAGE_SIZE: u32 = 4096;
51
52pub const MAX_DEFAULT_PAGE_SIZE: u32 = 8192;
54
55pub const MAX_PAGE_COUNT: u32 = 0xFFFF_FFFE;
57
58pub const MAX_LIKE_PATTERN_LENGTH: u32 = 50000;
60
61pub const MAX_TRIGGER_DEPTH: u32 = 1000;
63
64pub const BTREE_MAX_DEPTH: u8 = 20;
68
69pub const BTREE_MIN_CELLS: u32 = 2;
71
72pub const DB_HEADER_SIZE: u32 = 100;
74
75pub const BTREE_LEAF_HEADER_SIZE: u8 = 8;
77
78pub const BTREE_INTERIOR_HEADER_SIZE: u8 = 12;
80
81pub const CELL_POINTER_SIZE: u8 = 2;
83
84pub const WAL_MAGIC_BE: u32 = 0x377F_0682;
86
87pub const WAL_MAGIC_LE: u32 = 0x377F_0683;
89
90pub const WAL_FRAME_HEADER_SIZE: u32 = 24;
92
93pub const WAL_HEADER_SIZE: u32 = 32;
95
96#[cfg(test)]
97mod tests {
98 use super::*;
99
100 #[test]
101 fn limit_values_match_sqlite() {
102 assert_eq!(MAX_LENGTH, 1_000_000_000);
103 assert_eq!(MAX_COLUMN, 2000);
104 assert_eq!(MAX_SQL_LENGTH, 1_000_000_000);
105 assert_eq!(MAX_EXPR_DEPTH, 1000);
106 assert_eq!(MAX_PARSER_DEPTH, 2500);
107 assert_eq!(MAX_COMPOUND_SELECT, 500);
108 assert_eq!(MAX_VDBE_OP, 250_000_000);
109 assert_eq!(MAX_FUNCTION_ARG, 1000);
110 assert_eq!(DEFAULT_CACHE_SIZE, -2000);
111 assert_eq!(DEFAULT_WAL_AUTOCHECKPOINT, 1000);
112 assert_eq!(MAX_ATTACHED, 10);
113 assert_eq!(MAX_VARIABLE_NUMBER, 32766);
114 assert_eq!(MAX_PAGE_SIZE, 65536);
115 assert_eq!(DEFAULT_PAGE_SIZE, 4096);
116 assert_eq!(MAX_DEFAULT_PAGE_SIZE, 8192);
117 assert_eq!(MAX_PAGE_COUNT, 0xFFFF_FFFE);
118 assert_eq!(MAX_LIKE_PATTERN_LENGTH, 50000);
119 assert_eq!(MAX_TRIGGER_DEPTH, 1000);
120 }
121
122 #[test]
123 fn default_page_size_is_power_of_two() {
124 assert!(DEFAULT_PAGE_SIZE.is_power_of_two());
125 }
126
127 #[test]
128 fn max_page_size_is_power_of_two() {
129 assert!(MAX_PAGE_SIZE.is_power_of_two());
130 }
131
132 #[test]
133 fn wal_constants() {
134 assert_eq!(WAL_FRAME_HEADER_SIZE, 24);
135 assert_eq!(WAL_HEADER_SIZE, 32);
136 }
137}