1 /*
2  *	MODULE:		ibase.h
3  *	DESCRIPTION:	OSRI entrypoints and defines
4  *
5  * The contents of this file are subject to the Interbase Public
6  * License Version 1.0 (the "License"); you may not use this file
7  * except in compliance with the License. You may obtain a copy
8  * of the License at http://www.Inprise.com/IPL.html
9  *
10  * Software distributed under the License is distributed on an
11  * "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express
12  * or implied. See the License for the specific language governing
13  * rights and limitations under the License.
14  *
15  * The Original Code was created by Inprise Corporation
16  * and its predecessors. Portions created by Inprise Corporation are
17  * Copyright (C) Inprise Corporation.
18  *
19  * All Rights Reserved.
20  * Contributor(s): ______________________________________.
21  *
22  * 2001.07.28: John Bellardo:  Added blr_skip
23  * 2001.09.18: Ann Harrison:   New info codes
24  * 17-Oct-2001 Mike Nordell: CPU affinity
25  * 2001-04-16 Paul Beach: ISC_TIME_SECONDS_PRECISION_SCALE modified for HP10
26  * Compiler Compatibility
27  * 2002.02.15 Sean Leyne - Code Cleanup, removed obsolete ports:
28  *                          - EPSON, XENIX, MAC (MAC_AUX), Cray and OS/2
29  * 2002.10.29 Nickolay Samofatov: Added support for savepoints
30  *
31  * 2002.10.29 Sean Leyne - Removed support for obsolete IPX/SPX Protocol
32  *
33  * 2006.09.06 Steve Boyd - Added various prototypes required by Cobol ESQL
34  *                         isc_embed_dsql_length
35  *                         isc_event_block_a
36  *                         isc_sqlcode_s
37  *                         isc_embed_dsql_fetch_a
38  *                         isc_event_block_s
39  *                         isc_baddress
40  *                         isc_baddress_s
41  *
42  */
43 
44 #ifndef JRD_IBASE_H
45 #define JRD_IBASE_H
46 
47 #define FB_API_VER 20
48 #define isc_version4
49 
50 #define  ISC_TRUE	1
51 #define  ISC_FALSE	0
52 #if !(defined __cplusplus)
53 #define  ISC__TRUE	ISC_TRUE
54 #define  ISC__FALSE	ISC_FALSE
55 #endif
56 
57 #define ISC_FAR
58 
59 #if defined _MSC_VER && _MSC_VER >= 1300
60 #define FB_API_DEPRECATED __declspec(deprecated)
61 #elif defined __GNUC__ && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2))
62 #define FB_API_DEPRECATED __attribute__((__deprecated__))
63 #else
64 #define FB_API_DEPRECATED
65 #endif
66 
67 
68 #ifndef INCLUDE_TYPES_PUB_H
69 #define INCLUDE_TYPES_PUB_H
70 
71 #include <stddef.h>
72 
73 #if defined(__GNUC__)
74 #include <inttypes.h>
75 #else
76 
77 #if !defined(_INTPTR_T_DEFINED)
78 #if defined(_WIN64)
79 typedef __int64 intptr_t;
80 typedef unsigned __int64 uintptr_t;
81 #else
82 typedef long intptr_t;
83 typedef unsigned long uintptr_t;
84 #endif
85 #endif
86 
87 #endif
88 
89 #if defined(_LP64) || defined(__LP64__) || defined(__arch64__) || defined(_WIN64)
90 typedef unsigned int    FB_API_HANDLE;
91 #else
92 typedef void*           FB_API_HANDLE;
93 #endif
94 
95 typedef intptr_t ISC_STATUS;
96 
97 #define ISC_STATUS_LENGTH       20
98 typedef ISC_STATUS ISC_STATUS_ARRAY[ISC_STATUS_LENGTH];
99 
100 #if defined(WIN32) || defined(_WIN32) || defined(__WIN32__)
101         #define  ISC_EXPORT     __stdcall
102         #define  ISC_EXPORT_VARARG      __cdecl
103 #else
104         #define  ISC_EXPORT
105         #define  ISC_EXPORT_VARARG
106 #endif
107 
108 #if defined(_LP64) || defined(__LP64__) || defined(__arch64__)
109 typedef int             ISC_LONG;
110 typedef unsigned int    ISC_ULONG;
111 #else
112 typedef signed long     ISC_LONG;
113 typedef unsigned long   ISC_ULONG;
114 #endif
115 
116 typedef signed short    ISC_SHORT;
117 typedef unsigned short  ISC_USHORT;
118 
119 typedef unsigned char   ISC_UCHAR;
120 typedef char            ISC_SCHAR;
121 
122 #if (defined(WIN32) || defined(_WIN32) || defined(__WIN32__)) && !defined(__GNUC__)
123 typedef __int64                         ISC_INT64;
124 typedef unsigned __int64        ISC_UINT64;
125 #else
126 typedef long long int                   ISC_INT64;
127 typedef unsigned long long int  ISC_UINT64;
128 #endif
129 
130 #ifndef ISC_TIMESTAMP_DEFINED
131 typedef int                     ISC_DATE;
132 typedef unsigned int    ISC_TIME;
133 typedef struct
134 {
135         ISC_DATE timestamp_date;
136         ISC_TIME timestamp_time;
137 } ISC_TIMESTAMP;
138 #define ISC_TIMESTAMP_DEFINED
139 #endif
140 
141 struct GDS_QUAD_t {
142         ISC_LONG gds_quad_high;
143         ISC_ULONG gds_quad_low;
144 };
145 
146 typedef struct GDS_QUAD_t GDS_QUAD;
147 typedef struct GDS_QUAD_t ISC_QUAD;
148 
149 #define isc_quad_high   gds_quad_high
150 #define isc_quad_low    gds_quad_low
151 
152 #endif
153 
154 /********************************/
155 /* Firebird Handle Definitions */
156 /********************************/
157 
158 typedef FB_API_HANDLE isc_att_handle;
159 typedef FB_API_HANDLE isc_blob_handle;
160 typedef FB_API_HANDLE isc_db_handle;
161 typedef FB_API_HANDLE isc_req_handle;
162 typedef FB_API_HANDLE isc_stmt_handle;
163 typedef FB_API_HANDLE isc_svc_handle;
164 typedef FB_API_HANDLE isc_tr_handle;
165 typedef void (* isc_callback) ();
166 typedef ISC_LONG isc_resv_handle;
167 
168 typedef void (*ISC_PRINT_CALLBACK) (void*, ISC_SHORT, const char*);
169 typedef void (*ISC_VERSION_CALLBACK)(void*, const char*);
170 typedef void (*ISC_EVENT_CALLBACK)(void*, ISC_USHORT, const ISC_UCHAR*);
171 
172 /*******************************************************************/
173 /* Blob id structure                                               */
174 /*******************************************************************/
175 
176 #if !(defined __cplusplus)
177 typedef GDS_QUAD GDS__QUAD;
178 #endif /* !(defined __cplusplus) */
179 
180 typedef struct
181 {
182 	short array_bound_lower;
183 	short array_bound_upper;
184 } ISC_ARRAY_BOUND;
185 
186 typedef struct
187 {
188 	ISC_UCHAR	array_desc_dtype;
189 	ISC_SCHAR			array_desc_scale;
190 	unsigned short	array_desc_length;
191 	ISC_SCHAR			array_desc_field_name[32];
192 	ISC_SCHAR			array_desc_relation_name[32];
193 	short			array_desc_dimensions;
194 	short			array_desc_flags;
195 	ISC_ARRAY_BOUND	array_desc_bounds[16];
196 } ISC_ARRAY_DESC;
197 
198 typedef struct
199 {
200 	short			blob_desc_subtype;
201 	short			blob_desc_charset;
202 	short			blob_desc_segment_size;
203 	ISC_UCHAR	blob_desc_field_name[32];
204 	ISC_UCHAR	blob_desc_relation_name[32];
205 } ISC_BLOB_DESC;
206 
207 /***************************/
208 /* Blob control structure  */
209 /***************************/
210 
211 typedef struct isc_blob_ctl
212 {
213 	ISC_STATUS	(* ctl_source)();	/* Source filter */
214 	struct isc_blob_ctl*	ctl_source_handle;	/* Argument to pass to source filter */
215 	short					ctl_to_sub_type;		/* Target type */
216 	short					ctl_from_sub_type;		/* Source type */
217 	unsigned short			ctl_buffer_length;		/* Length of buffer */
218 	unsigned short			ctl_segment_length;		/* Length of current segment */
219 	unsigned short			ctl_bpb_length;			/* Length of blob parameter  block */
220 	/* Internally, this is const UCHAR*, but this public struct probably can't change. */
221 	ISC_SCHAR*					ctl_bpb;				/* Address of blob parameter block */
222 	ISC_UCHAR*			ctl_buffer;				/* Address of segment buffer */
223 	ISC_LONG				ctl_max_segment;		/* Length of longest segment */
224 	ISC_LONG				ctl_number_segments;	/* Total number of segments */
225 	ISC_LONG				ctl_total_length;		/* Total length of blob */
226 	ISC_STATUS*				ctl_status;				/* Address of status vector */
227 	long					ctl_data[8];			/* Application specific data */
228 } * ISC_BLOB_CTL;
229 
230 /***************************/
231 /* Blob stream definitions */
232 /***************************/
233 
234 typedef struct bstream
235 {
236 	isc_blob_handle	bstr_blob;		/* Blob handle */
237 	ISC_SCHAR *			bstr_buffer;	/* Address of buffer */
238 	ISC_SCHAR *			bstr_ptr;		/* Next character */
239 	short			bstr_length;	/* Length of buffer */
240 	short			bstr_cnt;		/* Characters in buffer */
241 	char			bstr_mode;		/* (mode) ? OUTPUT : INPUT */
242 } BSTREAM;
243 
244 /* Three ugly macros, one even using octal radix... sigh... */
245 #define getb(p)	(--(p)->bstr_cnt >= 0 ? *(p)->bstr_ptr++ & 0377: BLOB_get (p))
246 #define putb(x,p) (((x) == '\n' || (!(--(p)->bstr_cnt))) ? BLOB_put ((x),p) : ((int) (*(p)->bstr_ptr++ = (unsigned) (x))))
247 #define putbx(x,p) ((!(--(p)->bstr_cnt)) ? BLOB_put ((x),p) : ((int) (*(p)->bstr_ptr++ = (unsigned) (x))))
248 
249 /********************************************************************/
250 /* CVC: Public blob interface definition held in val.h.             */
251 /* For some unknown reason, it was only documented in langRef       */
252 /* and being the structure passed by the engine to UDFs it never    */
253 /* made its way into this public definitions file.                  */
254 /* Being its original name "blob", I renamed it blobcallback here.  */
255 /* I did the full definition with the proper parameters instead of  */
256 /* the weak C declaration with any number and type of parameters.   */
257 /* Since the first parameter -BLB- is unknown outside the engine,   */
258 /* it's more accurate to use void* than int* as the blob pointer    */
259 /********************************************************************/
260 
261 #if !defined(JRD_VAL_H) && !defined(REQUESTER)
262 /* Blob passing structure */
263 
264 /* This enum applies to parameter "mode" in blob_lseek */
265 enum blob_lseek_mode {blb_seek_relative = 1, blb_seek_from_tail = 2};
266 /* This enum applies to the value returned by blob_get_segment */
267 enum blob_get_result {blb_got_fragment = -1, blb_got_eof = 0, blb_got_full_segment = 1};
268 
269 typedef struct blobcallback {
270     short (*blob_get_segment)
271 		(void* hnd, ISC_UCHAR* buffer, ISC_USHORT buf_size, ISC_USHORT* result_len);
272     void*		blob_handle;
273     ISC_LONG	blob_number_segments;
274     ISC_LONG	blob_max_segment;
275     ISC_LONG	blob_total_length;
276     void (*blob_put_segment)
277 		(void* hnd, const ISC_UCHAR* buffer, ISC_USHORT buf_size);
278     ISC_LONG (*blob_lseek)
279 		(void* hnd, ISC_USHORT mode, ISC_LONG offset);
280 }  *BLOBCALLBACK;
281 #endif /* !defined(JRD_VAL_H) && !defined(REQUESTER) */
282 
283 
284 /********************************************************************/
285 /* CVC: Public descriptor interface held in dsc2.h.                  */
286 /* We need it documented to be able to recognize NULL in UDFs.      */
287 /* Being its original name "dsc", I renamed it paramdsc here.       */
288 /* Notice that I adjust to the original definition: contrary to     */
289 /* other cases, the typedef is the same struct not the pointer.     */
290 /* I included the enumeration of dsc_dtype possible values.         */
291 /* Ultimately, dsc2.h should be part of the public interface.        */
292 /********************************************************************/
293 
294 #if !defined(JRD_DSC_H)
295 /* This is the famous internal descriptor that UDFs can use, too. */
296 typedef struct paramdsc {
297     ISC_UCHAR	dsc_dtype;
298     signed char		dsc_scale;
299     ISC_USHORT		dsc_length;
300     short		dsc_sub_type;
301     ISC_USHORT		dsc_flags;
302     ISC_UCHAR	*dsc_address;
303 } PARAMDSC;
304 
305 #if !defined(JRD_VAL_H)
306 /* This is a helper struct to work with varchars. */
307 typedef struct paramvary {
308     ISC_USHORT		vary_length;
309     ISC_UCHAR		vary_string[1];
310 } PARAMVARY;
311 #endif /* !defined(JRD_VAL_H) */
312 
313 
314 #ifndef JRD_DSC_PUB_H
315 #define JRD_DSC_PUB_H
316 
317 #define DSC_null                1
318 #define DSC_no_subtype          2
319 #define DSC_nullable            4
320 
321 #define dtype_unknown   0
322 #define dtype_text      1
323 #define dtype_cstring   2
324 #define dtype_varying   3
325 
326 #define dtype_packed    6
327 #define dtype_byte      7
328 #define dtype_short     8
329 #define dtype_long      9
330 #define dtype_quad      10
331 #define dtype_real      11
332 #define dtype_double    12
333 #define dtype_d_float   13
334 #define dtype_sql_date  14
335 #define dtype_sql_time  15
336 #define dtype_timestamp 16
337 #define dtype_blob      17
338 #define dtype_array     18
339 #define dtype_int64     19
340 #define DTYPE_TYPE_MAX  20
341 
342 #define ISC_TIME_SECONDS_PRECISION              10000
343 #define ISC_TIME_SECONDS_PRECISION_SCALE        (-4)
344 
345 #endif
346 
347 
348 #endif /* !defined(JRD_DSC_H) */
349 
350 /***************************/
351 /* Dynamic SQL definitions */
352 /***************************/
353 
354 
355 #ifndef DSQL_SQLDA_PUB_H
356 #define DSQL_SQLDA_PUB_H
357 
358 #define DSQL_close      1
359 #define DSQL_drop       2
360 
361 typedef struct
362 {
363         ISC_SHORT       sqltype;
364         ISC_SHORT       sqlscale;
365         ISC_SHORT       sqlsubtype;
366         ISC_SHORT       sqllen;
367         ISC_SCHAR*      sqldata;
368         ISC_SHORT*      sqlind;
369         ISC_SHORT       sqlname_length;
370         ISC_SCHAR       sqlname[32];
371         ISC_SHORT       relname_length;
372         ISC_SCHAR       relname[32];
373         ISC_SHORT       ownname_length;
374         ISC_SCHAR       ownname[32];
375         ISC_SHORT       aliasname_length;
376         ISC_SCHAR       aliasname[32];
377 } XSQLVAR;
378 
379 #define SQLDA_VERSION1          1
380 
381 typedef struct
382 {
383         ISC_SHORT       version;
384         ISC_SCHAR       sqldaid[8];
385         ISC_LONG        sqldabc;
386         ISC_SHORT       sqln;
387         ISC_SHORT       sqld;
388         XSQLVAR sqlvar[1];
389 } XSQLDA;
390 
391 #define XSQLDA_LENGTH(n)        (sizeof (XSQLDA) + (n - 1) * sizeof (XSQLVAR))
392 
393 #define SQL_TEXT                           452
394 #define SQL_VARYING                        448
395 #define SQL_SHORT                          500
396 #define SQL_LONG                           496
397 #define SQL_FLOAT                          482
398 #define SQL_DOUBLE                         480
399 #define SQL_D_FLOAT                        530
400 #define SQL_TIMESTAMP                      510
401 #define SQL_BLOB                           520
402 #define SQL_ARRAY                          540
403 #define SQL_QUAD                           550
404 #define SQL_TYPE_TIME                      560
405 #define SQL_TYPE_DATE                      570
406 #define SQL_INT64                          580
407 
408 #define SQL_DATE                           SQL_TIMESTAMP
409 
410 #define SQL_DIALECT_V5                          1
411 #define SQL_DIALECT_V6_TRANSITION       2
412 #define SQL_DIALECT_V6                          3
413 #define SQL_DIALECT_CURRENT             SQL_DIALECT_V6
414 
415 #endif
416 
417 
418 /***************************/
419 /* OSRI database functions */
420 /***************************/
421 
422 #ifdef __cplusplus
423 extern "C" {
424 #endif
425 
426 ISC_STATUS ISC_EXPORT isc_attach_database(ISC_STATUS*,
427 										  short,
428 										  const ISC_SCHAR*,
429 										  isc_db_handle*,
430 										  short,
431 										  const ISC_SCHAR*);
432 
433 ISC_STATUS ISC_EXPORT isc_array_gen_sdl(ISC_STATUS*,
434 										const ISC_ARRAY_DESC*,
435 										ISC_SHORT*,
436 										ISC_UCHAR*,
437 										ISC_SHORT*);
438 
439 ISC_STATUS ISC_EXPORT isc_array_get_slice(ISC_STATUS*,
440 										  isc_db_handle*,
441 										  isc_tr_handle*,
442 										  ISC_QUAD*,
443 										  const ISC_ARRAY_DESC*,
444 										  void*,
445 										  ISC_LONG*);
446 
447 ISC_STATUS ISC_EXPORT isc_array_lookup_bounds(ISC_STATUS*,
448 											  isc_db_handle*,
449 											  isc_tr_handle*,
450 											  const ISC_SCHAR*,
451 											  const ISC_SCHAR*,
452 											  ISC_ARRAY_DESC*);
453 
454 ISC_STATUS ISC_EXPORT isc_array_lookup_desc(ISC_STATUS*,
455 											isc_db_handle*,
456 											isc_tr_handle*,
457 											const ISC_SCHAR*,
458 											const ISC_SCHAR*,
459 											ISC_ARRAY_DESC*);
460 
461 ISC_STATUS ISC_EXPORT isc_array_set_desc(ISC_STATUS*,
462 										 const ISC_SCHAR*,
463 										 const ISC_SCHAR*,
464 										 const short*,
465 										 const short*,
466 										 const short*,
467 										 ISC_ARRAY_DESC*);
468 
469 ISC_STATUS ISC_EXPORT isc_array_put_slice(ISC_STATUS*,
470 										  isc_db_handle*,
471 										  isc_tr_handle*,
472 										  ISC_QUAD*,
473 										  const ISC_ARRAY_DESC*,
474 										  void*,
475 										  ISC_LONG *);
476 
477 void ISC_EXPORT isc_blob_default_desc(ISC_BLOB_DESC*,
478 									  const ISC_UCHAR*,
479 									  const ISC_UCHAR*);
480 
481 ISC_STATUS ISC_EXPORT isc_blob_gen_bpb(ISC_STATUS*,
482 									   const ISC_BLOB_DESC*,
483 									   const ISC_BLOB_DESC*,
484 									   unsigned short,
485 									   ISC_UCHAR*,
486 									   unsigned short*);
487 
488 ISC_STATUS ISC_EXPORT isc_blob_info(ISC_STATUS*,
489 									isc_blob_handle*,
490 									short,
491 									const ISC_SCHAR*,
492 									short,
493 									ISC_SCHAR*);
494 
495 ISC_STATUS ISC_EXPORT isc_blob_lookup_desc(ISC_STATUS*,
496 										   isc_db_handle*,
497 										   isc_tr_handle*,
498 										   const ISC_UCHAR*,
499 										   const ISC_UCHAR*,
500 										   ISC_BLOB_DESC*,
501 										   ISC_UCHAR*);
502 
503 ISC_STATUS ISC_EXPORT isc_blob_set_desc(ISC_STATUS*,
504 										const ISC_UCHAR*,
505 										const ISC_UCHAR*,
506 										short,
507 										short,
508 										short,
509 										ISC_BLOB_DESC*);
510 
511 ISC_STATUS ISC_EXPORT isc_cancel_blob(ISC_STATUS *,
512 									  isc_blob_handle *);
513 
514 ISC_STATUS ISC_EXPORT isc_cancel_events(ISC_STATUS *,
515 										isc_db_handle *,
516 										ISC_LONG *);
517 
518 ISC_STATUS ISC_EXPORT isc_close_blob(ISC_STATUS *,
519 									 isc_blob_handle *);
520 
521 ISC_STATUS ISC_EXPORT isc_commit_retaining(ISC_STATUS *,
522 										   isc_tr_handle *);
523 
524 ISC_STATUS ISC_EXPORT isc_commit_transaction(ISC_STATUS *,
525 											 isc_tr_handle *);
526 
527 ISC_STATUS ISC_EXPORT isc_create_blob(ISC_STATUS*,
528 									  isc_db_handle*,
529 									  isc_tr_handle*,
530 									  isc_blob_handle*,
531 									  ISC_QUAD*);
532 
533 ISC_STATUS ISC_EXPORT isc_create_blob2(ISC_STATUS*,
534 									   isc_db_handle*,
535 									   isc_tr_handle*,
536 									   isc_blob_handle*,
537 									   ISC_QUAD*,
538 									   short,
539 									   const ISC_SCHAR*);
540 
541 ISC_STATUS ISC_EXPORT isc_create_database(ISC_STATUS*,
542 										  short,
543 										  const ISC_SCHAR*,
544 										  isc_db_handle*,
545 										  short,
546 										  const ISC_SCHAR*,
547 										  short);
548 
549 ISC_STATUS ISC_EXPORT isc_database_info(ISC_STATUS*,
550 										isc_db_handle*,
551 										short,
552 										const ISC_SCHAR*,
553 										short,
554 										ISC_SCHAR*);
555 
556 void ISC_EXPORT isc_decode_date(const ISC_QUAD*,
557 								void*);
558 
559 void ISC_EXPORT isc_decode_sql_date(const ISC_DATE*,
560 									void*);
561 
562 void ISC_EXPORT isc_decode_sql_time(const ISC_TIME*,
563 									void*);
564 
565 void ISC_EXPORT isc_decode_timestamp(const ISC_TIMESTAMP*,
566 									 void*);
567 
568 ISC_STATUS ISC_EXPORT isc_detach_database(ISC_STATUS *,
569 										  isc_db_handle *);
570 
571 ISC_STATUS ISC_EXPORT isc_drop_database(ISC_STATUS *,
572 										isc_db_handle *);
573 
574 ISC_STATUS ISC_EXPORT isc_dsql_allocate_statement(ISC_STATUS *,
575 												  isc_db_handle *,
576 												  isc_stmt_handle *);
577 
578 ISC_STATUS ISC_EXPORT isc_dsql_alloc_statement2(ISC_STATUS *,
579 												isc_db_handle *,
580 												isc_stmt_handle *);
581 
582 ISC_STATUS ISC_EXPORT isc_dsql_describe(ISC_STATUS *,
583 										isc_stmt_handle *,
584 										unsigned short,
585 										XSQLDA *);
586 
587 ISC_STATUS ISC_EXPORT isc_dsql_describe_bind(ISC_STATUS *,
588 											 isc_stmt_handle *,
589 											 unsigned short,
590 											 XSQLDA *);
591 
592 ISC_STATUS ISC_EXPORT isc_dsql_exec_immed2(ISC_STATUS*,
593 										   isc_db_handle*,
594 										   isc_tr_handle*,
595 										   unsigned short,
596 										   const ISC_SCHAR*,
597 										   unsigned short,
598 										   XSQLDA*,
599 										   XSQLDA*);
600 
601 ISC_STATUS ISC_EXPORT isc_dsql_execute(ISC_STATUS*,
602 									   isc_tr_handle*,
603 									   isc_stmt_handle*,
604 									   unsigned short,
605 									   XSQLDA*);
606 
607 ISC_STATUS ISC_EXPORT isc_dsql_execute2(ISC_STATUS*,
608 										isc_tr_handle*,
609 										isc_stmt_handle*,
610 										unsigned short,
611 										XSQLDA*,
612 										XSQLDA*);
613 
614 ISC_STATUS ISC_EXPORT isc_dsql_execute_immediate(ISC_STATUS*,
615 												 isc_db_handle*,
616 												 isc_tr_handle*,
617 												 unsigned short,
618 												 const ISC_SCHAR*,
619 												 unsigned short,
620 												 XSQLDA*);
621 
622 ISC_STATUS ISC_EXPORT isc_dsql_fetch(ISC_STATUS *,
623 									 isc_stmt_handle *,
624 									 unsigned short,
625 									 XSQLDA *);
626 
627 ISC_STATUS ISC_EXPORT isc_dsql_finish(isc_db_handle *);
628 
629 ISC_STATUS ISC_EXPORT isc_dsql_free_statement(ISC_STATUS *,
630 											  isc_stmt_handle *,
631 											  unsigned short);
632 
633 ISC_STATUS ISC_EXPORT isc_dsql_insert(ISC_STATUS*,
634 									  isc_stmt_handle*,
635 									  unsigned short,
636 									  XSQLDA*);
637 
638 ISC_STATUS ISC_EXPORT isc_dsql_prepare(ISC_STATUS*,
639 									   isc_tr_handle*,
640 									   isc_stmt_handle*,
641 									   unsigned short,
642 									   const ISC_SCHAR*,
643 									   unsigned short,
644 									   XSQLDA*);
645 
646 ISC_STATUS ISC_EXPORT isc_dsql_set_cursor_name(ISC_STATUS*,
647 											   isc_stmt_handle*,
648 											   const ISC_SCHAR*,
649 											   unsigned short);
650 
651 ISC_STATUS ISC_EXPORT isc_dsql_sql_info(ISC_STATUS*,
652 										isc_stmt_handle*,
653 										short,
654 										const ISC_SCHAR*,
655 										short,
656 										ISC_SCHAR*);
657 
658 void ISC_EXPORT isc_encode_date(const void*,
659 								ISC_QUAD*);
660 
661 void ISC_EXPORT isc_encode_sql_date(const void*,
662 									ISC_DATE*);
663 
664 void ISC_EXPORT isc_encode_sql_time(const void*,
665 									ISC_TIME*);
666 
667 void ISC_EXPORT isc_encode_timestamp(const void*,
668 									 ISC_TIMESTAMP*);
669 
670 ISC_LONG ISC_EXPORT_VARARG isc_event_block(ISC_UCHAR**,
671 										   ISC_UCHAR**,
672 										   ISC_USHORT, ...);
673 
674 ISC_USHORT ISC_EXPORT isc_event_block_a(ISC_SCHAR**,
675 										ISC_SCHAR**,
676 										ISC_USHORT,
677 										ISC_SCHAR**);
678 
679 void ISC_EXPORT isc_event_block_s(ISC_SCHAR**,
680 								  ISC_SCHAR**,
681 								  ISC_USHORT,
682 								  ISC_SCHAR**,
683 								  ISC_USHORT*);
684 
685 void ISC_EXPORT isc_event_counts(ISC_ULONG*,
686 								 short,
687 								 ISC_UCHAR*,
688 								 const ISC_UCHAR *);
689 
690 /* 17 May 2001 - isc_expand_dpb is DEPRECATED */
691 void FB_API_DEPRECATED ISC_EXPORT_VARARG isc_expand_dpb(ISC_SCHAR**,
692 											  			short*, ...);
693 
694 int ISC_EXPORT isc_modify_dpb(ISC_SCHAR**,
695 							  short*,
696 							  unsigned short,
697 							  const ISC_SCHAR*,
698 							  short);
699 
700 ISC_LONG ISC_EXPORT isc_free(ISC_SCHAR *);
701 
702 ISC_STATUS ISC_EXPORT isc_get_segment(ISC_STATUS *,
703 									  isc_blob_handle *,
704 									  unsigned short *,
705 									  unsigned short,
706 									  ISC_SCHAR *);
707 
708 ISC_STATUS ISC_EXPORT isc_get_slice(ISC_STATUS*,
709 									isc_db_handle*,
710 									isc_tr_handle*,
711 									ISC_QUAD*,
712 									short,
713 									const ISC_SCHAR*,
714 									short,
715 									const ISC_LONG*,
716 									ISC_LONG,
717 									void*,
718 									ISC_LONG*);
719 
720 /* CVC: This non-const signature is needed for compatibility, see gds.cpp. */
721 ISC_LONG FB_API_DEPRECATED ISC_EXPORT isc_interprete(ISC_SCHAR*,
722 									 ISC_STATUS**);
723 
724 /* This const params version used in the engine and other places. */
725 ISC_LONG ISC_EXPORT fb_interpret(ISC_SCHAR*,
726 								 unsigned int,
727 								 const ISC_STATUS**);
728 
729 ISC_STATUS ISC_EXPORT isc_open_blob(ISC_STATUS*,
730 									isc_db_handle*,
731 									isc_tr_handle*,
732 									isc_blob_handle*,
733 									ISC_QUAD*);
734 
735 ISC_STATUS ISC_EXPORT isc_open_blob2(ISC_STATUS*,
736 									 isc_db_handle*,
737 									 isc_tr_handle*,
738 									 isc_blob_handle*,
739 									 ISC_QUAD*,
740 									 ISC_USHORT,
741 									 const ISC_UCHAR*);
742 
743 ISC_STATUS ISC_EXPORT isc_prepare_transaction2(ISC_STATUS*,
744 											   isc_tr_handle*,
745 											   ISC_USHORT,
746 											   const ISC_UCHAR*);
747 
748 void ISC_EXPORT isc_print_sqlerror(ISC_SHORT,
749 								   const ISC_STATUS*);
750 
751 ISC_STATUS ISC_EXPORT isc_print_status(const ISC_STATUS*);
752 
753 ISC_STATUS ISC_EXPORT isc_put_segment(ISC_STATUS*,
754 									  isc_blob_handle*,
755 									  unsigned short,
756 									  const ISC_SCHAR*);
757 
758 ISC_STATUS ISC_EXPORT isc_put_slice(ISC_STATUS*,
759 									isc_db_handle*,
760 									isc_tr_handle*,
761 									ISC_QUAD*,
762 									short,
763 									const ISC_SCHAR*,
764 									short,
765 									const ISC_LONG*,
766 									ISC_LONG,
767 									void*);
768 
769 ISC_STATUS ISC_EXPORT isc_que_events(ISC_STATUS*,
770 									 isc_db_handle*,
771 									 ISC_LONG*,
772 									 short,
773 									 const ISC_UCHAR*,
774 									 ISC_EVENT_CALLBACK,
775 									 void*);
776 
777 ISC_STATUS ISC_EXPORT isc_rollback_retaining(ISC_STATUS *,
778 											 isc_tr_handle *);
779 
780 ISC_STATUS ISC_EXPORT isc_rollback_transaction(ISC_STATUS *,
781 											   isc_tr_handle *);
782 
783 ISC_STATUS ISC_EXPORT isc_start_multiple(ISC_STATUS *,
784 										 isc_tr_handle *,
785 										 short,
786 										 void *);
787 
788 ISC_STATUS ISC_EXPORT_VARARG isc_start_transaction(ISC_STATUS *,
789 												   isc_tr_handle *,
790 												   short, ...);
791 
792 ISC_LONG ISC_EXPORT isc_sqlcode(const ISC_STATUS*);
793 
794 void ISC_EXPORT isc_sqlcode_s(const ISC_STATUS*,
795 							  ISC_ULONG*);
796 
797 void ISC_EXPORT isc_sql_interprete(short,
798 								   ISC_SCHAR*,
799 								   short);
800 
801 ISC_STATUS ISC_EXPORT isc_transaction_info(ISC_STATUS*,
802 										   isc_tr_handle*,
803 										   short,
804 										   const ISC_SCHAR*,
805 										   short,
806 										   ISC_SCHAR*);
807 
808 ISC_STATUS ISC_EXPORT isc_transact_request(ISC_STATUS*,
809 										   isc_db_handle*,
810 										   isc_tr_handle*,
811 										   unsigned short,
812 										   const ISC_SCHAR*,
813 										   unsigned short,
814 										   ISC_SCHAR*,
815 										   unsigned short,
816 										   ISC_SCHAR*);
817 
818 ISC_LONG ISC_EXPORT isc_vax_integer(const ISC_SCHAR*,
819 									short);
820 
821 ISC_INT64 ISC_EXPORT isc_portable_integer(const ISC_UCHAR*,
822 										  short);
823 
824 /*************************************/
825 /* Security Functions and structures */
826 /*************************************/
827 
828 #define sec_uid_spec		    0x01
829 #define sec_gid_spec		    0x02
830 #define sec_server_spec		    0x04
831 #define sec_password_spec	    0x08
832 #define sec_group_name_spec	    0x10
833 #define sec_first_name_spec	    0x20
834 #define sec_middle_name_spec        0x40
835 #define sec_last_name_spec	    0x80
836 #define sec_dba_user_name_spec      0x100
837 #define sec_dba_password_spec       0x200
838 
839 #define sec_protocol_tcpip            1
840 #define sec_protocol_netbeui          2
841 #define sec_protocol_spx              3 /* -- Deprecated Protocol. Declaration retained for compatibility   */
842 #define sec_protocol_local            4
843 
844 typedef struct {
845 	short sec_flags;			/* which fields are specified */
846 	int uid;					/* the user's id */
847 	int gid;					/* the user's group id */
848 	int protocol;				/* protocol to use for connection */
849 	ISC_SCHAR *server;				/* server to administer */
850 	ISC_SCHAR *user_name;			/* the user's name */
851 	ISC_SCHAR *password;				/* the user's password */
852 	ISC_SCHAR *group_name;			/* the group name */
853 	ISC_SCHAR *first_name;			/* the user's first name */
854 	ISC_SCHAR *middle_name;			/* the user's middle name */
855 	ISC_SCHAR *last_name;			/* the user's last name */
856 	ISC_SCHAR *dba_user_name;		/* the dba user name */
857 	ISC_SCHAR *dba_password;			/* the dba password */
858 } USER_SEC_DATA;
859 
860 ISC_STATUS ISC_EXPORT isc_add_user(ISC_STATUS*, const USER_SEC_DATA*);
861 
862 ISC_STATUS ISC_EXPORT isc_delete_user(ISC_STATUS*, const USER_SEC_DATA*);
863 
864 ISC_STATUS ISC_EXPORT isc_modify_user(ISC_STATUS*, const USER_SEC_DATA*);
865 
866 /**********************************/
867 /*  Other OSRI functions          */
868 /**********************************/
869 
870 ISC_STATUS ISC_EXPORT isc_compile_request(ISC_STATUS*,
871 										  isc_db_handle*,
872 										  isc_req_handle*,
873 										  short,
874 										  const ISC_SCHAR*);
875 
876 ISC_STATUS ISC_EXPORT isc_compile_request2(ISC_STATUS*,
877 										   isc_db_handle*,
878 										   isc_req_handle*,
879 										   short,
880 										   const ISC_SCHAR*);
881 
882 ISC_STATUS ISC_EXPORT isc_ddl(ISC_STATUS*,
883 							  isc_db_handle*,
884 							  isc_tr_handle*,
885 							  short,
886 							  const ISC_SCHAR*);
887 
888 ISC_STATUS ISC_EXPORT isc_prepare_transaction(ISC_STATUS*,
889 											  isc_tr_handle*);
890 
891 
892 ISC_STATUS ISC_EXPORT isc_receive(ISC_STATUS*,
893 								  isc_req_handle*,
894 								  short,
895 								  short,
896 								  void*,
897 								  short);
898 
899 ISC_STATUS ISC_EXPORT isc_reconnect_transaction(ISC_STATUS*,
900 												isc_db_handle*,
901 												isc_tr_handle*,
902 												short,
903 												const ISC_SCHAR*);
904 
905 ISC_STATUS ISC_EXPORT isc_release_request(ISC_STATUS*,
906 										  isc_req_handle*);
907 
908 ISC_STATUS ISC_EXPORT isc_request_info(ISC_STATUS*,
909 									   isc_req_handle*,
910 									   short,
911 									   short,
912 									   const ISC_SCHAR*,
913 									   short,
914 									   ISC_SCHAR*);
915 
916 ISC_STATUS ISC_EXPORT isc_seek_blob(ISC_STATUS*,
917 									isc_blob_handle*,
918 									short,
919 									ISC_LONG,
920 									ISC_LONG*);
921 
922 ISC_STATUS ISC_EXPORT isc_send(ISC_STATUS*,
923 							   isc_req_handle*,
924 							   short,
925 							   short,
926 							   const void*,
927 							   short);
928 
929 ISC_STATUS ISC_EXPORT isc_start_and_send(ISC_STATUS*,
930 										 isc_req_handle*,
931 										 isc_tr_handle*,
932 										 short,
933 										 short,
934 										 const void*,
935 										 short);
936 
937 ISC_STATUS ISC_EXPORT isc_start_request(ISC_STATUS *,
938 										isc_req_handle *,
939 										isc_tr_handle *,
940 										short);
941 
942 ISC_STATUS ISC_EXPORT isc_unwind_request(ISC_STATUS *,
943 										 isc_tr_handle *,
944 										 short);
945 
946 ISC_STATUS ISC_EXPORT isc_wait_for_event(ISC_STATUS*,
947 										 isc_db_handle*,
948 										 short,
949 										 const ISC_UCHAR*,
950 										 ISC_UCHAR*);
951 
952 
953 /*****************************/
954 /* Other Sql functions       */
955 /*****************************/
956 
957 ISC_STATUS ISC_EXPORT isc_close(ISC_STATUS*,
958 								const ISC_SCHAR*);
959 
960 ISC_STATUS ISC_EXPORT isc_declare(ISC_STATUS*,
961 								  const ISC_SCHAR*,
962 								  const ISC_SCHAR*);
963 
964 ISC_STATUS ISC_EXPORT isc_describe(ISC_STATUS*,
965 								   const ISC_SCHAR*,
966 								   XSQLDA *);
967 
968 ISC_STATUS ISC_EXPORT isc_describe_bind(ISC_STATUS*,
969 										const ISC_SCHAR*,
970 										XSQLDA*);
971 
972 ISC_STATUS ISC_EXPORT isc_execute(ISC_STATUS*,
973 								  isc_tr_handle*,
974 								  const ISC_SCHAR*,
975 								  XSQLDA*);
976 
977 ISC_STATUS ISC_EXPORT isc_execute_immediate(ISC_STATUS*,
978 											isc_db_handle*,
979 											isc_tr_handle*,
980 											short*,
981 											const ISC_SCHAR*);
982 
983 ISC_STATUS ISC_EXPORT isc_fetch(ISC_STATUS*,
984 								const ISC_SCHAR*,
985 								XSQLDA*);
986 
987 ISC_STATUS ISC_EXPORT isc_open(ISC_STATUS*,
988 							   isc_tr_handle*,
989 							   const ISC_SCHAR*,
990 							   XSQLDA*);
991 
992 ISC_STATUS ISC_EXPORT isc_prepare(ISC_STATUS*,
993 								  isc_db_handle*,
994 								  isc_tr_handle*,
995 								  const ISC_SCHAR*,
996 								  short*,
997 								  const ISC_SCHAR*,
998 								  XSQLDA*);
999 
1000 
1001 /*************************************/
1002 /* Other Dynamic sql functions       */
1003 /*************************************/
1004 
1005 ISC_STATUS ISC_EXPORT isc_dsql_execute_m(ISC_STATUS*,
1006 										 isc_tr_handle*,
1007 										 isc_stmt_handle*,
1008 										 unsigned short,
1009 										 const ISC_SCHAR*,
1010 										 unsigned short,
1011 										 unsigned short,
1012 										 ISC_SCHAR*);
1013 
1014 ISC_STATUS ISC_EXPORT isc_dsql_execute2_m(ISC_STATUS*,
1015 										  isc_tr_handle*,
1016 										  isc_stmt_handle*,
1017 										  unsigned short,
1018 										  const ISC_SCHAR*,
1019 										  unsigned short,
1020 										  unsigned short,
1021 										  const ISC_SCHAR*,
1022 										  unsigned short,
1023 										  ISC_SCHAR*,
1024 										  unsigned short,
1025 										  unsigned short,
1026 										  ISC_SCHAR*);
1027 
1028 ISC_STATUS ISC_EXPORT isc_dsql_execute_immediate_m(ISC_STATUS*,
1029 												   isc_db_handle*,
1030 												   isc_tr_handle*,
1031 												   unsigned short,
1032 												   const ISC_SCHAR*,
1033 												   unsigned short,
1034 												   unsigned short,
1035 												   const ISC_SCHAR*,
1036 												   unsigned short,
1037 												   unsigned short,
1038 												   ISC_SCHAR*);
1039 
1040 ISC_STATUS ISC_EXPORT isc_dsql_exec_immed3_m(ISC_STATUS*,
1041 											 isc_db_handle*,
1042 											 isc_tr_handle*,
1043 											 unsigned short,
1044 											 const ISC_SCHAR*,
1045 											 unsigned short,
1046 											 unsigned short,
1047 											 const ISC_SCHAR*,
1048 											 unsigned short,
1049 											 unsigned short,
1050 											 ISC_SCHAR*,
1051 											 unsigned short,
1052 											 ISC_SCHAR*,
1053 											 unsigned short,
1054 											 unsigned short,
1055 											 ISC_SCHAR*);
1056 
1057 ISC_STATUS ISC_EXPORT isc_dsql_fetch_m(ISC_STATUS*,
1058 									   isc_stmt_handle*,
1059 									   unsigned short,
1060 									   const ISC_SCHAR*,
1061 									   unsigned short,
1062 									   unsigned short,
1063 									   ISC_SCHAR*);
1064 
1065 ISC_STATUS ISC_EXPORT isc_dsql_insert_m(ISC_STATUS*,
1066 										isc_stmt_handle*,
1067 										unsigned short,
1068 										const ISC_SCHAR*,
1069 										unsigned short,
1070 										unsigned short,
1071 										const ISC_SCHAR*);
1072 
1073 ISC_STATUS ISC_EXPORT isc_dsql_prepare_m(ISC_STATUS*,
1074 										 isc_tr_handle*,
1075 										 isc_stmt_handle*,
1076 										 unsigned short,
1077 										 const ISC_SCHAR*,
1078 										 unsigned short,
1079 										 unsigned short,
1080 										 const ISC_SCHAR*,
1081 										 unsigned short,
1082 										 ISC_SCHAR*);
1083 
1084 ISC_STATUS ISC_EXPORT isc_dsql_release(ISC_STATUS*,
1085 									   const ISC_SCHAR*);
1086 
1087 ISC_STATUS ISC_EXPORT isc_embed_dsql_close(ISC_STATUS*,
1088 										   const ISC_SCHAR*);
1089 
1090 ISC_STATUS ISC_EXPORT isc_embed_dsql_declare(ISC_STATUS*,
1091 											 const ISC_SCHAR*,
1092 											 const ISC_SCHAR*);
1093 
1094 ISC_STATUS ISC_EXPORT isc_embed_dsql_describe(ISC_STATUS*,
1095 											  const ISC_SCHAR*,
1096 											  unsigned short,
1097 											  XSQLDA*);
1098 
1099 ISC_STATUS ISC_EXPORT isc_embed_dsql_describe_bind(ISC_STATUS*,
1100 												   const ISC_SCHAR*,
1101 												   unsigned short,
1102 												   XSQLDA*);
1103 
1104 ISC_STATUS ISC_EXPORT isc_embed_dsql_execute(ISC_STATUS*,
1105 											 isc_tr_handle*,
1106 											 const ISC_SCHAR*,
1107 											 unsigned short,
1108 											 XSQLDA*);
1109 
1110 ISC_STATUS ISC_EXPORT isc_embed_dsql_execute2(ISC_STATUS*,
1111 											  isc_tr_handle*,
1112 											  const ISC_SCHAR*,
1113 											  unsigned short,
1114 											  XSQLDA*,
1115 											  XSQLDA*);
1116 
1117 ISC_STATUS ISC_EXPORT isc_embed_dsql_execute_immed(ISC_STATUS*,
1118 												   isc_db_handle*,
1119 												   isc_tr_handle*,
1120 												   unsigned short,
1121 												   const ISC_SCHAR*,
1122 												   unsigned short,
1123 												   XSQLDA*);
1124 
1125 ISC_STATUS ISC_EXPORT isc_embed_dsql_fetch(ISC_STATUS*,
1126 										   const ISC_SCHAR*,
1127 										   unsigned short,
1128 										   XSQLDA*);
1129 
1130 ISC_STATUS ISC_EXPORT isc_embed_dsql_fetch_a(ISC_STATUS*,
1131 											 int*,
1132 											 const ISC_SCHAR*,
1133 											 ISC_USHORT,
1134 											 XSQLDA*);
1135 
1136 void ISC_EXPORT isc_embed_dsql_length(const ISC_UCHAR*,
1137 									  ISC_USHORT*);
1138 
1139 ISC_STATUS ISC_EXPORT isc_embed_dsql_open(ISC_STATUS*,
1140 										  isc_tr_handle*,
1141 										  const ISC_SCHAR*,
1142 										  unsigned short,
1143 										  XSQLDA*);
1144 
1145 ISC_STATUS ISC_EXPORT isc_embed_dsql_open2(ISC_STATUS*,
1146 										   isc_tr_handle*,
1147 										   const ISC_SCHAR*,
1148 										   unsigned short,
1149 										   XSQLDA*,
1150 										   XSQLDA*);
1151 
1152 ISC_STATUS ISC_EXPORT isc_embed_dsql_insert(ISC_STATUS*,
1153 											const ISC_SCHAR*,
1154 											unsigned short,
1155 											XSQLDA*);
1156 
1157 ISC_STATUS ISC_EXPORT isc_embed_dsql_prepare(ISC_STATUS*,
1158 											 isc_db_handle*,
1159 											 isc_tr_handle*,
1160 											 const ISC_SCHAR*,
1161 											 unsigned short,
1162 											 const ISC_SCHAR*,
1163 											 unsigned short,
1164 											 XSQLDA*);
1165 
1166 ISC_STATUS ISC_EXPORT isc_embed_dsql_release(ISC_STATUS*,
1167 											 const ISC_SCHAR*);
1168 
1169 
1170 /******************************/
1171 /* Other Blob functions       */
1172 /******************************/
1173 
1174 BSTREAM* ISC_EXPORT BLOB_open(isc_blob_handle,
1175 									  ISC_SCHAR*,
1176 									  int);
1177 
1178 int ISC_EXPORT BLOB_put(ISC_SCHAR,
1179 						BSTREAM*);
1180 
1181 int ISC_EXPORT BLOB_close(BSTREAM*);
1182 
1183 int ISC_EXPORT BLOB_get(BSTREAM*);
1184 
1185 int ISC_EXPORT BLOB_display(ISC_QUAD*,
1186 							isc_db_handle,
1187 							isc_tr_handle,
1188 							const ISC_SCHAR*);
1189 
1190 int ISC_EXPORT BLOB_dump(ISC_QUAD*,
1191 						 isc_db_handle,
1192 						 isc_tr_handle,
1193 						 const ISC_SCHAR*);
1194 
1195 int ISC_EXPORT BLOB_edit(ISC_QUAD*,
1196 						 isc_db_handle,
1197 						 isc_tr_handle,
1198 						 const ISC_SCHAR*);
1199 
1200 int ISC_EXPORT BLOB_load(ISC_QUAD*,
1201 						 isc_db_handle,
1202 						 isc_tr_handle,
1203 						 const ISC_SCHAR*);
1204 
1205 int ISC_EXPORT BLOB_text_dump(ISC_QUAD*,
1206 							  isc_db_handle,
1207 							  isc_tr_handle,
1208 							  const ISC_SCHAR*);
1209 
1210 int ISC_EXPORT BLOB_text_load(ISC_QUAD*,
1211 							  isc_db_handle,
1212 							  isc_tr_handle,
1213 							  const ISC_SCHAR*);
1214 
1215 BSTREAM* ISC_EXPORT Bopen(ISC_QUAD*,
1216 								  isc_db_handle,
1217 								  isc_tr_handle,
1218 								  const ISC_SCHAR*);
1219 
1220 /* Disabled, not found anywhere.
1221 BSTREAM* ISC_EXPORT Bopen2(ISC_QUAD*,
1222 								   isc_db_handle,
1223 								   isc_tr_handle,
1224 								   const ISC_SCHAR*,
1225 								   unsigned short);
1226 */
1227 
1228 
1229 /******************************/
1230 /* Other Misc functions       */
1231 /******************************/
1232 
1233 ISC_LONG ISC_EXPORT isc_ftof(const ISC_SCHAR*,
1234 							 const unsigned short,
1235 							 ISC_SCHAR*,
1236 							 const unsigned short);
1237 
1238 ISC_STATUS ISC_EXPORT isc_print_blr(const ISC_SCHAR*,
1239 									ISC_PRINT_CALLBACK,
1240 									void*,
1241 									short);
1242 
1243 void ISC_EXPORT isc_set_debug(int);
1244 
1245 void ISC_EXPORT isc_qtoq(const ISC_QUAD*,
1246 						 ISC_QUAD*);
1247 
1248 void ISC_EXPORT isc_vtof(const ISC_SCHAR*,
1249 						 ISC_SCHAR*,
1250 						 unsigned short);
1251 
1252 void ISC_EXPORT isc_vtov(const ISC_SCHAR*,
1253 						 ISC_SCHAR*,
1254 						 short);
1255 
1256 int ISC_EXPORT isc_version(isc_db_handle*,
1257 						   ISC_VERSION_CALLBACK,
1258 						   void*);
1259 
1260 ISC_LONG ISC_EXPORT isc_reset_fpe(ISC_USHORT);
1261 
1262 uintptr_t	ISC_EXPORT isc_baddress(ISC_SCHAR*);
1263 void		ISC_EXPORT isc_baddress_s(const ISC_SCHAR*,
1264 								  uintptr_t*);
1265 
1266 /*****************************************/
1267 /* Service manager functions             */
1268 /*****************************************/
1269 
1270 #define ADD_SPB_LENGTH(p, length)	{*(p)++ = (length); \
1271     					 *(p)++ = (length) >> 8;}
1272 
1273 #define ADD_SPB_NUMERIC(p, data)	{*(p)++ = (ISC_SCHAR) (data); \
1274     					 *(p)++ = (ISC_SCHAR) ((data) >> 8); \
1275 					 *(p)++ = (ISC_SCHAR) ((data) >> 16); \
1276 					 *(p)++ = (ISC_SCHAR) ((data) >> 24);}
1277 
1278 ISC_STATUS ISC_EXPORT isc_service_attach(ISC_STATUS*,
1279 										 unsigned short,
1280 										 const ISC_SCHAR*,
1281 										 isc_svc_handle*,
1282 										 unsigned short,
1283 										 const ISC_SCHAR*);
1284 
1285 ISC_STATUS ISC_EXPORT isc_service_detach(ISC_STATUS *,
1286 										 isc_svc_handle *);
1287 
1288 ISC_STATUS ISC_EXPORT isc_service_query(ISC_STATUS*,
1289 										isc_svc_handle*,
1290 										isc_resv_handle*,
1291 										unsigned short,
1292 										const ISC_SCHAR*,
1293 										unsigned short,
1294 										const ISC_SCHAR*,
1295 										unsigned short,
1296 										ISC_SCHAR*);
1297 
1298 ISC_STATUS ISC_EXPORT isc_service_start(ISC_STATUS*,
1299 										isc_svc_handle*,
1300 										isc_resv_handle*,
1301 										unsigned short,
1302 										const ISC_SCHAR*);
1303 
1304 
1305 /********************************/
1306 /* Client information functions */
1307 /********************************/
1308 
1309 void ISC_EXPORT isc_get_client_version ( ISC_SCHAR  *);
1310 int  ISC_EXPORT isc_get_client_major_version ();
1311 int  ISC_EXPORT isc_get_client_minor_version ();
1312 
1313 #ifdef __cplusplus
1314 }	/* extern "C" */
1315 #endif
1316 
1317 
1318 /***************************************************/
1319 /* Actions to pass to the blob filter (ctl_source) */
1320 /***************************************************/
1321 
1322 #define isc_blob_filter_open             0
1323 #define isc_blob_filter_get_segment      1
1324 #define isc_blob_filter_close            2
1325 #define isc_blob_filter_create           3
1326 #define isc_blob_filter_put_segment      4
1327 #define isc_blob_filter_alloc            5
1328 #define isc_blob_filter_free             6
1329 #define isc_blob_filter_seek             7
1330 
1331 /*******************/
1332 /* Blr definitions */
1333 /*******************/
1334 
1335 
1336 #ifndef JRD_BLR_H
1337 #define JRD_BLR_H
1338 
1339 #define blr_text                (unsigned char)14
1340 #define blr_text2               (unsigned char)15
1341 #define blr_short               (unsigned char)7
1342 #define blr_long                (unsigned char)8
1343 #define blr_quad                (unsigned char)9
1344 #define blr_float               (unsigned char)10
1345 #define blr_double              (unsigned char)27
1346 #define blr_d_float             (unsigned char)11
1347 #define blr_timestamp           (unsigned char)35
1348 #define blr_varying             (unsigned char)37
1349 #define blr_varying2            (unsigned char)38
1350 #define blr_blob                (unsigned short)261
1351 #define blr_cstring             (unsigned char)40
1352 #define blr_cstring2            (unsigned char)41
1353 #define blr_blob_id             (unsigned char)45
1354 #define blr_sql_date            (unsigned char)12
1355 #define blr_sql_time            (unsigned char)13
1356 #define blr_int64               (unsigned char)16
1357 #define blr_blob2                       (unsigned char)17
1358 #define blr_domain_name         (unsigned char)18
1359 #define blr_domain_name2        (unsigned char)19
1360 #define blr_not_nullable        (unsigned char)20
1361 
1362 #define blr_domain_type_of      (unsigned char)0
1363 #define blr_domain_full         (unsigned char)1
1364 
1365 #define blr_date                blr_timestamp
1366 
1367 #define blr_inner               (unsigned char)0
1368 #define blr_left                (unsigned char)1
1369 #define blr_right               (unsigned char)2
1370 #define blr_full                (unsigned char)3
1371 
1372 #define blr_gds_code            (unsigned char)0
1373 #define blr_sql_code            (unsigned char)1
1374 #define blr_exception           (unsigned char)2
1375 #define blr_trigger_code        (unsigned char)3
1376 #define blr_default_code        (unsigned char)4
1377 #define blr_raise                       (unsigned char)5
1378 #define blr_exception_msg       (unsigned char)6
1379 
1380 #define blr_version4            (unsigned char)4
1381 #define blr_version5            (unsigned char)5
1382 #define blr_eoc                 (unsigned char)76
1383 #define blr_end                 (unsigned char)255
1384 
1385 #define blr_assignment          (unsigned char)1
1386 #define blr_begin               (unsigned char)2
1387 #define blr_dcl_variable        (unsigned char)3
1388 #define blr_message             (unsigned char)4
1389 #define blr_erase               (unsigned char)5
1390 #define blr_fetch               (unsigned char)6
1391 #define blr_for                 (unsigned char)7
1392 #define blr_if                  (unsigned char)8
1393 #define blr_loop                (unsigned char)9
1394 #define blr_modify              (unsigned char)10
1395 #define blr_handler             (unsigned char)11
1396 #define blr_receive             (unsigned char)12
1397 #define blr_select              (unsigned char)13
1398 #define blr_send                (unsigned char)14
1399 #define blr_store               (unsigned char)15
1400 #define blr_label               (unsigned char)17
1401 #define blr_leave               (unsigned char)18
1402 #define blr_store2              (unsigned char)19
1403 #define blr_post                (unsigned char)20
1404 #define blr_literal             (unsigned char)21
1405 #define blr_dbkey               (unsigned char)22
1406 #define blr_field               (unsigned char)23
1407 #define blr_fid                 (unsigned char)24
1408 #define blr_parameter           (unsigned char)25
1409 #define blr_variable            (unsigned char)26
1410 #define blr_average             (unsigned char)27
1411 #define blr_count               (unsigned char)28
1412 #define blr_maximum             (unsigned char)29
1413 #define blr_minimum             (unsigned char)30
1414 #define blr_total               (unsigned char)31
1415 
1416 #define blr_add                 (unsigned char)34
1417 #define blr_subtract            (unsigned char)35
1418 #define blr_multiply            (unsigned char)36
1419 #define blr_divide              (unsigned char)37
1420 #define blr_negate              (unsigned char)38
1421 #define blr_concatenate         (unsigned char)39
1422 #define blr_substring           (unsigned char)40
1423 #define blr_parameter2          (unsigned char)41
1424 #define blr_from                (unsigned char)42
1425 #define blr_via                 (unsigned char)43
1426 #define blr_parameter2_old      (unsigned char)44
1427 #define blr_user_name           (unsigned char)44
1428 #define blr_null                (unsigned char)45
1429 
1430 #define blr_equiv                       (unsigned char)46
1431 #define blr_eql                 (unsigned char)47
1432 #define blr_neq                 (unsigned char)48
1433 #define blr_gtr                 (unsigned char)49
1434 #define blr_geq                 (unsigned char)50
1435 #define blr_lss                 (unsigned char)51
1436 #define blr_leq                 (unsigned char)52
1437 #define blr_containing          (unsigned char)53
1438 #define blr_matching            (unsigned char)54
1439 #define blr_starting            (unsigned char)55
1440 #define blr_between             (unsigned char)56
1441 #define blr_or                  (unsigned char)57
1442 #define blr_and                 (unsigned char)58
1443 #define blr_not                 (unsigned char)59
1444 #define blr_any                 (unsigned char)60
1445 #define blr_missing             (unsigned char)61
1446 #define blr_unique              (unsigned char)62
1447 #define blr_like                (unsigned char)63
1448 
1449 #define blr_rse                 (unsigned char)67
1450 #define blr_first               (unsigned char)68
1451 #define blr_project             (unsigned char)69
1452 #define blr_sort                (unsigned char)70
1453 #define blr_boolean             (unsigned char)71
1454 #define blr_ascending           (unsigned char)72
1455 #define blr_descending          (unsigned char)73
1456 #define blr_relation            (unsigned char)74
1457 #define blr_rid                 (unsigned char)75
1458 #define blr_union               (unsigned char)76
1459 #define blr_map                 (unsigned char)77
1460 #define blr_group_by            (unsigned char)78
1461 #define blr_aggregate           (unsigned char)79
1462 #define blr_join_type           (unsigned char)80
1463 
1464 #define blr_agg_count           (unsigned char)83
1465 #define blr_agg_max             (unsigned char)84
1466 #define blr_agg_min             (unsigned char)85
1467 #define blr_agg_total           (unsigned char)86
1468 #define blr_agg_average         (unsigned char)87
1469 #define blr_parameter3          (unsigned char)88
1470 #define blr_run_max             (unsigned char)89
1471 #define blr_run_min             (unsigned char)90
1472 #define blr_run_total           (unsigned char)91
1473 #define blr_run_average         (unsigned char)92
1474 #define blr_agg_count2          (unsigned char)93
1475 #define blr_agg_count_distinct  (unsigned char)94
1476 #define blr_agg_total_distinct  (unsigned char)95
1477 #define blr_agg_average_distinct (unsigned char)96
1478 
1479 #define blr_function            (unsigned char)100
1480 #define blr_gen_id              (unsigned char)101
1481 #define blr_prot_mask           (unsigned char)102
1482 #define blr_upcase              (unsigned char)103
1483 #define blr_lock_state          (unsigned char)104
1484 #define blr_value_if            (unsigned char)105
1485 #define blr_matching2           (unsigned char)106
1486 #define blr_index               (unsigned char)107
1487 #define blr_ansi_like           (unsigned char)108
1488 
1489 #define blr_seek                (unsigned char)112
1490 
1491 #define blr_continue            (unsigned char)0
1492 #define blr_forward             (unsigned char)1
1493 #define blr_backward            (unsigned char)2
1494 #define blr_bof_forward         (unsigned char)3
1495 #define blr_eof_backward        (unsigned char)4
1496 
1497 #define blr_run_count           (unsigned char)118
1498 #define blr_rs_stream           (unsigned char)119
1499 #define blr_exec_proc           (unsigned char)120
1500 
1501 #define blr_procedure           (unsigned char)124
1502 #define blr_pid                 (unsigned char)125
1503 #define blr_exec_pid            (unsigned char)126
1504 #define blr_singular            (unsigned char)127
1505 #define blr_abort               (unsigned char)128
1506 #define blr_block               (unsigned char)129
1507 #define blr_error_handler       (unsigned char)130
1508 
1509 #define blr_cast                (unsigned char)131
1510 
1511 #define blr_start_savepoint     (unsigned char)134
1512 #define blr_end_savepoint       (unsigned char)135
1513 
1514 #define blr_plan                (unsigned char)139
1515 #define blr_merge               (unsigned char)140
1516 #define blr_join                (unsigned char)141
1517 #define blr_sequential          (unsigned char)142
1518 #define blr_navigational        (unsigned char)143
1519 #define blr_indices             (unsigned char)144
1520 #define blr_retrieve            (unsigned char)145
1521 
1522 #define blr_relation2           (unsigned char)146
1523 #define blr_rid2                (unsigned char)147
1524 
1525 #define blr_set_generator       (unsigned char)150
1526 
1527 #define blr_ansi_any            (unsigned char)151
1528 #define blr_exists              (unsigned char)152
1529 
1530 #define blr_record_version      (unsigned char)154
1531 #define blr_stall               (unsigned char)155
1532 
1533 #define blr_ansi_all            (unsigned char)158
1534 
1535 #define blr_extract             (unsigned char)159
1536 
1537 #define blr_extract_year                (unsigned char)0
1538 #define blr_extract_month               (unsigned char)1
1539 #define blr_extract_day                 (unsigned char)2
1540 #define blr_extract_hour                (unsigned char)3
1541 #define blr_extract_minute              (unsigned char)4
1542 #define blr_extract_second              (unsigned char)5
1543 #define blr_extract_weekday             (unsigned char)6
1544 #define blr_extract_yearday             (unsigned char)7
1545 #define blr_extract_millisecond (unsigned char)8
1546 #define blr_extract_week                (unsigned char)9
1547 
1548 #define blr_current_date        (unsigned char)160
1549 #define blr_current_timestamp   (unsigned char)161
1550 #define blr_current_time        (unsigned char)162
1551 
1552 #define blr_post_arg            (unsigned char)163
1553 #define blr_exec_into           (unsigned char)164
1554 #define blr_user_savepoint      (unsigned char)165
1555 #define blr_dcl_cursor          (unsigned char)166
1556 #define blr_cursor_stmt         (unsigned char)167
1557 #define blr_current_timestamp2  (unsigned char)168
1558 #define blr_current_time2       (unsigned char)169
1559 #define blr_agg_list            (unsigned char)170
1560 #define blr_agg_list_distinct   (unsigned char)171
1561 #define blr_modify2                     (unsigned char)172
1562 
1563 #define blr_current_role        (unsigned char)174
1564 #define blr_skip                (unsigned char)175
1565 
1566 #define blr_exec_sql            (unsigned char)176
1567 #define blr_internal_info       (unsigned char)177
1568 #define blr_nullsfirst          (unsigned char)178
1569 #define blr_writelock           (unsigned char)179
1570 #define blr_nullslast       (unsigned char)180
1571 
1572 #define blr_lowcase                     (unsigned char)181
1573 #define blr_strlen                      (unsigned char)182
1574 
1575 #define blr_strlen_bit          (unsigned char)0
1576 #define blr_strlen_char         (unsigned char)1
1577 #define blr_strlen_octet        (unsigned char)2
1578 
1579 #define blr_trim                        (unsigned char)183
1580 
1581 #define blr_trim_both           (unsigned char)0
1582 #define blr_trim_leading        (unsigned char)1
1583 #define blr_trim_trailing       (unsigned char)2
1584 
1585 #define blr_trim_spaces         (unsigned char)0
1586 #define blr_trim_characters     (unsigned char)1
1587 
1588 #define blr_savepoint_set       (unsigned char)0
1589 #define blr_savepoint_release   (unsigned char)1
1590 #define blr_savepoint_undo      (unsigned char)2
1591 #define blr_savepoint_release_single    (unsigned char)3
1592 
1593 #define blr_cursor_open                 (unsigned char)0
1594 #define blr_cursor_close                (unsigned char)1
1595 #define blr_cursor_fetch                (unsigned char)2
1596 
1597 #define blr_init_variable       (unsigned char)184
1598 #define blr_recurse                     (unsigned char)185
1599 #define blr_sys_function        (unsigned char)186
1600 
1601 #endif
1602 
1603 
1604 #ifndef INCLUDE_CONSTS_PUB_H
1605 #define INCLUDE_CONSTS_PUB_H
1606 
1607 #define isc_dpb_version1                  1
1608 #define isc_dpb_cdd_pathname              1
1609 #define isc_dpb_allocation                2
1610 #define isc_dpb_journal                   3
1611 #define isc_dpb_page_size                 4
1612 #define isc_dpb_num_buffers               5
1613 #define isc_dpb_buffer_length             6
1614 #define isc_dpb_debug                     7
1615 #define isc_dpb_garbage_collect           8
1616 #define isc_dpb_verify                    9
1617 #define isc_dpb_sweep                     10
1618 #define isc_dpb_enable_journal            11
1619 #define isc_dpb_disable_journal           12
1620 #define isc_dpb_dbkey_scope               13
1621 #define isc_dpb_number_of_users           14
1622 #define isc_dpb_trace                     15
1623 #define isc_dpb_no_garbage_collect        16
1624 #define isc_dpb_damaged                   17
1625 #define isc_dpb_license                   18
1626 #define isc_dpb_sys_user_name             19
1627 #define isc_dpb_encrypt_key               20
1628 #define isc_dpb_activate_shadow           21
1629 #define isc_dpb_sweep_interval            22
1630 #define isc_dpb_delete_shadow             23
1631 #define isc_dpb_force_write               24
1632 #define isc_dpb_begin_log                 25
1633 #define isc_dpb_quit_log                  26
1634 #define isc_dpb_no_reserve                27
1635 #define isc_dpb_user_name                 28
1636 #define isc_dpb_password                  29
1637 #define isc_dpb_password_enc              30
1638 #define isc_dpb_sys_user_name_enc         31
1639 #define isc_dpb_interp                    32
1640 #define isc_dpb_online_dump               33
1641 #define isc_dpb_old_file_size             34
1642 #define isc_dpb_old_num_files             35
1643 #define isc_dpb_old_file                  36
1644 #define isc_dpb_old_start_page            37
1645 #define isc_dpb_old_start_seqno           38
1646 #define isc_dpb_old_start_file            39
1647 #define isc_dpb_drop_walfile              40
1648 #define isc_dpb_old_dump_id               41
1649 #define isc_dpb_wal_backup_dir            42
1650 #define isc_dpb_wal_chkptlen              43
1651 #define isc_dpb_wal_numbufs               44
1652 #define isc_dpb_wal_bufsize               45
1653 #define isc_dpb_wal_grp_cmt_wait          46
1654 #define isc_dpb_lc_messages               47
1655 #define isc_dpb_lc_ctype                  48
1656 #define isc_dpb_cache_manager             49
1657 #define isc_dpb_shutdown                  50
1658 #define isc_dpb_online                    51
1659 #define isc_dpb_shutdown_delay            52
1660 #define isc_dpb_reserved                  53
1661 #define isc_dpb_overwrite                 54
1662 #define isc_dpb_sec_attach                55
1663 #define isc_dpb_disable_wal               56
1664 #define isc_dpb_connect_timeout           57
1665 #define isc_dpb_dummy_packet_interval     58
1666 #define isc_dpb_gbak_attach               59
1667 #define isc_dpb_sql_role_name             60
1668 #define isc_dpb_set_page_buffers          61
1669 #define isc_dpb_working_directory         62
1670 #define isc_dpb_sql_dialect               63
1671 #define isc_dpb_set_db_readonly           64
1672 #define isc_dpb_set_db_sql_dialect        65
1673 #define isc_dpb_gfix_attach               66
1674 #define isc_dpb_gstat_attach              67
1675 #define isc_dpb_set_db_charset            68
1676 #define isc_dpb_gsec_attach               69
1677 #define isc_dpb_address_path              70
1678 #define isc_dpb_process_id                71
1679 #define isc_dpb_no_db_triggers            72
1680 #define isc_dpb_trusted_auth                      73
1681 #define isc_dpb_process_name              74
1682 
1683 #define isc_dpb_address 1
1684 
1685 #define isc_dpb_addr_protocol 1
1686 #define isc_dpb_addr_endpoint 2
1687 
1688 #define isc_dpb_pages                     1
1689 #define isc_dpb_records                   2
1690 #define isc_dpb_indices                   4
1691 #define isc_dpb_transactions              8
1692 #define isc_dpb_no_update                 16
1693 #define isc_dpb_repair                    32
1694 #define isc_dpb_ignore                    64
1695 
1696 #define isc_dpb_shut_cache               0x1
1697 #define isc_dpb_shut_attachment          0x2
1698 #define isc_dpb_shut_transaction         0x4
1699 #define isc_dpb_shut_force               0x8
1700 #define isc_dpb_shut_mode_mask          0x70
1701 
1702 #define isc_dpb_shut_default             0x0
1703 #define isc_dpb_shut_normal             0x10
1704 #define isc_dpb_shut_multi              0x20
1705 #define isc_dpb_shut_single             0x30
1706 #define isc_dpb_shut_full               0x40
1707 
1708 #define RDB_system                         1
1709 #define RDB_id_assigned                    2
1710 
1711 #define isc_tpb_version1                  1
1712 #define isc_tpb_version3                  3
1713 #define isc_tpb_consistency               1
1714 #define isc_tpb_concurrency               2
1715 #define isc_tpb_shared                    3
1716 #define isc_tpb_protected                 4
1717 #define isc_tpb_exclusive                 5
1718 #define isc_tpb_wait                      6
1719 #define isc_tpb_nowait                    7
1720 #define isc_tpb_read                      8
1721 #define isc_tpb_write                     9
1722 #define isc_tpb_lock_read                 10
1723 #define isc_tpb_lock_write                11
1724 #define isc_tpb_verb_time                 12
1725 #define isc_tpb_commit_time               13
1726 #define isc_tpb_ignore_limbo              14
1727 #define isc_tpb_read_committed            15
1728 #define isc_tpb_autocommit                16
1729 #define isc_tpb_rec_version               17
1730 #define isc_tpb_no_rec_version            18
1731 #define isc_tpb_restart_requests          19
1732 #define isc_tpb_no_auto_undo              20
1733 #define isc_tpb_lock_timeout              21
1734 
1735 #define isc_bpb_version1                  1
1736 #define isc_bpb_source_type               1
1737 #define isc_bpb_target_type               2
1738 #define isc_bpb_type                      3
1739 #define isc_bpb_source_interp             4
1740 #define isc_bpb_target_interp             5
1741 #define isc_bpb_filter_parameter          6
1742 #define isc_bpb_storage                   7
1743 
1744 #define isc_bpb_type_segmented            0x0
1745 #define isc_bpb_type_stream               0x1
1746 #define isc_bpb_storage_main              0x0
1747 #define isc_bpb_storage_temp              0x2
1748 
1749 #define isc_spb_version1                  1
1750 #define isc_spb_current_version           2
1751 #define isc_spb_version                   isc_spb_current_version
1752 #define isc_spb_user_name                 isc_dpb_user_name
1753 #define isc_spb_sys_user_name             isc_dpb_sys_user_name
1754 #define isc_spb_sys_user_name_enc         isc_dpb_sys_user_name_enc
1755 #define isc_spb_password                  isc_dpb_password
1756 #define isc_spb_password_enc              isc_dpb_password_enc
1757 #define isc_spb_command_line              105
1758 #define isc_spb_dbname                    106
1759 #define isc_spb_verbose                   107
1760 #define isc_spb_options                   108
1761 #define isc_spb_address_path              109
1762 #define isc_spb_process_id                110
1763 #define isc_spb_trusted_auth                      111
1764 #define isc_spb_process_name              112
1765 
1766 #define isc_spb_connect_timeout           isc_dpb_connect_timeout
1767 #define isc_spb_dummy_packet_interval     isc_dpb_dummy_packet_interval
1768 #define isc_spb_sql_role_name             isc_dpb_sql_role_name
1769 
1770 #define isc_action_svc_backup          1
1771 #define isc_action_svc_restore         2
1772 #define isc_action_svc_repair          3
1773 #define isc_action_svc_add_user        4
1774 #define isc_action_svc_delete_user     5
1775 #define isc_action_svc_modify_user     6
1776 #define isc_action_svc_display_user    7
1777 #define isc_action_svc_properties      8
1778 #define isc_action_svc_add_license     9
1779 #define isc_action_svc_remove_license 10
1780 #define isc_action_svc_db_stats       11
1781 #define isc_action_svc_get_ib_log     12
1782 #define isc_action_svc_get_fb_log     12
1783 
1784 #define isc_info_svc_svr_db_info      50
1785 #define isc_info_svc_get_license      51
1786 #define isc_info_svc_get_license_mask 52
1787 #define isc_info_svc_get_config       53
1788 #define isc_info_svc_version          54
1789 #define isc_info_svc_server_version   55
1790 #define isc_info_svc_implementation   56
1791 #define isc_info_svc_capabilities     57
1792 #define isc_info_svc_user_dbpath      58
1793 #define isc_info_svc_get_env          59
1794 #define isc_info_svc_get_env_lock     60
1795 #define isc_info_svc_get_env_msg      61
1796 #define isc_info_svc_line             62
1797 #define isc_info_svc_to_eof           63
1798 #define isc_info_svc_timeout          64
1799 #define isc_info_svc_get_licensed_users 65
1800 #define isc_info_svc_limbo_trans        66
1801 #define isc_info_svc_running            67
1802 #define isc_info_svc_get_users          68
1803 
1804 #define isc_spb_sec_userid            5
1805 #define isc_spb_sec_groupid           6
1806 #define isc_spb_sec_username          7
1807 #define isc_spb_sec_password          8
1808 #define isc_spb_sec_groupname         9
1809 #define isc_spb_sec_firstname         10
1810 #define isc_spb_sec_middlename        11
1811 #define isc_spb_sec_lastname          12
1812 
1813 #define isc_spb_lic_key               5
1814 #define isc_spb_lic_id                6
1815 #define isc_spb_lic_desc              7
1816 
1817 #define isc_spb_bkp_file                 5
1818 #define isc_spb_bkp_factor               6
1819 #define isc_spb_bkp_length               7
1820 #define isc_spb_bkp_ignore_checksums     0x01
1821 #define isc_spb_bkp_ignore_limbo         0x02
1822 #define isc_spb_bkp_metadata_only        0x04
1823 #define isc_spb_bkp_no_garbage_collect   0x08
1824 #define isc_spb_bkp_old_descriptions     0x10
1825 #define isc_spb_bkp_non_transportable    0x20
1826 #define isc_spb_bkp_convert              0x40
1827 #define isc_spb_bkp_expand               0x80
1828 
1829 #define isc_spb_prp_page_buffers                5
1830 #define isc_spb_prp_sweep_interval              6
1831 #define isc_spb_prp_shutdown_db                 7
1832 #define isc_spb_prp_deny_new_attachments        9
1833 #define isc_spb_prp_deny_new_transactions       10
1834 #define isc_spb_prp_reserve_space               11
1835 #define isc_spb_prp_write_mode                  12
1836 #define isc_spb_prp_access_mode                 13
1837 #define isc_spb_prp_set_sql_dialect             14
1838 #define isc_spb_prp_activate                    0x0100
1839 #define isc_spb_prp_db_online                   0x0200
1840 
1841 #define isc_spb_prp_res_use_full        35
1842 #define isc_spb_prp_res                 36
1843 
1844 #define isc_spb_prp_wm_async            37
1845 #define isc_spb_prp_wm_sync                     38
1846 
1847 #define isc_spb_prp_am_readonly         39
1848 #define isc_spb_prp_am_readwrite        40
1849 
1850 #define isc_spb_rpr_commit_trans                15
1851 #define isc_spb_rpr_rollback_trans              34
1852 #define isc_spb_rpr_recover_two_phase   17
1853 #define isc_spb_tra_id                                  18
1854 #define isc_spb_single_tra_id                   19
1855 #define isc_spb_multi_tra_id                    20
1856 #define isc_spb_tra_state                               21
1857 #define isc_spb_tra_state_limbo                 22
1858 #define isc_spb_tra_state_commit                23
1859 #define isc_spb_tra_state_rollback              24
1860 #define isc_spb_tra_state_unknown               25
1861 #define isc_spb_tra_host_site                   26
1862 #define isc_spb_tra_remote_site                 27
1863 #define isc_spb_tra_db_path                             28
1864 #define isc_spb_tra_advise                              29
1865 #define isc_spb_tra_advise_commit               30
1866 #define isc_spb_tra_advise_rollback             31
1867 #define isc_spb_tra_advise_unknown              33
1868 
1869 #define isc_spb_rpr_validate_db                 0x01
1870 #define isc_spb_rpr_sweep_db                    0x02
1871 #define isc_spb_rpr_mend_db                             0x04
1872 #define isc_spb_rpr_list_limbo_trans    0x08
1873 #define isc_spb_rpr_check_db                    0x10
1874 #define isc_spb_rpr_ignore_checksum             0x20
1875 #define isc_spb_rpr_kill_shadows                0x40
1876 #define isc_spb_rpr_full                                0x80
1877 
1878 #define isc_spb_res_buffers                             9
1879 #define isc_spb_res_page_size                   10
1880 #define isc_spb_res_length                              11
1881 #define isc_spb_res_access_mode                 12
1882 #define isc_spb_res_deactivate_idx              0x0100
1883 #define isc_spb_res_no_shadow                   0x0200
1884 #define isc_spb_res_no_validity                 0x0400
1885 #define isc_spb_res_one_at_a_time               0x0800
1886 #define isc_spb_res_replace                             0x1000
1887 #define isc_spb_res_create                              0x2000
1888 #define isc_spb_res_use_all_space               0x4000
1889 
1890 #define isc_spb_res_am_readonly                 isc_spb_prp_am_readonly
1891 #define isc_spb_res_am_readwrite                isc_spb_prp_am_readwrite
1892 
1893 #define isc_spb_num_att                 5
1894 #define isc_spb_num_db                  6
1895 
1896 #define isc_spb_sts_data_pages          0x01
1897 #define isc_spb_sts_db_log                      0x02
1898 #define isc_spb_sts_hdr_pages           0x04
1899 #define isc_spb_sts_idx_pages           0x08
1900 #define isc_spb_sts_sys_relations       0x10
1901 #define isc_spb_sts_record_versions     0x20
1902 #define isc_spb_sts_table                       0x40
1903 #define isc_spb_sts_nocreation          0x80
1904 
1905 #define isc_dyn_version_1                 1
1906 #define isc_dyn_eoc                       255
1907 
1908 #define isc_dyn_begin                     2
1909 #define isc_dyn_end                       3
1910 #define isc_dyn_if                        4
1911 #define isc_dyn_def_database              5
1912 #define isc_dyn_def_global_fld            6
1913 #define isc_dyn_def_local_fld             7
1914 #define isc_dyn_def_idx                   8
1915 #define isc_dyn_def_rel                   9
1916 #define isc_dyn_def_sql_fld               10
1917 #define isc_dyn_def_view                  12
1918 #define isc_dyn_def_trigger               15
1919 #define isc_dyn_def_security_class        120
1920 #define isc_dyn_def_dimension             140
1921 #define isc_dyn_def_generator             24
1922 #define isc_dyn_def_function              25
1923 #define isc_dyn_def_filter                26
1924 #define isc_dyn_def_function_arg          27
1925 #define isc_dyn_def_shadow                34
1926 #define isc_dyn_def_trigger_msg           17
1927 #define isc_dyn_def_file                  36
1928 #define isc_dyn_mod_database              39
1929 #define isc_dyn_mod_rel                   11
1930 #define isc_dyn_mod_global_fld            13
1931 #define isc_dyn_mod_idx                   102
1932 #define isc_dyn_mod_local_fld             14
1933 #define isc_dyn_mod_sql_fld               216
1934 #define isc_dyn_mod_view                  16
1935 #define isc_dyn_mod_security_class        122
1936 #define isc_dyn_mod_trigger               113
1937 #define isc_dyn_mod_trigger_msg           28
1938 #define isc_dyn_delete_database           18
1939 #define isc_dyn_delete_rel                19
1940 #define isc_dyn_delete_global_fld         20
1941 #define isc_dyn_delete_local_fld          21
1942 #define isc_dyn_delete_idx                22
1943 #define isc_dyn_delete_security_class     123
1944 #define isc_dyn_delete_dimensions         143
1945 #define isc_dyn_delete_trigger            23
1946 #define isc_dyn_delete_trigger_msg        29
1947 #define isc_dyn_delete_filter             32
1948 #define isc_dyn_delete_function           33
1949 #define isc_dyn_delete_shadow             35
1950 #define isc_dyn_grant                     30
1951 #define isc_dyn_revoke                    31
1952 #define isc_dyn_def_primary_key           37
1953 #define isc_dyn_def_foreign_key           38
1954 #define isc_dyn_def_unique                40
1955 #define isc_dyn_def_procedure             164
1956 #define isc_dyn_delete_procedure          165
1957 #define isc_dyn_def_parameter             135
1958 #define isc_dyn_delete_parameter          136
1959 #define isc_dyn_mod_procedure             175
1960 
1961 #define isc_dyn_def_exception             181
1962 #define isc_dyn_mod_exception             182
1963 #define isc_dyn_del_exception             183
1964 
1965 #define isc_dyn_def_difference            220
1966 #define isc_dyn_drop_difference           221
1967 #define isc_dyn_begin_backup              222
1968 #define isc_dyn_end_backup                223
1969 #define isc_dyn_debug_info                240
1970 
1971 #define isc_dyn_view_blr                  43
1972 #define isc_dyn_view_source               44
1973 #define isc_dyn_view_relation             45
1974 #define isc_dyn_view_context              46
1975 #define isc_dyn_view_context_name         47
1976 
1977 #define isc_dyn_rel_name                  50
1978 #define isc_dyn_fld_name                  51
1979 #define isc_dyn_new_fld_name              215
1980 #define isc_dyn_idx_name                  52
1981 #define isc_dyn_description               53
1982 #define isc_dyn_security_class            54
1983 #define isc_dyn_system_flag               55
1984 #define isc_dyn_update_flag               56
1985 #define isc_dyn_prc_name                  166
1986 #define isc_dyn_prm_name                  137
1987 #define isc_dyn_sql_object                196
1988 #define isc_dyn_fld_character_set_name    174
1989 
1990 #define isc_dyn_rel_dbkey_length          61
1991 #define isc_dyn_rel_store_trig            62
1992 #define isc_dyn_rel_modify_trig           63
1993 #define isc_dyn_rel_erase_trig            64
1994 #define isc_dyn_rel_store_trig_source     65
1995 #define isc_dyn_rel_modify_trig_source    66
1996 #define isc_dyn_rel_erase_trig_source     67
1997 #define isc_dyn_rel_ext_file              68
1998 #define isc_dyn_rel_sql_protection        69
1999 #define isc_dyn_rel_constraint            162
2000 #define isc_dyn_delete_rel_constraint     163
2001 
2002 #define isc_dyn_rel_temporary                           238
2003 #define isc_dyn_rel_temp_global_preserve        1
2004 #define isc_dyn_rel_temp_global_delete          2
2005 
2006 #define isc_dyn_fld_type                  70
2007 #define isc_dyn_fld_length                71
2008 #define isc_dyn_fld_scale                 72
2009 #define isc_dyn_fld_sub_type              73
2010 #define isc_dyn_fld_segment_length        74
2011 #define isc_dyn_fld_query_header          75
2012 #define isc_dyn_fld_edit_string           76
2013 #define isc_dyn_fld_validation_blr        77
2014 #define isc_dyn_fld_validation_source     78
2015 #define isc_dyn_fld_computed_blr          79
2016 #define isc_dyn_fld_computed_source       80
2017 #define isc_dyn_fld_missing_value         81
2018 #define isc_dyn_fld_default_value         82
2019 #define isc_dyn_fld_query_name            83
2020 #define isc_dyn_fld_dimensions            84
2021 #define isc_dyn_fld_not_null              85
2022 #define isc_dyn_fld_precision             86
2023 #define isc_dyn_fld_char_length           172
2024 #define isc_dyn_fld_collation             173
2025 #define isc_dyn_fld_default_source        193
2026 #define isc_dyn_del_default               197
2027 #define isc_dyn_del_validation            198
2028 #define isc_dyn_single_validation         199
2029 #define isc_dyn_fld_character_set         203
2030 
2031 #define isc_dyn_fld_source                90
2032 #define isc_dyn_fld_base_fld              91
2033 #define isc_dyn_fld_position              92
2034 #define isc_dyn_fld_update_flag           93
2035 
2036 #define isc_dyn_idx_unique                100
2037 #define isc_dyn_idx_inactive              101
2038 #define isc_dyn_idx_type                  103
2039 #define isc_dyn_idx_foreign_key           104
2040 #define isc_dyn_idx_ref_column            105
2041 #define isc_dyn_idx_statistic             204
2042 
2043 #define isc_dyn_trg_type                  110
2044 #define isc_dyn_trg_blr                   111
2045 #define isc_dyn_trg_source                112
2046 #define isc_dyn_trg_name                  114
2047 #define isc_dyn_trg_sequence              115
2048 #define isc_dyn_trg_inactive              116
2049 #define isc_dyn_trg_msg_number            117
2050 #define isc_dyn_trg_msg                   118
2051 
2052 #define isc_dyn_scl_acl                   121
2053 #define isc_dyn_grant_user                130
2054 #define isc_dyn_grant_user_explicit       219
2055 #define isc_dyn_grant_proc                186
2056 #define isc_dyn_grant_trig                187
2057 #define isc_dyn_grant_view                188
2058 #define isc_dyn_grant_options             132
2059 #define isc_dyn_grant_user_group          205
2060 #define isc_dyn_grant_role                218
2061 
2062 #define isc_dyn_dim_lower                 141
2063 #define isc_dyn_dim_upper                 142
2064 
2065 #define isc_dyn_file_name                 125
2066 #define isc_dyn_file_start                126
2067 #define isc_dyn_file_length               127
2068 #define isc_dyn_shadow_number             128
2069 #define isc_dyn_shadow_man_auto           129
2070 #define isc_dyn_shadow_conditional        130
2071 
2072 #define isc_dyn_function_name             145
2073 #define isc_dyn_function_type             146
2074 #define isc_dyn_func_module_name          147
2075 #define isc_dyn_func_entry_point          148
2076 #define isc_dyn_func_return_argument      149
2077 #define isc_dyn_func_arg_position         150
2078 #define isc_dyn_func_mechanism            151
2079 #define isc_dyn_filter_in_subtype         152
2080 #define isc_dyn_filter_out_subtype        153
2081 
2082 #define isc_dyn_description2              154
2083 #define isc_dyn_fld_computed_source2      155
2084 #define isc_dyn_fld_edit_string2          156
2085 #define isc_dyn_fld_query_header2         157
2086 #define isc_dyn_fld_validation_source2    158
2087 #define isc_dyn_trg_msg2                  159
2088 #define isc_dyn_trg_source2               160
2089 #define isc_dyn_view_source2              161
2090 #define isc_dyn_xcp_msg2                  184
2091 
2092 #define isc_dyn_generator_name            95
2093 #define isc_dyn_generator_id              96
2094 
2095 #define isc_dyn_prc_inputs                167
2096 #define isc_dyn_prc_outputs               168
2097 #define isc_dyn_prc_source                169
2098 #define isc_dyn_prc_blr                   170
2099 #define isc_dyn_prc_source2               171
2100 #define isc_dyn_prc_type                  239
2101 
2102 #define isc_dyn_prc_t_selectable          1
2103 #define isc_dyn_prc_t_executable          2
2104 
2105 #define isc_dyn_prm_number                138
2106 #define isc_dyn_prm_type                  139
2107 #define isc_dyn_prm_mechanism             241
2108 
2109 #define isc_dyn_xcp_msg                   185
2110 
2111 #define isc_dyn_foreign_key_update        205
2112 #define isc_dyn_foreign_key_delete        206
2113 #define isc_dyn_foreign_key_cascade       207
2114 #define isc_dyn_foreign_key_default       208
2115 #define isc_dyn_foreign_key_null          209
2116 #define isc_dyn_foreign_key_none          210
2117 
2118 #define isc_dyn_def_sql_role              211
2119 #define isc_dyn_sql_role_name             212
2120 #define isc_dyn_grant_admin_options       213
2121 #define isc_dyn_del_sql_role              214
2122 
2123 #define isc_dyn_delete_generator          217
2124 
2125 #define isc_dyn_mod_function              224
2126 #define isc_dyn_mod_filter                225
2127 #define isc_dyn_mod_generator             226
2128 #define isc_dyn_mod_sql_role              227
2129 #define isc_dyn_mod_charset               228
2130 #define isc_dyn_mod_collation             229
2131 #define isc_dyn_mod_prc_parameter         230
2132 
2133 #define isc_dyn_def_collation                                           231
2134 #define isc_dyn_coll_for_charset                                        232
2135 #define isc_dyn_coll_from                                                       233
2136 #define isc_dyn_coll_from_external                                      239
2137 #define isc_dyn_coll_attribute                                          234
2138 #define isc_dyn_coll_specific_attributes_charset        235
2139 #define isc_dyn_coll_specific_attributes                        236
2140 #define isc_dyn_del_collation                                           237
2141 
2142 #define isc_dyn_last_dyn_value            242
2143 
2144 #define isc_sdl_version1                  1
2145 #define isc_sdl_eoc                       255
2146 #define isc_sdl_relation                  2
2147 #define isc_sdl_rid                       3
2148 #define isc_sdl_field                     4
2149 #define isc_sdl_fid                       5
2150 #define isc_sdl_struct                    6
2151 #define isc_sdl_variable                  7
2152 #define isc_sdl_scalar                    8
2153 #define isc_sdl_tiny_integer              9
2154 #define isc_sdl_short_integer             10
2155 #define isc_sdl_long_integer              11
2156 #define isc_sdl_literal                   12
2157 #define isc_sdl_add                       13
2158 #define isc_sdl_subtract                  14
2159 #define isc_sdl_multiply                  15
2160 #define isc_sdl_divide                    16
2161 #define isc_sdl_negate                    17
2162 #define isc_sdl_eql                       18
2163 #define isc_sdl_neq                       19
2164 #define isc_sdl_gtr                       20
2165 #define isc_sdl_geq                       21
2166 #define isc_sdl_lss                       22
2167 #define isc_sdl_leq                       23
2168 #define isc_sdl_and                       24
2169 #define isc_sdl_or                        25
2170 #define isc_sdl_not                       26
2171 #define isc_sdl_while                     27
2172 #define isc_sdl_assignment                28
2173 #define isc_sdl_label                     29
2174 #define isc_sdl_leave                     30
2175 #define isc_sdl_begin                     31
2176 #define isc_sdl_end                       32
2177 #define isc_sdl_do3                       33
2178 #define isc_sdl_do2                       34
2179 #define isc_sdl_do1                       35
2180 #define isc_sdl_element                   36
2181 
2182 #define isc_interp_eng_ascii              0
2183 #define isc_interp_jpn_sjis               5
2184 #define isc_interp_jpn_euc                6
2185 
2186 #define isc_blob_untyped                  0
2187 
2188 #define isc_blob_text                     1
2189 #define isc_blob_blr                      2
2190 #define isc_blob_acl                      3
2191 #define isc_blob_ranges                   4
2192 #define isc_blob_summary                  5
2193 #define isc_blob_format                   6
2194 #define isc_blob_tra                      7
2195 #define isc_blob_extfile                  8
2196 #define isc_blob_debug_info               9
2197 #define isc_blob_max_predefined_subtype   10
2198 
2199 #define isc_blob_formatted_memo           20
2200 #define isc_blob_paradox_ole              21
2201 #define isc_blob_graphic                  22
2202 #define isc_blob_dbase_ole                23
2203 #define isc_blob_typed_binary             24
2204 
2205 #define isc_info_db_SQL_dialect           62
2206 #define isc_dpb_SQL_dialect               63
2207 #define isc_dpb_set_db_SQL_dialect        65
2208 
2209 #define fb_dbg_version                          1
2210 #define fb_dbg_end                                      255
2211 #define fb_dbg_map_src2blr                      2
2212 #define fb_dbg_map_varname                      3
2213 #define fb_dbg_map_argument                     4
2214 
2215 #define fb_dbg_arg_input                        0
2216 #define fb_dbg_arg_output                       1
2217 
2218 #endif
2219 
2220 /*********************************/
2221 /* Information call declarations */
2222 /*********************************/
2223 
2224 
2225 #ifndef JRD_INF_PUB_H
2226 #define JRD_INF_PUB_H
2227 
2228 #define isc_info_end                    1
2229 #define isc_info_truncated              2
2230 #define isc_info_error                  3
2231 #define isc_info_data_not_ready           4
2232 #define isc_info_length                 126
2233 #define isc_info_flag_end               127
2234 
2235 enum db_info_types
2236 {
2237         isc_info_db_id                  = 4,
2238         isc_info_reads                  = 5,
2239         isc_info_writes             = 6,
2240         isc_info_fetches                = 7,
2241         isc_info_marks                  = 8,
2242 
2243         isc_info_implementation = 11,
2244         isc_info_isc_version            = 12,
2245         isc_info_base_level             = 13,
2246         isc_info_page_size              = 14,
2247         isc_info_num_buffers    = 15,
2248         isc_info_limbo                  = 16,
2249         isc_info_current_memory = 17,
2250         isc_info_max_memory             = 18,
2251         isc_info_window_turns   = 19,
2252         isc_info_license                = 20,
2253 
2254         isc_info_allocation             = 21,
2255         isc_info_attachment_id   = 22,
2256         isc_info_read_seq_count = 23,
2257         isc_info_read_idx_count = 24,
2258         isc_info_insert_count           = 25,
2259         isc_info_update_count           = 26,
2260         isc_info_delete_count           = 27,
2261         isc_info_backout_count          = 28,
2262         isc_info_purge_count            = 29,
2263         isc_info_expunge_count          = 30,
2264 
2265         isc_info_sweep_interval = 31,
2266         isc_info_ods_version            = 32,
2267         isc_info_ods_minor_version      = 33,
2268         isc_info_no_reserve             = 34,
2269 
2270         isc_info_logfile                = 35,
2271         isc_info_cur_logfile_name       = 36,
2272         isc_info_cur_log_part_offset    = 37,
2273         isc_info_num_wal_buffers        = 38,
2274         isc_info_wal_buffer_size        = 39,
2275         isc_info_wal_ckpt_length        = 40,
2276 
2277         isc_info_wal_cur_ckpt_interval = 41,
2278         isc_info_wal_prv_ckpt_fname     = 42,
2279         isc_info_wal_prv_ckpt_poffset   = 43,
2280         isc_info_wal_recv_ckpt_fname    = 44,
2281         isc_info_wal_recv_ckpt_poffset = 45,
2282         isc_info_wal_grpc_wait_usecs    = 47,
2283         isc_info_wal_num_io             = 48,
2284         isc_info_wal_avg_io_size        = 49,
2285         isc_info_wal_num_commits        = 50,
2286         isc_info_wal_avg_grpc_size      = 51,
2287 
2288         isc_info_forced_writes          = 52,
2289         isc_info_user_names = 53,
2290         isc_info_page_errors = 54,
2291         isc_info_record_errors = 55,
2292         isc_info_bpage_errors = 56,
2293         isc_info_dpage_errors = 57,
2294         isc_info_ipage_errors = 58,
2295         isc_info_ppage_errors = 59,
2296         isc_info_tpage_errors = 60,
2297 
2298         isc_info_set_page_buffers = 61,
2299         isc_info_db_sql_dialect = 62,
2300         isc_info_db_read_only = 63,
2301         isc_info_db_size_in_pages = 64,
2302 
2303         frb_info_att_charset = 101,
2304         isc_info_db_class = 102,
2305         isc_info_firebird_version = 103,
2306         isc_info_oldest_transaction = 104,
2307         isc_info_oldest_active = 105,
2308         isc_info_oldest_snapshot = 106,
2309         isc_info_next_transaction = 107,
2310         isc_info_db_provider = 108,
2311         isc_info_active_transactions = 109,
2312         isc_info_active_tran_count = 110,
2313         isc_info_creation_date = 111,
2314         isc_info_db_file_size = 112,
2315 
2316         isc_info_db_last_value
2317 };
2318 
2319 #define isc_info_version isc_info_isc_version
2320 
2321 enum  info_db_implementations
2322 {
2323         isc_info_db_impl_rdb_vms = 1,
2324         isc_info_db_impl_rdb_eln = 2,
2325         isc_info_db_impl_rdb_eln_dev = 3,
2326         isc_info_db_impl_rdb_vms_y = 4,
2327         isc_info_db_impl_rdb_eln_y = 5,
2328         isc_info_db_impl_jri = 6,
2329         isc_info_db_impl_jsv = 7,
2330 
2331         isc_info_db_impl_isc_apl_68K = 25,
2332         isc_info_db_impl_isc_vax_ultr = 26,
2333         isc_info_db_impl_isc_vms = 27,
2334         isc_info_db_impl_isc_sun_68k = 28,
2335         isc_info_db_impl_isc_os2 = 29,
2336         isc_info_db_impl_isc_sun4 = 30,
2337 
2338         isc_info_db_impl_isc_hp_ux = 31,
2339         isc_info_db_impl_isc_sun_386i = 32,
2340         isc_info_db_impl_isc_vms_orcl = 33,
2341         isc_info_db_impl_isc_mac_aux = 34,
2342         isc_info_db_impl_isc_rt_aix = 35,
2343         isc_info_db_impl_isc_mips_ult = 36,
2344         isc_info_db_impl_isc_xenix = 37,
2345         isc_info_db_impl_isc_dg = 38,
2346         isc_info_db_impl_isc_hp_mpexl = 39,
2347         isc_info_db_impl_isc_hp_ux68K = 40,
2348 
2349         isc_info_db_impl_isc_sgi = 41,
2350         isc_info_db_impl_isc_sco_unix = 42,
2351         isc_info_db_impl_isc_cray = 43,
2352         isc_info_db_impl_isc_imp = 44,
2353         isc_info_db_impl_isc_delta = 45,
2354         isc_info_db_impl_isc_next = 46,
2355         isc_info_db_impl_isc_dos = 47,
2356         isc_info_db_impl_m88K = 48,
2357         isc_info_db_impl_unixware = 49,
2358         isc_info_db_impl_isc_winnt_x86 = 50,
2359 
2360         isc_info_db_impl_isc_epson = 51,
2361         isc_info_db_impl_alpha_osf = 52,
2362         isc_info_db_impl_alpha_vms = 53,
2363         isc_info_db_impl_netware_386 = 54,
2364         isc_info_db_impl_win_only = 55,
2365         isc_info_db_impl_ncr_3000 = 56,
2366         isc_info_db_impl_winnt_ppc = 57,
2367         isc_info_db_impl_dg_x86 = 58,
2368         isc_info_db_impl_sco_ev = 59,
2369         isc_info_db_impl_i386 = 60,
2370 
2371         isc_info_db_impl_freebsd = 61,
2372         isc_info_db_impl_netbsd = 62,
2373         isc_info_db_impl_darwin_ppc = 63,
2374         isc_info_db_impl_sinixz = 64,
2375 
2376         isc_info_db_impl_linux_sparc = 65,
2377         isc_info_db_impl_linux_amd64 = 66,
2378 
2379         isc_info_db_impl_freebsd_amd64 = 67,
2380 
2381         isc_info_db_impl_winnt_amd64 = 68,
2382 
2383         isc_info_db_impl_linux_ppc = 69,
2384         isc_info_db_impl_darwin_x86 = 70,
2385         isc_info_db_impl_linux_mipsel = 71,
2386         isc_info_db_impl_linux_mips = 72,
2387         isc_info_db_impl_darwin_x64 = 73,
2388         isc_info_db_impl_sun_amd64 = 74,
2389 
2390         isc_info_db_impl_linux_arm = 75,
2391         isc_info_db_impl_linux_ia64 = 76,
2392 
2393         isc_info_db_impl_last_value
2394 };
2395 
2396 #define isc_info_db_impl_isc_a            isc_info_db_impl_isc_apl_68K
2397 #define isc_info_db_impl_isc_u            isc_info_db_impl_isc_vax_ultr
2398 #define isc_info_db_impl_isc_v            isc_info_db_impl_isc_vms
2399 #define isc_info_db_impl_isc_s            isc_info_db_impl_isc_sun_68k
2400 
2401 enum info_db_class
2402 {
2403         isc_info_db_class_access = 1,
2404         isc_info_db_class_y_valve = 2,
2405         isc_info_db_class_rem_int = 3,
2406         isc_info_db_class_rem_srvr = 4,
2407         isc_info_db_class_pipe_int = 7,
2408         isc_info_db_class_pipe_srvr = 8,
2409         isc_info_db_class_sam_int = 9,
2410         isc_info_db_class_sam_srvr = 10,
2411         isc_info_db_class_gateway = 11,
2412         isc_info_db_class_cache = 12,
2413         isc_info_db_class_classic_access = 13,
2414         isc_info_db_class_server_access = 14,
2415 
2416         isc_info_db_class_last_value
2417 };
2418 
2419 enum info_db_provider
2420 {
2421         isc_info_db_code_rdb_eln = 1,
2422         isc_info_db_code_rdb_vms = 2,
2423         isc_info_db_code_interbase = 3,
2424         isc_info_db_code_firebird = 4,
2425 
2426         isc_info_db_code_last_value
2427 };
2428 
2429 #define isc_info_number_messages        4
2430 #define isc_info_max_message            5
2431 #define isc_info_max_send               6
2432 #define isc_info_max_receive            7
2433 #define isc_info_state                  8
2434 #define isc_info_message_number 9
2435 #define isc_info_message_size           10
2436 #define isc_info_request_cost           11
2437 #define isc_info_access_path            12
2438 #define isc_info_req_select_count       13
2439 #define isc_info_req_insert_count       14
2440 #define isc_info_req_update_count       15
2441 #define isc_info_req_delete_count       16
2442 
2443 #define isc_info_rsb_end                0
2444 #define isc_info_rsb_begin              1
2445 #define isc_info_rsb_type               2
2446 #define isc_info_rsb_relation           3
2447 #define isc_info_rsb_plan                       4
2448 
2449 #define isc_info_rsb_unknown            1
2450 #define isc_info_rsb_indexed            2
2451 #define isc_info_rsb_navigate           3
2452 #define isc_info_rsb_sequential 4
2453 #define isc_info_rsb_cross              5
2454 #define isc_info_rsb_sort               6
2455 #define isc_info_rsb_first              7
2456 #define isc_info_rsb_boolean            8
2457 #define isc_info_rsb_union              9
2458 #define isc_info_rsb_aggregate          10
2459 #define isc_info_rsb_merge              11
2460 #define isc_info_rsb_ext_sequential     12
2461 #define isc_info_rsb_ext_indexed        13
2462 #define isc_info_rsb_ext_dbkey          14
2463 #define isc_info_rsb_left_cross 15
2464 #define isc_info_rsb_select             16
2465 #define isc_info_rsb_sql_join           17
2466 #define isc_info_rsb_simulate           18
2467 #define isc_info_rsb_sim_cross          19
2468 #define isc_info_rsb_once               20
2469 #define isc_info_rsb_procedure          21
2470 #define isc_info_rsb_skip               22
2471 #define isc_info_rsb_virt_sequential    23
2472 #define isc_info_rsb_recursive  24
2473 
2474 #define isc_info_rsb_and                1
2475 #define isc_info_rsb_or         2
2476 #define isc_info_rsb_dbkey              3
2477 #define isc_info_rsb_index              4
2478 
2479 #define isc_info_req_active             2
2480 #define isc_info_req_inactive           3
2481 #define isc_info_req_send               4
2482 #define isc_info_req_receive            5
2483 #define isc_info_req_select             6
2484 #define isc_info_req_sql_stall          7
2485 
2486 #define isc_info_blob_num_segments      4
2487 #define isc_info_blob_max_segment       5
2488 #define isc_info_blob_total_length      6
2489 #define isc_info_blob_type              7
2490 
2491 #define isc_info_tra_id                                         4
2492 #define isc_info_tra_oldest_interesting         5
2493 #define isc_info_tra_oldest_snapshot            6
2494 #define isc_info_tra_oldest_active                      7
2495 #define isc_info_tra_isolation                          8
2496 #define isc_info_tra_access                                     9
2497 #define isc_info_tra_lock_timeout                       10
2498 
2499 #define isc_info_tra_consistency                1
2500 #define isc_info_tra_concurrency                2
2501 #define isc_info_tra_read_committed             3
2502 
2503 #define isc_info_tra_no_rec_version             0
2504 #define isc_info_tra_rec_version                1
2505 
2506 #define isc_info_tra_readonly   0
2507 #define isc_info_tra_readwrite  1
2508 
2509 #define isc_info_sql_select             4
2510 #define isc_info_sql_bind               5
2511 #define isc_info_sql_num_variables      6
2512 #define isc_info_sql_describe_vars      7
2513 #define isc_info_sql_describe_end       8
2514 #define isc_info_sql_sqlda_seq          9
2515 #define isc_info_sql_message_seq        10
2516 #define isc_info_sql_type               11
2517 #define isc_info_sql_sub_type           12
2518 #define isc_info_sql_scale              13
2519 #define isc_info_sql_length             14
2520 #define isc_info_sql_null_ind           15
2521 #define isc_info_sql_field              16
2522 #define isc_info_sql_relation           17
2523 #define isc_info_sql_owner              18
2524 #define isc_info_sql_alias              19
2525 #define isc_info_sql_sqlda_start        20
2526 #define isc_info_sql_stmt_type          21
2527 #define isc_info_sql_get_plan             22
2528 #define isc_info_sql_records              23
2529 #define isc_info_sql_batch_fetch          24
2530 #define isc_info_sql_relation_alias             25
2531 
2532 #define isc_info_sql_stmt_select          1
2533 #define isc_info_sql_stmt_insert          2
2534 #define isc_info_sql_stmt_update          3
2535 #define isc_info_sql_stmt_delete          4
2536 #define isc_info_sql_stmt_ddl             5
2537 #define isc_info_sql_stmt_get_segment     6
2538 #define isc_info_sql_stmt_put_segment     7
2539 #define isc_info_sql_stmt_exec_procedure  8
2540 #define isc_info_sql_stmt_start_trans     9
2541 #define isc_info_sql_stmt_commit          10
2542 #define isc_info_sql_stmt_rollback        11
2543 #define isc_info_sql_stmt_select_for_upd  12
2544 #define isc_info_sql_stmt_set_generator   13
2545 #define isc_info_sql_stmt_savepoint       14
2546 
2547 #endif
2548 
2549 
2550 #include "iberror.h"
2551 
2552 #endif /* JRD_IBASE_H */
2553 
2554