mirror of
https://github.com/FirebirdSQL/firebird.git
synced 2025-01-23 05:23:03 +01:00
-Rollback
This commit is contained in:
parent
1b02024c27
commit
0dbaf0453b
120
src/dudley/ddl.h
120
src/dudley/ddl.h
@ -87,33 +87,31 @@ enum act_t {
|
||||
|
||||
struct dbb;
|
||||
|
||||
struct act {
|
||||
typedef struct act {
|
||||
enum act_t act_type; // what to do
|
||||
act* act_next; // next action in system
|
||||
dbb* act_object; // object in question (dudley_rel, dudley_fld, idx, etc.)
|
||||
USHORT act_line; // line the action started on
|
||||
USHORT act_flags;
|
||||
};
|
||||
typedef act* ACT;
|
||||
} *ACT;
|
||||
|
||||
const int ACT_ignore = 1; // Ignore the action
|
||||
|
||||
|
||||
/* Context block */
|
||||
|
||||
struct dudley_ctx {
|
||||
typedef struct dudley_ctx {
|
||||
struct sym* ctx_name;
|
||||
struct dudley_rel* ctx_relation;
|
||||
struct dudley_fld* ctx_field;
|
||||
USHORT ctx_view_rse;
|
||||
USHORT ctx_context_id;
|
||||
};
|
||||
typedef dudley_ctx* DUDLEY_CTX;
|
||||
} *DUDLEY_CTX;
|
||||
|
||||
|
||||
/* Database Definition Block */
|
||||
|
||||
struct dbb {
|
||||
typedef struct dbb {
|
||||
struct sym* dbb_name;
|
||||
struct dudley_rel* dbb_relations;
|
||||
struct gfl* dbb_fields;
|
||||
@ -133,9 +131,8 @@ struct dbb {
|
||||
SSHORT dbb_numbufs;
|
||||
SSHORT dbb_bufsize;
|
||||
SLONG dbb_grp_cmt_wait;
|
||||
fil* dbb_cache_file;
|
||||
};
|
||||
typedef dbb* DBB;
|
||||
struct fil* dbb_cache_file;
|
||||
} *DBB;
|
||||
|
||||
enum dbb_flags_vals {
|
||||
DBB_null_description = 1,
|
||||
@ -157,7 +154,7 @@ enum ods_versions {
|
||||
|
||||
/* Field block. Fields are what farms and databases are all about */
|
||||
|
||||
struct dudley_fld {
|
||||
typedef struct dudley_fld {
|
||||
SSHORT fld_dtype; /* data type of field */
|
||||
SSHORT fld_length; /* field length in bytes */
|
||||
SSHORT fld_scale; /* scale factor */
|
||||
@ -188,8 +185,7 @@ struct dudley_fld {
|
||||
struct txt* fld_compute_src; /* computed_by source */
|
||||
struct txt* fld_valid_src; /* validation source */
|
||||
SLONG* fld_ranges; /* ranges for multi-dim. array */
|
||||
};
|
||||
typedef dudley_fld* DUDLEY_FLD;
|
||||
} *DUDLEY_FLD;
|
||||
|
||||
enum fld_flags_vals {
|
||||
fld_explicit_position = 1,
|
||||
@ -208,7 +204,7 @@ enum fld_flags_vals {
|
||||
|
||||
/* File description block */
|
||||
|
||||
struct fil {
|
||||
typedef struct fil {
|
||||
SLONG fil_length; /* File length in pages */
|
||||
SLONG fil_start; /* Starting page */
|
||||
struct sym* fil_name; /* File name */
|
||||
@ -218,26 +214,24 @@ struct fil {
|
||||
SSHORT fil_partitions; /* number of log file partitions */
|
||||
SSHORT fil_raw; /* on raw device? */
|
||||
SSHORT fil_conditional; /* flag to indicate conditional shadow */
|
||||
};
|
||||
typedef fil* FIL;
|
||||
} *FIL;
|
||||
|
||||
|
||||
/* Filter block */
|
||||
|
||||
struct filter {
|
||||
typedef struct filter {
|
||||
struct sym* filter_name; /* symbol for filter name */
|
||||
struct txt* filter_description; /* description of filter */
|
||||
struct sym* filter_module_name; /* symbol for module name */
|
||||
struct sym* filter_entry_point; /* symbol for entrypoint */
|
||||
SSHORT filter_input_sub_type;
|
||||
SSHORT filter_output_sub_type;
|
||||
};
|
||||
typedef filter* FILTER;
|
||||
} *FILTER;
|
||||
|
||||
|
||||
/* Function argument block. */
|
||||
|
||||
struct funcarg {
|
||||
typedef struct funcarg {
|
||||
struct sym* funcarg_funcname; /* symbol for function name */
|
||||
SSHORT funcarg_position; /* argument position */
|
||||
SSHORT funcarg_mechanism; /* argument passed by value, or by reference */
|
||||
@ -248,8 +242,7 @@ struct funcarg {
|
||||
SSHORT funcarg_sub_type; /* sub_type of text */
|
||||
SSHORT funcarg_has_sub_type; /* null field for sub_type field */
|
||||
funcarg* funcarg_next; /* next field in function */
|
||||
};
|
||||
typedef funcarg* FUNCARG;
|
||||
} *FUNCARG;
|
||||
|
||||
enum funcarg_mechanism_vals {
|
||||
FUNCARG_mechanism_value = 0,
|
||||
@ -262,7 +255,7 @@ enum funcarg_mechanism_vals {
|
||||
|
||||
/* Function description block */
|
||||
|
||||
struct func {
|
||||
typedef struct func {
|
||||
struct sym* func_name; /* symbol for function name */
|
||||
struct sym* func_query_name; /* symbol for query name */
|
||||
struct sym* func_module_name; /* symbol for module name */
|
||||
@ -273,8 +266,7 @@ struct func {
|
||||
struct txt* func_description; /* description of function */
|
||||
funcarg* func_args; /* Known function arguments */
|
||||
funcarg* func_return; /* Return argument */
|
||||
};
|
||||
typedef func* FUNC;
|
||||
} *FUNC;
|
||||
|
||||
|
||||
/* Index description block */
|
||||
@ -285,7 +277,7 @@ enum idx_direction
|
||||
IDX_type_descend = 1
|
||||
};
|
||||
|
||||
struct dudley_idx {
|
||||
typedef struct dudley_idx {
|
||||
USHORT idx_count; /* Number of fields */
|
||||
bool idx_unique; /* true if unique index */
|
||||
bool idx_inactive; /* false if index is active */
|
||||
@ -295,8 +287,7 @@ struct dudley_idx {
|
||||
struct sym* idx_relation; /* Relation in question */
|
||||
struct txt* idx_description; /* Description pointer */
|
||||
struct sym* idx_field[1]; /* Fields */
|
||||
};
|
||||
typedef dudley_idx* DUDLEY_IDX;
|
||||
} *DUDLEY_IDX;
|
||||
|
||||
enum idx_flags_vals {
|
||||
IDX_active_flag = 1,
|
||||
@ -348,13 +339,12 @@ enum nod_t {
|
||||
nod_set_generator, nod_index
|
||||
};
|
||||
|
||||
struct dudley_nod {
|
||||
typedef struct dudley_nod {
|
||||
enum nod_t nod_type; /* node type */
|
||||
UCHAR* nod_blr; /* symbolic blr string */
|
||||
SSHORT nod_count; /* number of sub-items */
|
||||
dudley_nod* nod_arg[1]; /* argument */
|
||||
};
|
||||
typedef dudley_nod* DUDLEY_NOD;
|
||||
} *DUDLEY_NOD;
|
||||
|
||||
static inline size_t NOD_LEN(const size_t cnt)
|
||||
{
|
||||
@ -364,7 +354,7 @@ static inline size_t NOD_LEN(const size_t cnt)
|
||||
|
||||
/* Relation block, not to be confused with siblings or in-laws */
|
||||
|
||||
struct dudley_rel {
|
||||
typedef struct dudley_rel {
|
||||
dbb* rel_database; /* parent database */
|
||||
struct sym* rel_filename; /* external filename */
|
||||
dudley_fld* rel_fields; /* linked list of known fields */
|
||||
@ -377,8 +367,7 @@ struct dudley_rel {
|
||||
USHORT rel_field_position; /* highest used field position */
|
||||
SSHORT rel_system; /* 0 if relation is user defined */
|
||||
USHORT rel_flags;
|
||||
};
|
||||
typedef dudley_rel* DUDLEY_REL;
|
||||
} *DUDLEY_REL;
|
||||
|
||||
enum rel_flags_values {
|
||||
rel_null_description = 1,
|
||||
@ -393,24 +382,22 @@ enum rel_flags_values {
|
||||
|
||||
/* Security class handling */
|
||||
|
||||
struct scl {
|
||||
typedef struct scl {
|
||||
struct sym* scl_name; /* name of security class */
|
||||
struct txt* scl_description; /* description of security class */
|
||||
struct sce* scl_entries; /* list of entries */
|
||||
};
|
||||
typedef scl* SCL;
|
||||
} *SCL;
|
||||
|
||||
const int SCL_write = 2;
|
||||
|
||||
/* Security entry */
|
||||
|
||||
struct sce {
|
||||
typedef struct sce {
|
||||
sce* sce_next; /* next security item in list */
|
||||
SLONG sce_privileges; /* bitmask of privileges */
|
||||
UCHAR* sce_idents[20]; /* misc identification stuff */
|
||||
UCHAR sce_strings[1];
|
||||
};
|
||||
typedef sce* SCE;
|
||||
} *SCE;
|
||||
|
||||
|
||||
/* String block for build DYN & BLR strings */
|
||||
@ -443,7 +430,7 @@ enum sym_t {
|
||||
SYM_trigger /* any named element deserves to be hashed */
|
||||
};
|
||||
|
||||
struct sym {
|
||||
typedef struct sym {
|
||||
TEXT* sym_string; /* address of asciz string */
|
||||
SSHORT sym_length; /* length of string (exc. term.) */
|
||||
enum sym_t sym_type; /* symbol type */
|
||||
@ -452,8 +439,7 @@ struct sym {
|
||||
sym* sym_collision; /* collision pointer */
|
||||
sym* sym_homonym; /* homonym pointer */
|
||||
TEXT sym_name[1]; /* space for name, if necessary */
|
||||
};
|
||||
typedef sym* SYM;
|
||||
} *SYM;
|
||||
|
||||
const size_t SYM_LEN = sizeof(sym);
|
||||
|
||||
@ -461,7 +447,7 @@ const size_t SYM_LEN = sizeof(sym);
|
||||
|
||||
/* these are the externally visible trigger types */
|
||||
|
||||
enum TRG_T {
|
||||
typedef enum {
|
||||
trg_type_none = 0, /* pre store */
|
||||
trg_store = 1, /* pre store */
|
||||
trg_post_store = 2,
|
||||
@ -469,7 +455,7 @@ enum TRG_T {
|
||||
trg_post_modify = 4,
|
||||
trg_pre_erase = 5,
|
||||
trg_erase = 6 /* post erase */
|
||||
};
|
||||
} TRG_T;
|
||||
|
||||
/* these types are used in parsing */
|
||||
|
||||
@ -482,7 +468,7 @@ enum parse_trig_types {
|
||||
trig_inact = 16
|
||||
};
|
||||
|
||||
struct dudley_trg {
|
||||
typedef struct dudley_trg {
|
||||
TRG_T trg_type;
|
||||
DUDLEY_REL trg_relation;
|
||||
DUDLEY_NOD trg_statement; /* blr */
|
||||
@ -492,8 +478,7 @@ struct dudley_trg {
|
||||
SSHORT trg_sequence;
|
||||
SSHORT trg_inactive; /* 0 = on, 1 = off */
|
||||
USHORT trg_mflag; /* modify attributes */
|
||||
};
|
||||
typedef dudley_trg* DUDLEY_TRG;
|
||||
} *DUDLEY_TRG;
|
||||
|
||||
/* trg_modify_flag */
|
||||
|
||||
@ -507,52 +492,48 @@ enum trg_modify_flag_vals {
|
||||
|
||||
/* Trigger message block */
|
||||
|
||||
struct trgmsg {
|
||||
typedef struct trgmsg {
|
||||
sym* trgmsg_trg_name; /* symbol for trigger */
|
||||
SSHORT trgmsg_number; /* abort code */
|
||||
sym* trgmsg_text;
|
||||
};
|
||||
typedef trgmsg* TRGMSG;
|
||||
} *TRGMSG;
|
||||
|
||||
enum TRGMSG_T {
|
||||
typedef enum {
|
||||
trgmsg_none = 0,
|
||||
trgmsg_add = 1,
|
||||
trgmsg_modify = 2,
|
||||
trgmsg_drop = 3
|
||||
};
|
||||
} TRGMSG_T;
|
||||
|
||||
|
||||
/* Text block */
|
||||
|
||||
struct txt {
|
||||
typedef struct txt {
|
||||
TEXT* txt_file;
|
||||
ULONG txt_position;
|
||||
USHORT txt_length;
|
||||
USHORT txt_start_line;
|
||||
};
|
||||
typedef txt* TXT;
|
||||
} *TXT;
|
||||
|
||||
|
||||
/* Type block */
|
||||
|
||||
struct typ {
|
||||
typedef struct typ {
|
||||
sym* typ_field_name; /* field name */
|
||||
sym* typ_name; /* type name */
|
||||
SSHORT typ_type; /* type value */
|
||||
txt* typ_description; /* description of relation */
|
||||
};
|
||||
typedef typ* TYP;
|
||||
} *TYP;
|
||||
|
||||
|
||||
/* User privilege block */
|
||||
|
||||
struct userpriv {
|
||||
typedef struct userpriv {
|
||||
sym* userpriv_relation;
|
||||
struct usre* userpriv_userlist;
|
||||
struct upfe* userpriv_upflist;
|
||||
USHORT userpriv_flags;
|
||||
};
|
||||
typedef userpriv* USERPRIV;
|
||||
} *USERPRIV;
|
||||
|
||||
|
||||
/* user privilege flags */
|
||||
@ -573,19 +554,17 @@ static const char* const UPRIV_UPDATE = "UPDATE";
|
||||
|
||||
/* user name entry */
|
||||
|
||||
struct usre {
|
||||
typedef struct usre {
|
||||
usre* usre_next;
|
||||
sym* usre_name;
|
||||
};
|
||||
typedef usre* USRE;
|
||||
} *USRE;
|
||||
|
||||
/* update field entry */
|
||||
|
||||
struct upfe {
|
||||
typedef struct upfe {
|
||||
upfe* upfe_next;
|
||||
sym* upfe_fldname;
|
||||
};
|
||||
typedef upfe* UPFE;
|
||||
} *UPFE;
|
||||
|
||||
|
||||
/* Data types */
|
||||
@ -595,11 +574,10 @@ typedef upfe* UPFE;
|
||||
|
||||
/* Constant block */
|
||||
|
||||
struct con {
|
||||
typedef struct con {
|
||||
dsc con_desc;
|
||||
UCHAR con_data[1];
|
||||
};
|
||||
typedef con* CON;
|
||||
} *CON;
|
||||
|
||||
|
||||
/* Program globals */
|
||||
|
@ -235,15 +235,14 @@ enum tok_t {
|
||||
tok_eol
|
||||
};
|
||||
|
||||
struct tok {
|
||||
typedef struct tok {
|
||||
enum tok_t tok_type; /* type of token */
|
||||
sym* tok_symbol; /* hash block if recognized */
|
||||
enum kwwords tok_keyword; /* keyword number, if recognized */
|
||||
SLONG tok_position; /* byte number in input stream */
|
||||
USHORT tok_length;
|
||||
TEXT tok_string[MAXSYMLEN];
|
||||
};
|
||||
typedef tok* TOK;
|
||||
} *TOK;
|
||||
|
||||
#endif // DUDLEY_PARSE_H
|
||||
|
||||
|
@ -131,11 +131,10 @@ const USHORT IPS_MAX_PAGES_PER_CLI = 16; /* max 1k pages space per client */
|
||||
#define IPS_UNPACK_MAPNUM(n) (((ULONG)(n - IP_BIAS) >> 8) & 0xFF)
|
||||
#define IPS_UNPACK_USERNUM(n) ((n - IP_BIAS) & 0xFF)
|
||||
|
||||
struct bid {
|
||||
typedef struct bid {
|
||||
ULONG bid_relation_id; /* Relation id (or null) */
|
||||
ULONG bid_number; /* Record number */
|
||||
};
|
||||
typedef bid* BID;
|
||||
} *BID;
|
||||
|
||||
/* Block types */
|
||||
|
||||
@ -147,15 +146,14 @@ struct blk;
|
||||
|
||||
/* Block types */
|
||||
|
||||
struct cnct {
|
||||
typedef struct cnct {
|
||||
int *cnct_read_pipe; /* this is really a FILE pointer */
|
||||
int *cnct_write_pipe; /* this is really a FILE pointer */
|
||||
};
|
||||
typedef cnct* CNCT;
|
||||
} *CNCT;
|
||||
|
||||
/* mapped file structure */
|
||||
|
||||
struct ipm {
|
||||
typedef struct ipm {
|
||||
struct ipm *ipm_next; /* pointer to next one */
|
||||
USHORT ipm_count; /* slots in use */
|
||||
USHORT ipm_number; /* mapped area number */
|
||||
@ -164,15 +162,14 @@ struct ipm {
|
||||
LPVOID ipm_address; /* address of mapped memory */
|
||||
UCHAR ipm_ids[IPS_MAX_NUM_CLI];
|
||||
/* ids */
|
||||
};
|
||||
typedef ipm* IPM;
|
||||
} *IPM;
|
||||
|
||||
/* mapped structure flags */
|
||||
const USHORT IPMF_SERVER_SHUTDOWN = 1; /* server has shut down */
|
||||
|
||||
/* thread connection control block */
|
||||
|
||||
struct icc
|
||||
typedef struct icc
|
||||
{
|
||||
blk icc_header;
|
||||
struct icc* icc_next; /* pointer to next thread */
|
||||
@ -191,8 +188,7 @@ struct icc
|
||||
SSHORT icc_flags; /* status bits */
|
||||
HANDLE icc_waits[2]; /* wait for these handles */
|
||||
UCHAR* icc_mapped_addr; /* where the thread's mapped to */
|
||||
};
|
||||
typedef icc* ICC;
|
||||
} *ICC;
|
||||
|
||||
/* icc structure flags */
|
||||
const USHORT ICCF_SHUTDOWN = 1; /* shutdown in progress */
|
||||
@ -201,7 +197,7 @@ const USHORT ICCF_UNMAP_CLIENT = 4; /* client maps must be shut down */
|
||||
|
||||
/* database block */
|
||||
|
||||
struct idb
|
||||
typedef struct idb
|
||||
{
|
||||
blk idb_header;
|
||||
struct icc* idb_thread; /* back pointer to thread */
|
||||
@ -214,8 +210,7 @@ struct idb
|
||||
int* idb_status_vector; /* pointer to status vector */
|
||||
USHORT idb_flags; /* flags (see below) */
|
||||
SCHAR* idb_setjmp;
|
||||
};
|
||||
typedef idb* IDB;
|
||||
} *IDB;
|
||||
|
||||
const USHORT IDBF_DATABASE_ATTACHMENT = 1;
|
||||
const USHORT IDBF_SERVICE_ATTACHMENT = 2;
|
||||
@ -223,7 +218,7 @@ const USHORT IDBF_SERVER_SHUTDOWN = 4;
|
||||
|
||||
/* transaction block */
|
||||
|
||||
struct itr
|
||||
typedef struct itr
|
||||
{
|
||||
blk itr_header;
|
||||
struct idb* itr_idb;
|
||||
@ -231,14 +226,13 @@ struct itr
|
||||
struct ibl* itr_blobs;
|
||||
FB_API_HANDLE itr_handle;
|
||||
USHORT itr_flags;
|
||||
};
|
||||
typedef itr* ITR;
|
||||
} *ITR;
|
||||
|
||||
const USHORT ITR_limbo = 1;
|
||||
|
||||
/* blob control block */
|
||||
|
||||
struct ibl
|
||||
typedef struct ibl
|
||||
{
|
||||
blk ibl_header;
|
||||
struct idb* ibl_idb;
|
||||
@ -252,8 +246,7 @@ struct ibl
|
||||
USHORT ibl_fragment_length;
|
||||
USHORT ibl_buffer_length;
|
||||
UCHAR ibl_buffer[1];
|
||||
};
|
||||
typedef ibl* IBL;
|
||||
} *IBL;
|
||||
|
||||
//const USHORT IBL_eof = 1;
|
||||
//const USHORT IBL_segment = 2;
|
||||
@ -262,19 +255,18 @@ const USHORT IBL_create = 8;
|
||||
|
||||
/* request block */
|
||||
|
||||
struct irq {
|
||||
typedef struct irq {
|
||||
blk irq_header;
|
||||
struct idb *irq_idb;
|
||||
struct tra *irq_itr;
|
||||
struct irq *irq_next;
|
||||
struct irq **irq_user_handle;
|
||||
FB_API_HANDLE irq_handle;
|
||||
};
|
||||
typedef irq* IRQ;
|
||||
} *IRQ;
|
||||
|
||||
/* event structure */
|
||||
|
||||
struct ivnt {
|
||||
typedef struct ivnt {
|
||||
blk ivnt_header;
|
||||
struct ivnt *ivnt_next;
|
||||
struct idb *ivnt_idb;
|
||||
@ -283,12 +275,11 @@ struct ivnt {
|
||||
HWND ivnt_window;
|
||||
SLONG ivnt_id;
|
||||
SLONG ivnt_handle;
|
||||
};
|
||||
typedef ivnt* IVNT;
|
||||
} *IVNT;
|
||||
|
||||
/* remote SQL request */
|
||||
|
||||
struct ipserver_isr {
|
||||
typedef struct ipserver_isr {
|
||||
blk isr_header;
|
||||
struct ipserver_isr *isr_next;
|
||||
struct idb *isr_idb;
|
||||
@ -301,8 +292,7 @@ struct ipserver_isr {
|
||||
ISC_STATUS_ARRAY isr_status;
|
||||
UCHAR *isr_cursor;
|
||||
UCHAR *isr_packed;
|
||||
};
|
||||
typedef ipserver_isr* IPSERVER_ISR;
|
||||
} *IPSERVER_ISR;
|
||||
|
||||
#define BLKDEF(type, root, tail) type,
|
||||
enum blk_t {
|
||||
@ -337,7 +327,7 @@ enum blk_t {
|
||||
each of the five transfer blocks.
|
||||
*/
|
||||
|
||||
struct ips_string {
|
||||
typedef struct {
|
||||
ULONG ips_cl_size; /* client buffer size */
|
||||
ULONG ips_sv_size; /* server buffer size */
|
||||
ULONG ips_sv_alloced; /* server buffer size allocated */
|
||||
@ -350,7 +340,7 @@ struct ips_string {
|
||||
UCHAR *ips_cl_addr; /* address of client buffer */
|
||||
const UCHAR* ips_sv_addr; /* address of server buffer */
|
||||
UCHAR *ips_sv_buffer; /* allocated local buffer */
|
||||
};
|
||||
} ips_string;
|
||||
|
||||
const ULONG IPS_INPUT_BUFFER = 1; /* used for input from client */
|
||||
const ULONG IPS_OUTPUT_BUFFER = 2; /* used for output to client */
|
||||
@ -386,10 +376,10 @@ const ULONG IPS_OUTPUT_BUFFER = 2; /* used for output to client */
|
||||
- unwind request
|
||||
*/
|
||||
|
||||
struct ips_object {
|
||||
typedef struct {
|
||||
UCHAR *ips_handle; /* handle of object */
|
||||
ULONG ips_parameter; /* a parameter, used if needed */
|
||||
};
|
||||
} ips_object;
|
||||
|
||||
const USHORT IPS_ATTACH_NAME = 0; /* use controller 0 for db name */
|
||||
const USHORT IPS_ATTACH_DPB = 1; /* use controller 1 for dpb */
|
||||
@ -415,33 +405,33 @@ const USHORT IPS_PREPARE_TRANS = 0; /* use controller 0 for string */
|
||||
|
||||
/* structure used to compile requests */
|
||||
|
||||
struct ips_compile_req {
|
||||
typedef struct {
|
||||
UCHAR *ips_db_handle; /* database handle */
|
||||
UCHAR *ips_rq_handle; /* returned request handle */
|
||||
};
|
||||
} ips_compile_req;
|
||||
|
||||
const USHORT IPS_COMPILE_REQ = 0; /* use controller 0 for blr */
|
||||
|
||||
|
||||
/* structure used by create/open blob (and create/open blob2) */
|
||||
|
||||
struct ips_blob {
|
||||
typedef struct {
|
||||
UCHAR *ips_db_handle; /* database handle */
|
||||
UCHAR *ips_tr_handle; /* transaction handle */
|
||||
UCHAR *ips_bl_handle; /* returned blob handle */
|
||||
ULONG ips_rel_id; /* returned relation ID */
|
||||
ULONG ips_bid_number; /* returned blob ID number */
|
||||
};
|
||||
} ips_blob;
|
||||
|
||||
const USHORT IPS_BLOB_BPB = 0; /* use contorller 0 for bpb */
|
||||
|
||||
|
||||
/* structure used for DDL operations */
|
||||
|
||||
struct ips_ddl {
|
||||
typedef struct {
|
||||
UCHAR *ips_db_handle; /* database handle */
|
||||
UCHAR *ips_tr_handle; /* transaction handle */
|
||||
};
|
||||
} ips_ddl;
|
||||
|
||||
const USHORT IPS_DDL_DDL = 0; /* use controller 0 for ddl */
|
||||
|
||||
@ -459,7 +449,7 @@ const USHORT IPS_DDL_DDL = 0; /* use controller 0 for ddl */
|
||||
- set cursor
|
||||
*/
|
||||
|
||||
struct ips_dsql {
|
||||
typedef struct {
|
||||
UCHAR *ips_db_handle; /* database handle */
|
||||
UCHAR *ips_tr_handle; /* transaction handle (in/out) */
|
||||
UCHAR *ips_st_handle; /* statement handle */
|
||||
@ -467,7 +457,7 @@ struct ips_dsql {
|
||||
USHORT ips_msg_type; /* message type */
|
||||
USHORT ips_msg_out; /* output message type */
|
||||
USHORT ips_rec_count; /* packed records count */
|
||||
};
|
||||
} ips_dsql;
|
||||
|
||||
const USHORT IPS_DSQL_EXEC_BLR = 0; /* use controller 0 for blr */
|
||||
const USHORT IPS_DSQL_EXEC_MSG = 1; /* use controller 1 for message */
|
||||
@ -502,23 +492,23 @@ const USHORT IPS_DSQL_SET_CURSOR = 0; /* use controller 0 for name */
|
||||
|
||||
/* structure used to get/put blob segments */
|
||||
|
||||
struct ips_segment {
|
||||
typedef struct {
|
||||
UCHAR *ips_bl_handle; /* blob handle */
|
||||
USHORT ips_length; /* returned actual length */
|
||||
};
|
||||
} ips_segment;
|
||||
|
||||
const USHORT IPS_BLOB_SEGMENT = 0; /* use controller 0 for segment */
|
||||
|
||||
|
||||
/* structure used to get/put array slices */
|
||||
|
||||
struct ips_slice {
|
||||
typedef struct {
|
||||
UCHAR *ips_db_handle; /* database handle */
|
||||
UCHAR *ips_tr_handle; /* transaction handle */
|
||||
ULONG ips_rel_id; /* array rel id */
|
||||
ULONG ips_number; /* array number */
|
||||
ULONG ips_length; /* returned actual length */
|
||||
};
|
||||
} ips_slice;
|
||||
|
||||
const USHORT IPS_SLICE_SDL = 0; /* use controller 0 for sdl */
|
||||
const USHORT IPS_SLICE_PARAM = 1; /* use controller 1 for parameters */
|
||||
@ -527,20 +517,20 @@ const USHORT IPS_SLICE_BUFFER = 2; /* use controller 2 for slice */
|
||||
|
||||
/* structure for queueing events */
|
||||
|
||||
struct ips_que_events {
|
||||
typedef struct {
|
||||
UCHAR *ips_db_handle; /* database handle */
|
||||
ULONG ips_event_id; /* returned event id */
|
||||
HWND ips_event_hwnd; /* window handle to return to */
|
||||
FPTR_EVENT_CALLBACK ips_ast; /* ast address */
|
||||
UCHAR* ips_arg; /* ast arg */
|
||||
};
|
||||
} ips_que_events;
|
||||
|
||||
const USHORT IPS_QUEUE_EVENT = 0; /* use controller 0 for event */
|
||||
|
||||
|
||||
/* structure for send/receive message */
|
||||
|
||||
struct ips_request {
|
||||
typedef struct {
|
||||
UCHAR *ips_tr_handle; /* transaction handle */
|
||||
UCHAR *ips_rq_handle; /* request handle */
|
||||
USHORT ips_msg_type; /* message type */
|
||||
@ -549,7 +539,7 @@ struct ips_request {
|
||||
USHORT ips_direction; /* direction */
|
||||
ULONG ips_offset; /* offset */
|
||||
#endif
|
||||
};
|
||||
} ips_request;
|
||||
|
||||
const USHORT IPS_SEND_MESSAGE = 0; /* use controller 0 for message */
|
||||
const USHORT IPS_RECEIVE_MESSAGE = 0; /* use controller 0 for message */
|
||||
@ -557,38 +547,38 @@ const USHORT IPS_RECEIVE_MESSAGE = 0; /* use controller 0 for message */
|
||||
|
||||
/* structure used to reconnect transaction */
|
||||
|
||||
struct ips_reconnect {
|
||||
typedef struct {
|
||||
UCHAR *ips_db_handle; /* transaction handle */
|
||||
UCHAR *ips_tr_handle; /* transaction handle */
|
||||
};
|
||||
} ips_reconnect;
|
||||
|
||||
const USHORT IPS_RECONNECT_ID = 0; /* use controller 0 for id */
|
||||
|
||||
|
||||
/* structure used to seek into a blob */
|
||||
|
||||
struct ips_seek_blob {
|
||||
typedef struct {
|
||||
UCHAR *ips_bl_handle; /* blob handle */
|
||||
ULONG ips_offset; /* offset into blob */
|
||||
ULONG ips_result; /* returned result */
|
||||
USHORT ips_mode; /* seek mode */
|
||||
};
|
||||
} ips_seek_blob;
|
||||
|
||||
|
||||
/* structure used to start transactions */
|
||||
|
||||
struct ips_start_trans {
|
||||
typedef struct {
|
||||
UCHAR *ips_tr_handle; /* returned transaction handle */
|
||||
USHORT ips_db_count; /* number of db's in transaction */
|
||||
};
|
||||
} ips_start_trans;
|
||||
|
||||
|
||||
/* structure used for transact request */
|
||||
|
||||
struct ips_transact_request {
|
||||
typedef struct {
|
||||
UCHAR *ips_db_handle; /* database handle */
|
||||
UCHAR *ips_tr_handle; /* transaction handle (in/out) */
|
||||
};
|
||||
} ips_transact_request;
|
||||
|
||||
const USHORT IPS_TRANS_REQ_BLR = 0; /* use controller 0 for blr */
|
||||
const USHORT IPS_TRANS_REQ_IN_MSG = 1; /* use controller 1 for input msg */
|
||||
@ -602,7 +592,7 @@ const USHORT IPS_TRANS_REQ_OUT_MSG = 2; /* use controller 2 for output msg */
|
||||
|
||||
const USHORT MAX_IPS_STRINGS = 5;
|
||||
|
||||
struct ips_comm_area {
|
||||
typedef struct {
|
||||
ULONG ips_server_protocol; /* server's protocol level */
|
||||
ULONG ips_client_protocol; /* client's protocol level */
|
||||
ISC_STATUS_ARRAY ips_status; /* status vector */
|
||||
@ -631,8 +621,7 @@ struct ips_comm_area {
|
||||
ips_transact_request ips_op_trans_req;
|
||||
} ips_operations;
|
||||
ULONG ips_data[1]; /* start of data area */
|
||||
};
|
||||
typedef ips_comm_area* IPS;
|
||||
} ips_comm_area, *IPS;
|
||||
|
||||
/* size of mapped memory for a given client */
|
||||
|
||||
@ -653,13 +642,12 @@ static const char* IPI_EVENT_THREAD = "%sEventThread%d_%d";
|
||||
|
||||
/* local event queue structure */
|
||||
|
||||
struct eventq {
|
||||
typedef struct eventq {
|
||||
struct eventq *evq_next; /* next event */
|
||||
SLONG evq_id; /* event ID */
|
||||
USHORT evq_length; /* event length */
|
||||
UCHAR evq_string[1]; /* event string */
|
||||
};
|
||||
typedef eventq* EVENTQ;
|
||||
} *EVENTQ;
|
||||
|
||||
/* interprocess database thread structure */
|
||||
|
||||
|
@ -36,7 +36,7 @@
|
||||
See MET_format() and make_format() in MET.EPP for enlightenment.
|
||||
*/
|
||||
|
||||
struct dsc
|
||||
typedef struct dsc
|
||||
{
|
||||
dsc()
|
||||
: dsc_dtype(0),
|
||||
@ -57,8 +57,7 @@ struct dsc
|
||||
SSHORT& dsc_ttype() { return dsc_sub_type;}
|
||||
SSHORT dsc_ttype() const { return dsc_sub_type;}
|
||||
#endif
|
||||
};
|
||||
typedef dsc DSC;
|
||||
} DSC;
|
||||
|
||||
|
||||
inline SSHORT DSC_GET_CHARSET(const dsc* desc) {
|
||||
@ -71,12 +70,11 @@ inline SSHORT DSC_GET_COLLATE(const dsc* desc) {
|
||||
}
|
||||
//#define DSC_GET_COLLATE(dsc) (((dsc)->dsc_sub_type) >> 8)
|
||||
|
||||
struct alt_dsc {
|
||||
typedef struct alt_dsc {
|
||||
SLONG dsc_combined_type;
|
||||
SSHORT dsc_sub_type;
|
||||
USHORT dsc_flags; /* Not currently used */
|
||||
};
|
||||
typedef alt_dsc ALT_DSC;
|
||||
} ALT_DSC;
|
||||
|
||||
inline bool DSC_EQUIV(const dsc* d1, const dsc* d2) {
|
||||
return ((((ALT_DSC*) d1)->dsc_combined_type == ((ALT_DSC*) d2)->dsc_combined_type) &&
|
||||
|
@ -110,12 +110,11 @@ const ULONG MAX_SORT_RECORD = 65535; /* bytes */
|
||||
|
||||
/* the record struct actually contains the keyids etc, and the back_pointer
|
||||
which points to the sort_record structure. */
|
||||
struct sr
|
||||
typedef struct sr
|
||||
{
|
||||
sort_record** sr_bckptr; /* Pointer back to sort list entry */
|
||||
sort_record sr_sort_record;
|
||||
};
|
||||
typedef sr SR;
|
||||
} SR;
|
||||
|
||||
/* scb_longs includes the size of sr_bckptr. */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user