1 |
|
2 |
{$IFDEF FPC} |
3 |
{$PACKRECORDS C} |
4 |
{$ENDIF} |
5 |
|
6 |
|
7 |
{ |
8 |
* PROGRAM: C preprocessor |
9 |
* MODULE: blr.h |
10 |
* DESCRIPTION: BLR constants |
11 |
* |
12 |
* The contents of this file are subject to the Interbase Public |
13 |
* License Version 1.0 (the "License"); you may not use this file |
14 |
* except in compliance with the License. You may obtain a copy |
15 |
* of the License at http://www.Inprise.com/IPL.html |
16 |
* |
17 |
* Software distributed under the License is distributed on an |
18 |
* "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express |
19 |
* or implied. See the License for the specific language governing |
20 |
* rights and limitations under the License. |
21 |
* |
22 |
* The Original Code was created by Inprise Corporation |
23 |
* and its predecessors. Portions created by Inprise Corporation are |
24 |
* Copyright (C) Inprise Corporation. |
25 |
* |
26 |
* All Rights Reserved. |
27 |
* Contributor(s): ______________________________________. |
28 |
* |
29 |
* Claudio Valderrama: 2001.6.18: Add blr_current_role. |
30 |
* 2002.09.28 Dmitry Yemanov: Reworked internal_info stuff, enhanced |
31 |
* exception handling in SPs/triggers, |
32 |
* implemented ROWS_AFFECTED system variable |
33 |
* 2002.10.21 Nickolay Samofatov: Added support for explicit pessimistic locks |
34 |
* 2002.10.29 Nickolay Samofatov: Added support for savepoints |
35 |
* 2003.10.05 Dmitry Yemanov: Added support for explicit cursors in PSQL |
36 |
* Adriano dos Santos Fernandes |
37 |
} |
38 |
{$ifndef FIREBIRD_IMPL_BLR_H} |
39 |
{$define FIREBIRD_IMPL_BLR_H} |
40 |
(* error |
41 |
#define BLR_WORD(x) UCHAR(x), UCHAR((x) >> 8) |
42 |
in define line 36 *) |
43 |
{ WARNING: if you add a new BLR representing a data type, and the value |
44 |
* is greater than the numerically greatest value which now |
45 |
* represents a data type, you must change the define for |
46 |
* DTYPE_BLR_MAX in jrd/align.h, and add the necessary entries |
47 |
* to all the arrays in that file. |
48 |
} |
49 |
|
50 |
const |
51 |
blr_text = 14; |
52 |
{ added in 3.2 JPN } |
53 |
blr_text2 = 15; |
54 |
blr_short = 7; |
55 |
blr_long = 8; |
56 |
blr_quad = 9; |
57 |
blr_float = 10; |
58 |
blr_double = 27; |
59 |
blr_d_float = 11; |
60 |
blr_timestamp = 35; |
61 |
blr_varying = 37; |
62 |
{ added in 3.2 JPN } |
63 |
blr_varying2 = 38; |
64 |
blr_blob = 261; |
65 |
blr_cstring = 40; |
66 |
{ added in 3.2 JPN } |
67 |
blr_cstring2 = 41; |
68 |
{ added from gds.h } |
69 |
blr_blob_id = 45; |
70 |
blr_sql_date = 12; |
71 |
blr_sql_time = 13; |
72 |
blr_int64 = 16; |
73 |
blr_blob2 = 17; |
74 |
blr_domain_name = 18; |
75 |
blr_domain_name2 = 19; |
76 |
blr_not_nullable = 20; |
77 |
blr_column_name = 21; |
78 |
blr_column_name2 = 22; |
79 |
blr_bool = 23; |
80 |
blr_dec64 = 24; |
81 |
blr_dec128 = 25; |
82 |
blr_int128 = 26; |
83 |
blr_sql_time_tz = 28; |
84 |
blr_timestamp_tz = 29; |
85 |
blr_ex_time_tz = 30; |
86 |
blr_ex_timestamp_tz = 31; |
87 |
{ first sub parameter for blr_domain_name[2] } |
88 |
blr_domain_type_of = 0; |
89 |
blr_domain_full = 1; |
90 |
{ Historical alias for pre V6 applications } |
91 |
blr_date = blr_timestamp; |
92 |
blr_inner = 0; |
93 |
blr_left = 1; |
94 |
blr_right = 2; |
95 |
blr_full = 3; |
96 |
blr_gds_code = 0; |
97 |
blr_sql_code = 1; |
98 |
blr_exception = 2; |
99 |
blr_trigger_code = 3; |
100 |
blr_default_code = 4; |
101 |
blr_raise = 5; |
102 |
blr_exception_msg = 6; |
103 |
blr_exception_params = 7; |
104 |
blr_sql_state = 8; |
105 |
blr_version4 = 4; |
106 |
blr_version5 = 5; |
107 |
{#define blr_version6 6 } |
108 |
blr_eoc = 76; |
109 |
blr_end = 255; |
110 |
blr_assignment = 1; |
111 |
blr_begin = 2; |
112 |
{ added from gds.h } |
113 |
blr_dcl_variable = 3; |
114 |
blr_message = 4; |
115 |
blr_erase = 5; |
116 |
blr_fetch = 6; |
117 |
blr_for = 7; |
118 |
blr_if = 8; |
119 |
blr_loop = 9; |
120 |
blr_modify = 10; |
121 |
blr_handler = 11; |
122 |
blr_receive = 12; |
123 |
blr_select = 13; |
124 |
blr_send = 14; |
125 |
blr_store = 15; |
126 |
blr_label = 17; |
127 |
blr_leave = 18; |
128 |
blr_store2 = 19; |
129 |
blr_post = 20; |
130 |
blr_literal = 21; |
131 |
blr_dbkey = 22; |
132 |
blr_field = 23; |
133 |
blr_fid = 24; |
134 |
blr_parameter = 25; |
135 |
blr_variable = 26; |
136 |
blr_average = 27; |
137 |
blr_count = 28; |
138 |
blr_maximum = 29; |
139 |
blr_minimum = 30; |
140 |
blr_total = 31; |
141 |
blr_receive_batch = 32; |
142 |
{ unused code: 33 } |
143 |
blr_add = 34; |
144 |
blr_subtract = 35; |
145 |
blr_multiply = 36; |
146 |
blr_divide = 37; |
147 |
blr_negate = 38; |
148 |
blr_concatenate = 39; |
149 |
blr_substring = 40; |
150 |
blr_parameter2 = 41; |
151 |
blr_from = 42; |
152 |
blr_via = 43; |
153 |
{ added from gds.h } |
154 |
blr_user_name = 44; |
155 |
blr_null = 45; |
156 |
blr_equiv = 46; |
157 |
blr_eql = 47; |
158 |
blr_neq = 48; |
159 |
blr_gtr = 49; |
160 |
blr_geq = 50; |
161 |
blr_lss = 51; |
162 |
blr_leq = 52; |
163 |
blr_containing = 53; |
164 |
blr_matching = 54; |
165 |
blr_starting = 55; |
166 |
blr_between = 56; |
167 |
blr_or = 57; |
168 |
blr_and = 58; |
169 |
blr_not = 59; |
170 |
blr_any = 60; |
171 |
blr_missing = 61; |
172 |
blr_unique = 62; |
173 |
blr_like = 63; |
174 |
{ unused codes: 64..66 } |
175 |
blr_rse = 67; |
176 |
blr_first = 68; |
177 |
blr_project = 69; |
178 |
blr_sort = 70; |
179 |
blr_boolean = 71; |
180 |
blr_ascending = 72; |
181 |
blr_descending = 73; |
182 |
blr_relation = 74; |
183 |
blr_rid = 75; |
184 |
blr_union = 76; |
185 |
blr_map = 77; |
186 |
blr_group_by = 78; |
187 |
blr_aggregate = 79; |
188 |
blr_join_type = 80; |
189 |
{ unused codes: 81..82 } |
190 |
blr_agg_count = 83; |
191 |
blr_agg_max = 84; |
192 |
blr_agg_min = 85; |
193 |
blr_agg_total = 86; |
194 |
blr_agg_average = 87; |
195 |
{ same as Rdb definition } |
196 |
blr_parameter3 = 88; |
197 |
{ unsupported |
198 |
#define blr_run_max 89 |
199 |
#define blr_run_min 90 |
200 |
#define blr_run_total 91 |
201 |
#define blr_run_average 92 |
202 |
} |
203 |
blr_agg_count2 = 93; |
204 |
blr_agg_count_distinct = 94; |
205 |
blr_agg_total_distinct = 95; |
206 |
blr_agg_average_distinct = 96; |
207 |
{ unused codes: 97..99 } |
208 |
blr_function = 100; |
209 |
blr_gen_id = 101; |
210 |
{/#define blr_prot_mask 102 } |
211 |
blr_upcase = 103; |
212 |
{/#define blr_lock_state 104 } |
213 |
blr_value_if = 105; |
214 |
blr_matching2 = 106; |
215 |
blr_index = 107; |
216 |
blr_ansi_like = 108; |
217 |
blr_scrollable = 109; |
218 |
blr_lateral_rse = 110; |
219 |
{ unused codes: 111..117 } |
220 |
{ changed from 88 to avoid conflict with blr_parameter3 } |
221 |
blr_run_count = 118; |
222 |
blr_rs_stream = 119; |
223 |
blr_exec_proc = 120; |
224 |
{ unused codes: 121..123 } |
225 |
blr_procedure = 124; |
226 |
blr_pid = 125; |
227 |
blr_exec_pid = 126; |
228 |
blr_singular = 127; |
229 |
blr_abort = 128; |
230 |
blr_block = 129; |
231 |
blr_error_handler = 130; |
232 |
blr_cast = 131; |
233 |
blr_pid2 = 132; |
234 |
blr_procedure2 = 133; |
235 |
blr_start_savepoint = 134; |
236 |
blr_end_savepoint = 135; |
237 |
{ unused codes: 136..138 } |
238 |
{ access plan items } |
239 |
blr_plan = 139; |
240 |
blr_merge = 140; |
241 |
blr_join = 141; |
242 |
blr_sequential = 142; |
243 |
blr_navigational = 143; |
244 |
blr_indices = 144; |
245 |
blr_retrieve = 145; |
246 |
blr_relation2 = 146; |
247 |
blr_rid2 = 147; |
248 |
{ unused codes: 148..149 } |
249 |
blr_set_generator = 150; |
250 |
{ required for NULL handling } |
251 |
blr_ansi_any = 151; |
252 |
{ required for NULL handling } |
253 |
blr_exists = 152; |
254 |
{ unused codes: 153 } |
255 |
{ get tid of record } |
256 |
blr_record_version = 154; |
257 |
{ fake server stall } |
258 |
blr_stall = 155; |
259 |
{ unused codes: 156..157 } |
260 |
{ required for NULL handling } |
261 |
blr_ansi_all = 158; |
262 |
blr_extract = 159; |
263 |
{ sub parameters for blr_extract } |
264 |
blr_extract_year = 0; |
265 |
blr_extract_month = 1; |
266 |
blr_extract_day = 2; |
267 |
blr_extract_hour = 3; |
268 |
blr_extract_minute = 4; |
269 |
blr_extract_second = 5; |
270 |
blr_extract_weekday = 6; |
271 |
blr_extract_yearday = 7; |
272 |
blr_extract_millisecond = 8; |
273 |
blr_extract_week = 9; |
274 |
blr_extract_timezone_hour = 10; |
275 |
blr_extract_timezone_minute = 11; |
276 |
blr_current_date = 160; |
277 |
blr_current_timestamp = 161; |
278 |
blr_current_time = 162; |
279 |
{ These codes reuse BLR code space } |
280 |
blr_post_arg = 163; |
281 |
blr_exec_into = 164; |
282 |
blr_user_savepoint = 165; |
283 |
blr_dcl_cursor = 166; |
284 |
blr_cursor_stmt = 167; |
285 |
blr_current_timestamp2 = 168; |
286 |
blr_current_time2 = 169; |
287 |
blr_agg_list = 170; |
288 |
blr_agg_list_distinct = 171; |
289 |
blr_modify2 = 172; |
290 |
{ unused codes: 173 } |
291 |
{ FB 1.0 specific BLR } |
292 |
blr_current_role = 174; |
293 |
blr_skip = 175; |
294 |
{ FB 1.5 specific BLR } |
295 |
blr_exec_sql = 176; |
296 |
blr_internal_info = 177; |
297 |
blr_nullsfirst = 178; |
298 |
blr_writelock = 179; |
299 |
blr_nullslast = 180; |
300 |
{ FB 2.0 specific BLR } |
301 |
blr_lowcase = 181; |
302 |
blr_strlen = 182; |
303 |
{ sub parameter for blr_strlen } |
304 |
blr_strlen_bit = 0; |
305 |
blr_strlen_char = 1; |
306 |
blr_strlen_octet = 2; |
307 |
blr_trim = 183; |
308 |
{ first sub parameter for blr_trim } |
309 |
blr_trim_both = 0; |
310 |
blr_trim_leading = 1; |
311 |
blr_trim_trailing = 2; |
312 |
{ second sub parameter for blr_trim } |
313 |
blr_trim_spaces = 0; |
314 |
blr_trim_characters = 1; |
315 |
{ These codes are actions for user-defined savepoints } |
316 |
blr_savepoint_set = 0; |
317 |
blr_savepoint_release = 1; |
318 |
blr_savepoint_undo = 2; |
319 |
blr_savepoint_release_single = 3; |
320 |
{ These codes are actions for cursors } |
321 |
blr_cursor_open = 0; |
322 |
blr_cursor_close = 1; |
323 |
blr_cursor_fetch = 2; |
324 |
blr_cursor_fetch_scroll = 3; |
325 |
{ scroll options } |
326 |
blr_scroll_forward = 0; |
327 |
blr_scroll_backward = 1; |
328 |
blr_scroll_bof = 2; |
329 |
blr_scroll_eof = 3; |
330 |
blr_scroll_absolute = 4; |
331 |
blr_scroll_relative = 5; |
332 |
{ FB 2.1 specific BLR } |
333 |
blr_init_variable = 184; |
334 |
blr_recurse = 185; |
335 |
blr_sys_function = 186; |
336 |
{ FB 2.5 specific BLR } |
337 |
blr_auto_trans = 187; |
338 |
blr_similar = 188; |
339 |
blr_exec_stmt = 189; |
340 |
{ subcodes of blr_exec_stmt } |
341 |
blr_exec_stmt_inputs = 1; { input parameters count } |
342 |
blr_exec_stmt_outputs = 2; { output parameters count } |
343 |
blr_exec_stmt_sql = 3; |
344 |
blr_exec_stmt_proc_block = 4; |
345 |
blr_exec_stmt_data_src = 5; |
346 |
blr_exec_stmt_user = 6; |
347 |
blr_exec_stmt_pwd = 7; |
348 |
blr_exec_stmt_tran = 8; { not implemented yet } |
349 |
blr_exec_stmt_tran_clone = 9; { make transaction parameters equal to current transaction } |
350 |
blr_exec_stmt_privs = 10; |
351 |
blr_exec_stmt_in_params = 11; { not named input parameters } |
352 |
blr_exec_stmt_in_params2 = 12; { named input parameters } |
353 |
blr_exec_stmt_out_params = 13; { output parameters } |
354 |
blr_exec_stmt_role = 14; |
355 |
blr_exec_stmt_in_excess = 15; { excess input params numbers } |
356 |
blr_stmt_expr = 190; |
357 |
blr_derived_expr = 191; |
358 |
{ FB 3.0 specific BLR } |
359 |
blr_procedure3 = 192; |
360 |
blr_exec_proc2 = 193; |
361 |
blr_function2 = 194; |
362 |
blr_window = 195; |
363 |
blr_partition_by = 196; |
364 |
blr_continue_loop = 197; |
365 |
blr_procedure4 = 198; |
366 |
blr_agg_function = 199; |
367 |
blr_substring_similar = 200; |
368 |
blr_bool_as_value = 201; |
369 |
blr_coalesce = 202; |
370 |
blr_decode = 203; |
371 |
blr_exec_subproc = 204; |
372 |
blr_subproc_decl = 205; |
373 |
blr_subproc = 206; |
374 |
blr_subfunc_decl = 207; |
375 |
blr_subfunc = 208; |
376 |
blr_record_version2 = 209; |
377 |
blr_gen_id2 = 210; { NEXT VALUE FOR generator } |
378 |
{ FB 4.0 specific BLR } |
379 |
blr_window_win = 211; |
380 |
{ subcodes of blr_window_win } |
381 |
blr_window_win_partition = 1; |
382 |
blr_window_win_order = 2; |
383 |
blr_window_win_map = 3; |
384 |
blr_window_win_extent_unit = 4; |
385 |
blr_window_win_extent_frame_bound = 5; |
386 |
blr_window_win_extent_frame_value = 6; |
387 |
blr_window_win_exclusion = 7; |
388 |
blr_default = 212; |
389 |
blr_store3 = 213; |
390 |
{ subcodes of blr_store3 } |
391 |
blr_store_override_user = 1; |
392 |
blr_store_override_system = 2; |
393 |
blr_local_timestamp = 214; |
394 |
blr_local_time = 215; |
395 |
blr_at = 216; |
396 |
{ subcodes of blr_at } |
397 |
blr_at_local = 0; |
398 |
blr_at_zone = 1; |
399 |
blr_marks = 217; { mark some blr code with specific flags } |
400 |
{$endif} |
401 |
{ FIREBIRD_IMPL_BLR_H } |
402 |
|