3 * Structures and constants used in the query dispatch table
7 enum query_type {RETRIEVE, UPDATE, APPEND, DELETE, SPECIAL};
9 /* Query Definition Structure */
12 char *name; /* query name */
13 char *shortname; /* abbreviated query name (must be 4 chars) */
14 enum query_type type; /* query type */
15 char *rvar; /* range variable */
16 char *rtable; /* range table */
17 char *tlist; /* target list */
18 char **fields; /* input and output variable names (for help) */
19 int vcnt; /* variable count */
20 char *qual; /* format string for "where" clause */
21 int argc; /* number of args for qualifier */
22 struct validate *validate; /* validation support */
23 int acl; /* hint as to query ACL for this query */
24 int everybody; /* is the default user on this ACL? */
27 /* Query Validation Structure */
30 /* object validation (e.g., user, filesys, type) */
31 struct valobj *valobj; /* array of object validation descriptors */
32 int objcnt; /* size of array */
33 /* row validation - retrieve (exists = any(rvar.field where qual)) */
34 char *field; /* field to check for */
35 char *qual; /* format string for "where" clause */
36 int argc; /* number of args used in qual */
37 /* values field containing current max object id */
39 /* routine to verify access permission on objects */
41 /* pre-processing routine (var setup only) */
43 /* post-processing routine */
47 /* Validated Object Types */
48 enum vo_type {V_NAME, V_ID, V_TYPE, V_TYPEDATA, V_DATE,
49 V_SORT, V_RENAME, V_CHAR, V_LOCK, V_WILD, V_UPWILD};
51 /* Validated Object Definition */
55 int index; /* index of object to validate */
56 char *table; /* table containing object */
57 char *namefield; /* table's fieldname for object */
58 char *idfield; /* table's corresponding id field (if any) */
62 /* Used to setup static argv, maximum argc and argument lengths */
64 #define QMAXARGSIZE 513