8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-22 18:03:03 +01:00
firebird-mirror/lang_helpers/gds.hxx
2004-04-27 15:55:05 +00:00

1017 lines
46 KiB
C++

/*
* The contents of this file are subject to the Interbase Public
* License Version 1.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy
* of the License at http://www.Inprise.com/IPL.html
*
* Software distributed under the License is distributed on an
* "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express
* or implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code was created by Inprise Corporation
* and its predecessors. Portions created by Inprise Corporation are
* Copyright (C) Inprise Corporation.
*
* All Rights Reserved.
* Contributor(s): ______________________________________.
*
* 2002.02.15 Sean Leyne - Code Cleanup, removed obsolete "MAC" port
* 2002.02.15 Sean Leyne - Code Cleanup, removed obsolete "OS/2" port
*
*/
/*
* PROGRAM: C preprocessor
* MODULE: gds.hxx
* DESCRIPTION: BLR constants for C++
*/
#define gds_version3
#define GDS_TRUE 1
#define GDS_FALSE 0
typedef long gds_db_handle;
typedef long gds_req_handle;
typedef long gds_tr_handle;
typedef long gds_blob_handle;
typedef long gds_win_handle;
typedef long gds_form_handle;
typedef long gds_stmt_handle;
typedef void (*gds_callback)();
typedef struct {
long gds_quad_high;
unsigned long gds_quad_low;
} GDS_QUAD;
typedef struct {
short array_bound_lower;
short array_bound_upper;
} ISC_ARRAY_BOUND;
typedef struct {
unsigned char array_desc_dtype;
char array_desc_scale;
unsigned short array_desc_length;
char array_desc_field_name [32];
char array_desc_relation_name [32];
short array_desc_dimensions;
short array_desc_flags;
ISC_ARRAY_BOUND array_desc_bounds [16];
} ISC_ARRAY_DESC;
/* Dynamic SQL definitions */
typedef struct {
short sqltype;
short sqllen;
char *sqldata;
short *sqlind;
short sqlname_length;
char sqlname [30];
} SQLVAR;
typedef struct {
char sqldaid [8];
long sqldabc;
short sqln;
short sqld;
SQLVAR sqlvar [1];
} SQLDA;
#define SQLDA_LENGTH(n) (sizeof (SQLDA) + (n-1) * sizeof (SQLVAR))
/* Extended SQLDA */
typedef struct {
short sqltype;
short sqlscale;
short sqlsubtype;
short sqllen;
char *sqldata;
short *sqlind;
short sqlname_length;
char sqlname [32];
short relname_length;
char relname [32];
short ownname_length;
char ownname [32];
short aliasname_length;
char aliasname [32];
} XSQLVAR;
const char SQLDA_VERSION1 = 1;
typedef struct {
short version;
char sqldaid [8];
long sqldabc;
short sqln;
short sqld;
XSQLVAR sqlvar [1];
} XSQLDA;
#define XSQLDA_LENGTH(n) (sizeof (XSQLDA) + (n-1) * sizeof (XSQLVAR))
#ifdef _Windows
typedef struct {
unsigned short length;
char string[];
} VARYING;
#endif
#define GDS_STATUS long
#ifdef _Windows
#define GDS_EXPORT far cdecl _loadds _export
#else
#define GDS_EXPORT
#endif
extern "C" {
GDS_STATUS GDS_EXPORT isc_attach_database (long*, short, char*, gds_db_handle*, short, char*);
GDS_STATUS GDS_EXPORT isc_blob_info (long*, gds_blob_handle*, short, char*, short, char*);
GDS_STATUS GDS_EXPORT isc_cancel_blob (long*, gds_blob_handle*);
GDS_STATUS GDS_EXPORT isc_close_blob (long*, gds_blob_handle*);
GDS_STATUS GDS_EXPORT isc_commit_transaction (long*, gds_tr_handle*);
GDS_STATUS GDS_EXPORT isc_compile_request (long*, gds_db_handle*, gds_req_handle*, short, char*);
GDS_STATUS GDS_EXPORT isc_compile_request2 (long*, gds_db_handle*, gds_req_handle*, short, char*);
GDS_STATUS GDS_EXPORT isc_create_blob (long*, gds_db_handle*, gds_tr_handle*, gds_blob_handle*, GDS_QUAD*);
GDS_STATUS GDS_EXPORT isc_create_blob2 (long*, gds_db_handle*, gds_tr_handle*, gds_blob_handle*, GDS_QUAD*, short, char*);
GDS_STATUS GDS_EXPORT isc_create_database (long*, short, char*, gds_db_handle*, short, char*, short);
GDS_STATUS GDS_EXPORT isc_database_info (long*, gds_db_handle*, short, char*, short, char*);
GDS_STATUS GDS_EXPORT isc_detach_database (long*, gds_db_handle*);
GDS_STATUS GDS_EXPORT isc_get_segment (long*, gds_blob_handle*, unsigned short*, short, char*);
GDS_STATUS GDS_EXPORT isc_open_blob (long*, gds_db_handle*, gds_tr_handle*, gds_blob_handle*, GDS_QUAD*);
GDS_STATUS GDS_EXPORT isc_open_blob2 (long*, gds_db_handle*, gds_tr_handle*, gds_blob_handle*, GDS_QUAD*, short, char*);
GDS_STATUS GDS_EXPORT isc_prepare_transaction (long*, gds_tr_handle*);
GDS_STATUS GDS_EXPORT isc_prepare_transaction2 (long*, gds_tr_handle*, short, char*);
GDS_STATUS GDS_EXPORT isc_put_segment (long*, gds_blob_handle*, short, char*);
GDS_STATUS GDS_EXPORT isc_receive (long*, gds_req_handle*, short, short, void*, short);
GDS_STATUS GDS_EXPORT isc_reconnect_transaction (long*, gds_db_handle*, gds_tr_handle*, short, char*);
GDS_STATUS GDS_EXPORT isc_request_info (long*, gds_req_handle*, short, short, char*, short, char*);
GDS_STATUS GDS_EXPORT isc_release_request (long*, gds_req_handle*);
GDS_STATUS GDS_EXPORT isc_rollback_transaction (long*, gds_tr_handle*);
GDS_STATUS GDS_EXPORT isc_seek_blob (long*, gds_blob_handle*, short, long, long*);
GDS_STATUS GDS_EXPORT isc_send (long*, gds_req_handle*, short, short, void*, short);
GDS_STATUS GDS_EXPORT isc_start_and_send (long*, gds_req_handle*, gds_tr_handle*, short, short, void*, short);
GDS_STATUS GDS_EXPORT isc_start_multiple (long*, gds_tr_handle*, short, void*);
GDS_STATUS GDS_EXPORT isc_start_request (long*, gds_req_handle*, gds_tr_handle*, short);
GDS_STATUS GDS_EXPORT isc_start_transaction (long*, gds_tr_handle*, short, ...);
GDS_STATUS GDS_EXPORT isc_transaction_info (long*, gds_tr_handle*, short, char*, short, char*);
GDS_STATUS GDS_EXPORT isc_unwind_request (long*, gds_tr_handle*, short);
GDS_STATUS GDS_EXPORT isc_interprete (char*, long**);
GDS_STATUS GDS_EXPORT isc_interprete_cpp(char* const buffer, const long**);
GDS_STATUS GDS_EXPORT isc_sql_interprete (short, char*, short);
GDS_STATUS GDS_EXPORT isc_print_sql_error (long, long*);
GDS_STATUS GDS_EXPORT isc_print_status (long*);
GDS_STATUS GDS_EXPORT isc_sqlcode (long*);
GDS_STATUS GDS_EXPORT isc_ddl (long*, gds_db_handle*, gds_tr_handle*, short, char*);
GDS_STATUS GDS_EXPORT isc_commit_retaining (long*, gds_tr_handle*);
GDS_STATUS GDS_EXPORT isc_que_events (long*, gds_db_handle*, long*, short, char*, gds_callback, void*);
GDS_STATUS GDS_EXPORT isc_cancel_events (long*, gds_db_handle*, long*);
GDS_STATUS GDS_EXPORT isc_wait_for_event (long*, gds_db_handle*, short, char*, char*);
GDS_STATUS GDS_EXPORT isc_event_counts (long*, short, char*, char*);
GDS_STATUS GDS_EXPORT isc_event_block (char**, char**, short, ...);
GDS_STATUS GDS_EXPORT isc_get_slice (long*, gds_db_handle*, gds_tr_handle*, GDS_QUAD*, short, char*, short, long*,
long, void*, long*);
GDS_STATUS GDS_EXPORT isc_put_slice (long*, gds_db_handle*, gds_tr_handle*, GDS_QUAD*, short, char*, short, long*,
long, void*);
GDS_STATUS GDS_EXPORT isc_ddl (long*, gds_db_handle*, gds_tr_handle*, short, char*);
}
extern "C" {
GDS_STATUS GDS_EXPORT isc_prepare (long*, gds_db_handle*, gds_tr_handle*, char*, short*, char*, SQLDA*);
GDS_STATUS GDS_EXPORT isc_declare (long*, char*, char*);
GDS_STATUS GDS_EXPORT isc_open (long*, gds_tr_handle*, char*, SQLDA*);
GDS_STATUS GDS_EXPORT isc_fetch (long*, char*, SQLDA*);
GDS_STATUS GDS_EXPORT isc_close (long*, char*);
GDS_STATUS GDS_EXPORT isc_describe (long*, char*, SQLDA*);
GDS_STATUS GDS_EXPORT isc_describe_bind (long*, char*, SQLDA*);
GDS_STATUS GDS_EXPORT isc_dsql_finish (long*);
GDS_STATUS GDS_EXPORT isc_dsql_release (long*, char*);
GDS_STATUS GDS_EXPORT isc_execute (long*, gds_tr_handle*, char*, SQLDA*);
GDS_STATUS GDS_EXPORT isc_execute_immediate (long*, gds_db_handle*, gds_tr_handle*, short*, char*);
GDS_STATUS GDS_EXPORT isc_array_get_slice (long*, long*, long*, GDS_QUAD*, ISC_ARRAY_DESC*, void*, long*);
GDS_STATUS GDS_EXPORT isc_array_lookup_bounds (long*, long*, long*, char*, char*, ISC_ARRAY_DESC*);
GDS_STATUS GDS_EXPORT isc_array_lookup_desc (long*, long*, long*, char*, char*, ISC_ARRAY_DESC*);
GDS_STATUS GDS_EXPORT isc_array_set_desc (long*, char*, char*, short*, short*, short*, ISC_ARRAY_DESC*);
GDS_STATUS GDS_EXPORT isc_array_put_slice (long*, long*, long*, GDS_QUAD*, ISC_ARRAY_DESC*, void*, long*);
}
extern "C" {
GDS_STATUS GDS_EXPORT isc_dsql_allocate_statement (long*, gds_db_handle*, gds_stmt_handle*);
GDS_STATUS GDS_EXPORT isc_dsql_describe (long*, gds_stmt_handle*, short, void*);
GDS_STATUS GDS_EXPORT isc_dsql_describe_bind (long*, gds_stmt_handle*, short, void*);
GDS_STATUS GDS_EXPORT isc_dsql_execute (long*, gds_tr_handle*, gds_stmt_handle*, short, void*);
GDS_STATUS GDS_EXPORT isc_dsql_execute_m (long*, gds_tr_handle*, gds_stmt_handle*, short, char*, short, short, char*);
GDS_STATUS GDS_EXPORT isc_dsql_execute_immediate (long*, gds_db_handle*, gds_tr_handle*, short, char*, short, void*);
GDS_STATUS GDS_EXPORT isc_dsql_execute_immediate_m (long*, gds_db_handle*, gds_tr_handle*, short, char*, short,
short, char*, short, short, char*);
GDS_STATUS GDS_EXPORT isc_dsql_fetch (long*, gds_stmt_handle*, short, void*);
GDS_STATUS GDS_EXPORT isc_dsql_fetch_m (long*, gds_stmt_handle*, short, char*, short, short, char*);
GDS_STATUS GDS_EXPORT isc_dsql_free_statement (long*, gds_stmt_handle*, short);
GDS_STATUS GDS_EXPORT isc_dsql_prepare (long*, gds_tr_handle*, gds_stmt_handle*, short, char*, short, void*);
GDS_STATUS GDS_EXPORT isc_dsql_prepare_m (long*, gds_tr_handle*, gds_stmt_handle*, short, char*, short,
short, char*, short, char*);
GDS_STATUS GDS_EXPORT isc_dsql_set_cursor_name (long*, gds_stmt_handle*, char*, short);
GDS_STATUS GDS_EXPORT isc_dsql_sql_info (long*, gds_stmt_handle*, short, char*, short, char*);
GDS_STATUS GDS_EXPORT isc_embed_dsql_close (long*, char*);
GDS_STATUS GDS_EXPORT isc_embed_dsql_declare (long*, char*, char*);
GDS_STATUS GDS_EXPORT isc_embed_dsql_describe (long*, char*, short, void*);
GDS_STATUS GDS_EXPORT isc_embed_dsql_describe_bind (long*, char*, short, void*);
GDS_STATUS GDS_EXPORT isc_embed_dsql_execute (long*, gds_tr_handle*, char*, short, void*);
GDS_STATUS GDS_EXPORT isc_embed_dsql_execute_immed (long*, gds_db_handle*, gds_tr_handle*, short, char*, short, void*);
GDS_STATUS GDS_EXPORT isc_embed_dsql_fetch (long*, char*, short, void*);
GDS_STATUS GDS_EXPORT isc_embed_dsql_open (long*, gds_tr_handle*, char*, short, void*);
GDS_STATUS GDS_EXPORT isc_embed_dsql_prepare (long*, gds_db_handle*, gds_tr_handle*, char*, short, char*, short, void*);
GDS_STATUS GDS_EXPORT isc_embed_dsql_release (long*, char*);
}
extern "C" {
GDS_STATUS GDS_EXPORT BLOB_edit (GDS_QUAD*, gds_db_handle, gds_tr_handle, char*);
GDS_STATUS GDS_EXPORT BLOB_display (GDS_QUAD*, gds_db_handle, gds_tr_handle, char*);
GDS_STATUS GDS_EXPORT BLOB_load (GDS_QUAD*, gds_db_handle, gds_tr_handle, char*);
GDS_STATUS GDS_EXPORT BLOB_dump (GDS_QUAD*, gds_db_handle, gds_tr_handle, char*);
}
extern "C" {
GDS_STATUS GDS_EXPORT isc_initialize_menu (long*, gds_req_handle*);
GDS_STATUS GDS_EXPORT isc_put_entree (long*, gds_req_handle*, short*, char*, long*);
GDS_STATUS GDS_EXPORT isc_get_entree (long*, gds_req_handle*, short*, char*, long*, short*);
GDS_STATUS GDS_EXPORT isc_drive_menu (long*, gds_win_handle*, gds_req_handle*, short*, char*, short*, char*, short*,
short*, char*, long*);
GDS_STATUS GDS_EXPORT isc_drive_form (long*, gds_db_handle*, gds_tr_handle*, gds_win_handle*, gds_req_handle*,
void*, void*);
GDS_STATUS GDS_EXPORT isc_load_form (long*, gds_db_handle*, gds_tr_handle*, gds_form_handle*, short*, char*);
GDS_STATUS GDS_EXPORT isc_compile_map (long*, gds_form_handle*, gds_req_handle*, short*, char*);
GDS_STATUS GDS_EXPORT isc_compile_menu (long*, gds_form_handle*, gds_req_handle*, short*, char*);
GDS_STATUS GDS_EXPORT isc_compile_sub_map (long*, gds_win_handle*, gds_req_handle*, short*, char*);
GDS_STATUS GDS_EXPORT isc_form_fetch (long*, gds_db_handle*, gds_tr_handle*, gds_req_handle*, void*);
GDS_STATUS GDS_EXPORT isc_form_delete (long*, gds_form_handle*);
GDS_STATUS GDS_EXPORT isc_form_insert (long*, gds_db_handle*, gds_tr_handle*, gds_req_handle*, void*);
GDS_STATUS GDS_EXPORT isc_reset_form (long*, gds_req_handle*);
GDS_STATUS GDS_EXPORT isc_delete_window (long*, gds_win_handle*);
GDS_STATUS GDS_EXPORT isc_pop_window (long*, gds_win_handle*);
GDS_STATUS GDS_EXPORT isc_suspend_window (long*, gds_win_handle*);
GDS_STATUS GDS_EXPORT isc_create_window (long*, gds_win_handle*, short*, char*, short*, short*);
GDS_STATUS GDS_EXPORT isc_menu (long*, gds_win_handle*, gds_req_handle*, short*, char*);
}
extern "C" {
void GDS_EXPORT isc_ftof (char*, short, char*, short);
GDS_STATUS GDS_EXPORT isc_print_blr (char*, gds_callback, void*, short);
void GDS_EXPORT isc_qtoq (GDS_QUAD*, GDS_QUAD*);
void GDS_EXPORT isc_vtof (char*, char*, short);
void GDS_EXPORT isc_vtov (char*, char*, short);
void GDS_EXPORT isc_version (gds_db_handle*, gds_callback, long);
GDS_STATUS GDS_EXPORT isc_vax_integer (const char*, short);
void GDS_EXPORT isc_set_debug (long);
GDS_STATUS GDS_EXPORT isc_encode_date (const void*, GDS_QUAD*);
GDS_STATUS GDS_EXPORT isc_decode_date (const GDS_QUAD*, void*);
GDS_STATUS GDS_EXPORT isc_free (long*);
void GDS_EXPORT isc_extend_dpb (char**, short*, char*, char*);
}
#define blr_word(n) (n % 256), (n / 256)
const char blr_text = 14;
const char blr_short = 7;
const char blr_long = 8;
const char blr_quad = 9;
const char blr_float = 10;
const char blr_double = 27;
const char blr_d_float = 11;
const char blr_date = 35;
const char blr_varying = 37;
const short blr_blob = 261;
const char blr_cstring = 40;
const char blr_blob_id = 45;
const char blr_inner = 0;
const char blr_left = 1;
const char blr_right = 2;
const char blr_full = 3;
const char blr_version4 = 4;
const char blr_eoc = 76;
const char blr_end = -1;
const char blr_assignment = 1;
const char blr_begin = 2;
const char blr_dcl_variable = 3;
const char blr_message = 4;
const char blr_erase = 5;
const char blr_fetch = 6;
const char blr_for = 7;
const char blr_if = 8;
const char blr_loop = 9;
const char blr_modify = 10;
const char blr_handler = 11;
const char blr_receive = 12;
const char blr_select = 13;
const char blr_send = 14;
const char blr_store = 15;
const char blr_label = 17;
const char blr_leave = 18;
const char blr_store2 = 19;
const char blr_post = 20;
const char blr_literal = 21;
const char blr_dbkey = 22;
const char blr_field = 23;
const char blr_fid = 24;
const char blr_parameter = 25;
const char blr_variable = 26;
const char blr_average = 27;
const char blr_count = 28;
const char blr_maximum = 29;
const char blr_minimum = 30;
const char blr_total = 31;
const char blr_add = 34;
const char blr_subtract = 35;
const char blr_multiply = 36;
const char blr_divide = 37;
const char blr_negate = 38;
const char blr_concatenate = 39;
const char blr_substring = 40;
const char blr_parameter2 = 41;
const char blr_from = 42;
const char blr_via = 43;
const char blr_user_name = 44;
const char blr_null = 45;
const char blr_eql = 47;
const char blr_neq = 48;
const char blr_gtr = 49;
const char blr_geq = 50;
const char blr_lss = 51;
const char blr_leq = 52;
const char blr_containing = 53;
const char blr_matching = 54;
const char blr_starting = 55;
const char blr_between = 56;
const char blr_or = 57;
const char blr_and = 58;
const char blr_not = 59;
const char blr_any = 60;
const char blr_missing = 61;
const char blr_unique = 62;
const char blr_like = 63;
const char blr_stream = 65;
const char blr_set_index = 66;
const char blr_rse = 67;
const char blr_first = 68;
const char blr_project = 69;
const char blr_sort = 70;
const char blr_boolean = 71;
const char blr_ascending = 72;
const char blr_descending = 73;
const char blr_relation = 74;
const char blr_rid = 75;
const char blr_union = 76;
const char blr_map = 77;
const char blr_group_by = 78;
const char blr_aggregate = 79;
const char blr_join_type = 80;
const char blr_agg_count = 83;
const char blr_agg_max = 84;
const char blr_agg_min = 85;
const char blr_agg_total = 86;
const char blr_agg_average = 87;
const char blr_run_count = 88;
const char blr_run_max = 89;
const char blr_run_min = 90;
const char blr_run_total = 91;
const char blr_run_average = 92;
const char blr_function = 100;
const char blr_gen_id = 101;
const char blr_prot_mask = 102;
const char blr_upcase = 103;
const char blr_lock_state = 104;
const char blr_value_if = 105;
const char blr_matching2 = 106;
const char blr_index = 107;
const char blr_ansi_like = 108;
const char blr_bookmark = 109;
const char blr_crack = 110;
const char blr_force_crack = 111;
const char blr_seek = 112;
const char blr_find = 113;
const char blr_lock_relation = 114;
const char blr_lock_record = 115;
const char blr_set_bookmark = 116;
const char blr_get_bookmark = 117;
const char blr_rs_stream = 119;
const char blr_exec_proc = 120;
const char blr_begin_range = 121;
const char blr_end_range = 122;
const char blr_delete_range = 123;
/* Database parameter block stuff */
const char gds_dpb_version1 = 1;
const char gds_dpb_cdd_pathname = 1;
const char gds_dpb_allocation = 2;
const char gds_dpb_journal = 3;
const char gds_dpb_page_size = 4;
const char gds_dpb_num_buffers = 5;
const char gds_dpb_buffer_length = 6;
const char gds_dpb_debug = 7;
const char gds_dpb_garbage_collect = 8;
const char gds_dpb_verify = 9;
const char gds_dpb_sweep = 10;
const char gds_dpb_enable_journal = 11;
const char gds_dpb_disable_journal = 12;
const char gds_dpb_dbkey_scope = 13;
const char gds_dpb_number_of_users = 14;
const char gds_dpb_trace = 15;
const char gds_dpb_no_garbage_collect = 16;
const char gds_dpb_damaged = 17;
const char gds_dpb_license = 18;
const char gds_dpb_sys_user_name = 19;
const char gds_dpb_encrypt_key = 20;
const char gds_dpb_activate_shadow = 21;
const char gds_dpb_sweep_interval = 22;
const char gds_dpb_delete_shadow = 23;
const char gds_dpb_force_write = 24;
const char gds_dpb_begin_log = 25;
const char gds_dpb_quit_log = 26;
const char gds_dpb_no_reserve = 27;
const char gds_dpb_user_name = 28;
const char gds_dpb_password = 29;
const char gds_dpb_password_enc = 30;
const char gds_dpb_sys_user_name_enc = 31;
const char gds_dpb_pages = 1;
const char gds_dpb_records = 2;
const char gds_dpb_indices = 4;
const char gds_dpb_transactions = 8;
const char gds_dpb_no_update = 16;
const char gds_dpb_repair = 32;
const char gds_dpb_ignore = 64;
/* Bit assignments in RDB$SYSTEM_FLAG */
const char RDB_system = 1;
const char RDB_id_assigned = 2;
/* Transaction parameter blob stuff */
const char gds_tpb_version1 = 1;
const char gds_tpb_version3 = 3;
const char gds_tpb_consistency = 1;
const char gds_tpb_concurrency = 2;
const char gds_tpb_shared = 3;
const char gds_tpb_protected = 4;
const char gds_tpb_exclusive = 5;
const char gds_tpb_wait = 6;
const char gds_tpb_nowait = 7;
const char gds_tpb_read = 8;
const char gds_tpb_write = 9;
const char gds_tpb_lock_read = 10;
const char gds_tpb_lock_write = 11;
const char gds_tpb_verb_time = 12;
const char gds_tpb_commit_time = 13;
const char gds_tpb_ignore_limbo = 14;
/* Blob Parameter Block */
const char gds_bpb_version1 = 1;
const char gds_bpb_source_type = 1;
const char gds_bpb_target_type = 2;
const char gds_bpb_type = 3;
const char gds_bpb_type_segmented = 0;
const char gds_bpb_type_stream = 1;
/* Blob stream stuff */
typedef struct bstream {
int *bstr_blob; /* Blob handle */
char *bstr_buffer; /* Address of buffer */
char *bstr_ptr; /* Next character */
short bstr_length; /* Length of buffer */
short bstr_cnt; /* Characters in buffer */
char bstr_mode; /* (mode) ? OUTPUT : INPUT */
} BSTREAM;
#define getb(p) (--(p)->bstr_cnt >= 0 ? *(p)->bstr_ptr++ & 0377: BLOB_get (p))
#define putb(x,p) ((x == '\n' || (!(--(p)->bstr_cnt))) ? BLOB_put (x,p) : ((int) (*(p)->bstr_ptr++ = (unsigned) (x))))
#define putbx(x,p) ((!(--(p)->bstr_cnt)) ? BLOB_put (x,p) : ((int) (*(p)->bstr_ptr++ = (unsigned) (x))))
extern "C" {
BSTREAM *Bopen (GDS_QUAD*, gds_db_handle, gds_tr_handle, char*);
BSTREAM *BLOB_open (gds_blob_handle, char*, char*);
}
extern "C" {
int GDS_EXPORT BLOB_close (BSTREAM*);
int GDS_EXPORT BLOB_get (BSTREAM*);
int GDS_EXPORT BLOB_put (int, BSTREAM*);
}
/* Information call declarations */
/* Common, structural codes */
const char gds_info_end = 1;
const char gds_info_truncated = 2;
const char gds_info_error = 3;
/* Database information items */
const char gds_info_db_id = 4;
const char gds_info_reads = 5;
const char gds_info_writes = 6;
const char gds_info_fetches = 7;
const char gds_info_marks = 8;
const char gds_info_implementation = 11;
const char gds_info_version = 12;
const char gds_info_base_level = 13;
const char gds_info_page_size = 14;
const char gds_info_num_buffers = 15;
const char gds_info_limbo = 16;
const char gds_info_current_memory = 17;
const char gds_info_max_memory = 18;
const char gds_info_window_turns = 19;
const char gds_info_license = 20;
const char gds_info_allocation = 21;
const char gds_info_attachment_id = 22;
const char gds_info_read_seq_count = 23;
const char gds_info_read_idx_count = 24;
const char gds_info_insert_count = 25;
const char gds_info_update_count = 26;
const char gds_info_delete_count = 27;
const char gds_info_backout_count = 28;
const char gds_info_purge_count = 29;
const char gds_info_expunge_count = 30;
const char gds_info_sweep_interval = 31;
const char gds_info_ods_version = 32;
const char gds_info_ods_minor_version = 33;
const char gds_info_no_reserve = 34;
/* Database Info Return Values */
const char gds_info_db_impl_rdb_vms = 1;
const char gds_info_db_impl_rdb_eln = 2;
const char gds_info_db_impl_rdb_eln_dev = 3;
const char gds_info_db_impl_rdb_vms_y = 4;
const char gds_info_db_impl_rdb_eln_y = 5;
const char gds_info_db_impl_jri = 6;
const char gds_info_db_impl_jsv = 7;
const char gds_info_db_impl_isc_a = 25;
const char gds_info_db_impl_isc_u = 26;
const char gds_info_db_impl_isc_v = 27;
const char gds_info_db_impl_isc_s = 28;
const char gds_info_db_impl_isc_apl_68K = 25;
const char gds_info_db_impl_isc_vax_ultr = 26;
const char gds_info_db_impl_isc_vms = 27;
const char gds_info_db_impl_isc_sun_68k = 28;
const char gds_info_db_impl_isc_sun4 = 30;
const char gds_info_db_impl_isc_hp_ux = 31;
const char gds_info_db_impl_isc_sun_386i = 32;
const char gds_info_db_impl_isc_vms_orcl = 33;
const char gds_info_db_impl_isc_rt_aix = 35;
const char gds_info_db_impl_isc_mips_ult = 36;
const char gds_info_db_impl_isc_apl_dn10 = 37;
const char gds_info_db_class_access = 1;
const char gds_info_db_class_y_valve = 2;
const char gds_info_db_class_rem_int = 3;
const char gds_info_db_class_rem_srvr = 4;
const char gds_info_db_class_pipe_int = 7;
const char gds_info_db_class_pipe_srvr = 8;
const char gds_info_db_class_sam_int = 9;
const char gds_info_db_class_sam_srvr = 10;
const char gds_info_db_class_gateway = 11;
/* Request information items */
const char gds_info_number_messages = 4;
const char gds_info_max_message = 5;
const char gds_info_max_send = 6;
const char gds_info_max_receive = 7;
const char gds_info_state = 8;
const char gds_info_message_number = 9;
const char gds_info_message_size = 10;
const char gds_info_request_cost = 11;
const char gds_info_req_active = 2;
const char gds_info_req_inactive = 3;
const char gds_info_req_send = 4;
const char gds_info_req_receive = 5;
const char gds_info_req_select = 6;
/* Blob information items */
const char gds_info_blob_num_segments = 4;
const char gds_info_blob_max_segment = 5;
const char gds_info_blob_total_length = 6;
const char gds_info_blob_type = 7;
/* Transaction information items */
const char gds_info_tra_id = 4;
/* SQL information items */
const char gds_info_sql_select = 4;
const char gds_info_sql_bind = 5;
const char gds_info_sql_num_variables = 6;
const char gds_info_sql_describe_vars = 7;
const char gds_info_sql_describe_end = 8;
const char gds_info_sql_sqlda_seq = 9;
const char gds_info_sql_message_seq = 10;
const char gds_info_sql_type = 11;
const char gds_info_sql_sub_type = 12;
const char gds_info_sql_scale = 13;
const char gds_info_sql_length = 14;
const char gds_info_sql_null_ind = 15;
const char gds_info_sql_field = 16;
const char gds_info_sql_relation = 17;
const char gds_info_sql_owner = 18;
const char gds_info_sql_alias = 19;
const char gds_info_sql_sqlda_start = 20;
const char gds_info_sql_stmt_type = 21;
/* SQL information return values */
const char gds_info_sql_stmt_select = 1;
const char gds_info_sql_stmt_insert = 2;
const char gds_info_sql_stmt_update = 3;
const char gds_info_sql_stmt_delete = 4;
const char gds_info_sql_stmt_ddl = 5;
const char gds_info_sql_stmt_commit = 10;
const char gds_info_sql_stmt_rollback = 11;
const char gds_info_sql_stmt_select_for_upd = 12;
/* Error codes */
const long gds_facility = 20;
const long gds_err_base = 335544320L;
const long gds_err_factor = 1;
const long gds_arg_end = 0;
const long gds_arg_gds = 1;
const long gds_arg_string = 2;
const long gds_arg_cstring = 3;
const long gds_arg_number = 4;
const long gds_arg_interpreted = 5;
const long gds_arg_vms = 6;
const long gds_arg_unix = 7;
const long gds_arg_domain = 8;
const long gds_arg_dos = 9;
const long gds_arg_mpexl = 10;
const long gds_arith_except = 335544321L;
const long gds_bad_dbkey = 335544322L;
const long gds_bad_db_format = 335544323L;
const long gds_bad_db_handle = 335544324L;
const long gds_bad_dpb_content = 335544325L;
const long gds_bad_dpb_form = 335544326L;
const long gds_bad_req_handle = 335544327L;
const long gds_bad_segstr_handle = 335544328L;
const long gds_bad_segstr_id = 335544329L;
const long gds_bad_tpb_content = 335544330L;
const long gds_bad_tpb_form = 335544331L;
const long gds_bad_trans_handle = 335544332L;
const long gds_bug_check = 335544333L;
const long gds_convert_error = 335544334L;
const long gds_db_corrupt = 335544335L;
const long gds_deadlock = 335544336L;
const long gds_excess_trans = 335544337L;
const long gds_from_no_match = 335544338L;
const long gds_infinap = 335544339L;
const long gds_infona = 335544340L;
const long gds_infunk = 335544341L;
const long gds_integ_fail = 335544342L;
const long gds_invalid_blr = 335544343L;
const long gds_io_error = 335544344L;
const long gds_lock_conflict = 335544345L;
const long gds_metadata_corrupt = 335544346L;
const long gds_not_valid = 335544347L;
const long gds_no_cur_rec = 335544348L;
const long gds_no_dup = 335544349L;
const long gds_no_finish = 335544350L;
const long gds_no_meta_update = 335544351L;
const long gds_no_priv = 335544352L;
const long gds_no_recon = 335544353L;
const long gds_no_record = 335544354L;
const long gds_no_segstr_close = 335544355L;
const long gds_obsolete_metadata = 335544356L;
const long gds_open_trans = 335544357L;
const long gds_port_len = 335544358L;
const long gds_read_only_field = 335544359L;
const long gds_read_only_rel = 335544360L;
const long gds_read_only_trans = 335544361L;
const long gds_read_only_view = 335544362L;
const long gds_req_no_trans = 335544363L;
const long gds_req_sync = 335544364L;
const long gds_req_wrong_db = 335544365L;
const long gds_segment = 335544366L;
const long gds_segstr_eof = 335544367L;
const long gds_segstr_no_op = 335544368L;
const long gds_segstr_no_read = 335544369L;
const long gds_segstr_no_trans = 335544370L;
const long gds_segstr_no_write = 335544371L;
const long gds_segstr_wrong_db = 335544372L;
const long gds_sys_request = 335544373L;
const long gds_stream_eof = 335544374L;
const long gds_unavailable = 335544375L;
const long gds_unres_rel = 335544376L;
const long gds_uns_ext = 335544377L;
const long gds_wish_list = 335544378L;
const long gds_wrong_ods = 335544379L;
const long gds_wronumarg = 335544380L;
const long gds_imp_exc = 335544381L;
const long gds_random = 335544382L;
const long gds_fatal_conflict = 335544383L;
/* Minor codes subject to change */
const long gds_badblk = 335544384L;
const long gds_invpoolcl = 335544385L;
const long gds_nopoolids = 335544386L;
const long gds_relbadblk = 335544387L;
const long gds_blktoobig = 335544388L;
const long gds_bufexh = 335544389L;
const long gds_syntaxerr = 335544390L;
const long gds_bufinuse = 335544391L;
const long gds_bdbincon = 335544392L;
const long gds_reqinuse = 335544393L;
const long gds_badodsver = 335544394L;
const long gds_relnotdef = 335544395L;
const long gds_fldnotdef = 335544396L;
const long gds_dirtypage = 335544397L;
const long gds_waifortra = 335544398L;
const long gds_doubleloc = 335544399L;
const long gds_nodnotfnd = 335544400L;
const long gds_dupnodfnd = 335544401L;
const long gds_locnotmar = 335544402L;
const long gds_badpagtyp = 335544403L;
const long gds_corrupt = 335544404L;
const long gds_badpage = 335544405L;
const long gds_badindex = 335544406L;
const long gds_dbbnotzer = 335544407L;
const long gds_tranotzer = 335544408L;
const long gds_trareqmis = 335544409L;
const long gds_badhndcnt = 335544410L;
const long gds_wrotpbver = 335544411L;
const long gds_wroblrver = 335544412L;
const long gds_wrodpbver = 335544413L;
const long gds_blobnotsup = 335544414L;
const long gds_badrelation = 335544415L;
const long gds_nodetach = 335544416L;
const long gds_notremote = 335544417L;
const long gds_trainlim = 335544418L;
const long gds_notinlim = 335544419L;
const long gds_traoutsta = 335544420L;
const long gds_connect_reject = 335544421L;
const long gds_dbfile = 335544422L;
const long gds_orphan = 335544423L;
const long gds_no_lock_mgr = 335544424L;
const long gds_ctxinuse = 335544425L;
const long gds_ctxnotdef = 335544426L;
const long gds_datnotsup = 335544427L;
const long gds_badmsgnum = 335544428L;
const long gds_badparnum = 335544429L;
const long gds_virmemexh = 335544430L;
const long gds_blocking_signal = 335544431L;
const long gds_lockmanerr = 335544432L;
const long gds_journerr = 335544433L;
const long gds_keytoobig = 335544434L;
const long gds_nullsegkey = 335544435L;
const long gds_sqlerr = 335544436L;
const long gds_wrodynver = 335544437L;
const long gds_funnotdef = 335544438L;
const long gds_funmismat = 335544439L;
const long gds_bad_msg_vec = 335544440L;
const long gds_bad_detach = 335544441L;
const long gds_noargacc_read = 335544442L;
const long gds_noargacc_write = 335544443L;
const long gds_read_only = 335544444L;
const long gds_ext_err = 335544445L;
const long gds_non_updatable = 335544446L;
const long gds_no_rollback = 335544447L;
const long gds_bad_sec_info = 335544448L;
const long gds_invalid_sec_info = 335544449L;
const long gds_misc_interpreted = 335544450L;
const long gds_update_conflict = 335544451L;
const long gds_unlicensed = 335544452L;
const long gds_obj_in_use = 335544453L;
const long gds_nofilter = 335544454L;
const long gds_shadow_accessed = 335544455L;
const long gds_invalid_sdl = 335544456L;
const long gds_out_of_bounds = 335544457L;
const long gds_invalid_dimension = 335544458L;
const long gds_rec_in_limbo = 335544459L;
const long gds_shadow_missing = 335544460L;
const long gds_cant_validate = 335544461L;
const long gds_cant_start_journal = 335544462L;
const long gds_gennotdef = 335544463L;
const long gds_cant_start_logging = 335544464L;
const long gds_bad_segstr_type = 335544465L;
const long gds_foreign_key = 335544466L;
const long gds_high_minor = 335544467L;
const long gds_tra_state = 335544468L;
const long gds_trans_invalid = 335544469L;
const long gds_buf_invalid = 335544470L;
/* Dynamic Data Definition Language operators */
/* Version number */
const char gds_dyn_version_1 = 1;
const char gds_dyn_eoc = -1;
/* Operations (may be nested) */
const char gds_dyn_begin = 2;
const char gds_dyn_end = 3;
const char gds_dyn_if = 4;
const char gds_dyn_def_database = 5;
const char gds_dyn_def_global_fld = 6;
const char gds_dyn_def_local_fld = 7;
const char gds_dyn_def_idx = 8;
const char gds_dyn_def_rel = 9;
const char gds_dyn_def_sql_fld = 10;
const char gds_dyn_def_view = 12;
const char gds_dyn_def_trigger = 15;
const char gds_dyn_def_security_class = 120;
const char gds_dyn_def_dimension = 140;
const char gds_dyn_mod_rel = 11;
const char gds_dyn_mod_global_fld = 13;
const char gds_dyn_mod_idx = 102;
const char gds_dyn_mod_local_fld = 14;
const char gds_dyn_mod_view = 16;
const char gds_dyn_mod_security_class = 122;
const char gds_dyn_mod_trigger = 113;
const char gds_dyn_delete_database = 18;
const char gds_dyn_delete_rel = 19;
const char gds_dyn_delete_global_fld = 20;
const char gds_dyn_delete_local_fld = 21;
const char gds_dyn_delete_idx = 22;
const char gds_dyn_delete_security_class = 123;
const char gds_dyn_delete_dimensions = 143;
const char gds_dyn_grant = 30;
const char gds_dyn_revoke = 31;
const char gds_dyn_def_primary_key = 37;
const char gds_dyn_def_foreign_key = 38;
/* View specific stuff */
const char gds_dyn_view_blr = 43;
const char gds_dyn_view_source = 44;
const char gds_dyn_view_relation = 45;
const char gds_dyn_view_context = 46;
const char gds_dyn_view_context_name = 47;
/* Generic attributes */
const char gds_dyn_rel_name = 50;
const char gds_dyn_fld_name = 51;
const char gds_dyn_idx_name = 52;
const char gds_dyn_description = 53;
const char gds_dyn_security_class = 54;
const char gds_dyn_system_flag = 55;
const char gds_dyn_update_flag = 56;
/* Relation specific attributes */
const char gds_dyn_rel_dbkey_length = 61;
const char gds_dyn_rel_store_trig = 62;
const char gds_dyn_rel_modify_trig = 63;
const char gds_dyn_rel_erase_trig = 64;
const char gds_dyn_rel_store_trig_source = 65;
const char gds_dyn_rel_modify_trig_source = 66;
const char gds_dyn_rel_erase_trig_source = 67;
const char gds_dyn_rel_ext_file = 68;
const char gds_dyn_rel_sql_protection = 69;
/* Global field specific attributes */
const char gds_dyn_fld_type = 70;
const char gds_dyn_fld_length = 71;
const char gds_dyn_fld_scale = 72;
const char gds_dyn_fld_sub_type = 73;
const char gds_dyn_fld_segment_length = 74;
const char gds_dyn_fld_query_header = 75;
const char gds_dyn_fld_edit_string = 76;
const char gds_dyn_fld_validation_blr = 77;
const char gds_dyn_fld_validation_source = 78;
const char gds_dyn_fld_computed_blr = 79;
const char gds_dyn_fld_computed_source = 80;
const char gds_dyn_fld_missing_value = 81;
const char gds_dyn_fld_default_value = 82;
const char gds_dyn_fld_query_name = 83;
const char gds_dyn_fld_dimensions = 84;
/* Local field specific attributes */
const char gds_dyn_fld_source = 90;
const char gds_dyn_fld_base_fld = 91;
const char gds_dyn_fld_position = 92;
const char gds_dyn_fld_update_flag = 93;
/* Index specific attributes */
const char gds_dyn_idx_unique = 100;
const char gds_dyn_idx_inactive = 101;
const char gds_dyn_idx_type = 103;
const char gds_dyn_idx_foreign_key = 104;
const char gds_dyn_idx_ref_column = 105;
/* Trigger specific attributes */
const char gds_dyn_trg_type = 110;
const char gds_dyn_trg_blr = 111;
const char gds_dyn_trg_source = 112;
const char gds_dyn_trg_name = 114;
const char gds_dyn_trg_sequence = 115;
const char gds_dyn_trg_inactive = 116;
const char gds_dyn_trg_msg_number = 117;
const char gds_dyn_trg_msg = 118;
/* Security Class specific attributes */
const char gds_dyn_scl_acl = 121;
const char gds_dyn_grant_user = 130;
const char gds_dyn_grant_options = 132;
/* Dimension specific information */
const char gds_dyn_dim_lower = 141;
const char gds_dyn_dim_upper = 142;
/* File specific attributes */
const char gds_dyn_file_name = 125;
const char gds_dyn_file_start = 126;
const char gds_dyn_file_length = 127;
const char gds_dyn_shadow_number = 128;
const char gds_dyn_shadow_man_auto = 129;
const char gds_dyn_shadow_conditional = 130;
/* Function specific attributes */
const char gds_dyn_function_name = 145;
const char gds_dyn_function_type = 146;
const char gds_dyn_func_module_name = 147;
const char gds_dyn_func_entry_point = 148;
const char gds_dyn_func_return_argument = 149;
const char gds_dyn_func_arg_position = 150;
const char gds_dyn_func_mechanism = 151;
const char gds_dyn_filter_in_subtype = 152;
const char gds_dyn_filter_out_subtype = 153;
/* Generator specific attributes */
const char gds_dyn_generator_name = 95;
const char gds_dyn_generator_id = 96;
/* Array slice description language (SDL) */
const unsigned char gds_sdl_version1 = 1;
const unsigned char gds_sdl_eoc = 0xFF;
const unsigned char gds_sdl_relation = 2;
const unsigned char gds_sdl_rid = 3;
const unsigned char gds_sdl_field = 4;
const unsigned char gds_sdl_fid = 5;
const unsigned char gds_sdl_struct = 6;
const unsigned char gds_sdl_variable = 7;
const unsigned char gds_sdl_scalar = 8;
const unsigned char gds_sdl_tiny_integer = 9;
const unsigned char gds_sdl_short_integer = 10;
const unsigned char gds_sdl_long_integer = 11;
const unsigned char gds_sdl_literal = 12;
const unsigned char gds_sdl_add = 13;
const unsigned char gds_sdl_subtract = 14;
const unsigned char gds_sdl_multiply = 15;
const unsigned char gds_sdl_divide = 16;
const unsigned char gds_sdl_negate = 17;
const unsigned char gds_sdl_eql = 18;
const unsigned char gds_sdl_neq = 19;
const unsigned char gds_sdl_gtr = 20;
const unsigned char gds_sdl_geq = 21;
const unsigned char gds_sdl_lss = 22;
const unsigned char gds_sdl_leq = 23;
const unsigned char gds_sdl_and = 24;
const unsigned char gds_sdl_or = 25;
const unsigned char gds_sdl_not = 26;
const unsigned char gds_sdl_while = 27;
const unsigned char gds_sdl_assignment = 28;
const unsigned char gds_sdl_label = 29;
const unsigned char gds_sdl_leave = 30;
const unsigned char gds_sdl_begin = 31;
const unsigned char gds_sdl_end = 32;
const unsigned char gds_sdl_do3 = 33;
const unsigned char gds_sdl_do2 = 34;
const unsigned char gds_sdl_do1 = 35;
const unsigned char gds_sdl_element = 36;
const short SQL_TEXT = 452;
const short SQL_VARYING = 448;
const short SQL_SHORT = 500;
const short SQL_LONG = 496;
const short SQL_FLOAT = 482;
const short SQL_DOUBLE = 480;
const short SQL_DATE = 510;
const short SQL_BLOB = 520;