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