extern FILE *journal;
int mr_verify_query(client *cl, struct query *q, int argc, char *argv_ro[]);
-int do_retrieve(struct query *q, char *pqual, char *psort,
+int do_retrieve(struct query *q, char *pqual,
int (*action)(int, char *[], void *), void *actarg);
int do_update(struct query *q, char *argv[], char *qual,
int (*action)(int, char *[], void *), void *actarg);
int (*action)(int, char *[], void *), void *actarg);
void build_sql_stmt(char *result_buf, char *cmd, char *targetlist,
char *argv[], char *qual);
-char *build_sort(struct validate *v, char *sort);
char *sqlstrstr(char *str, char *pat);
void optimize_sql_stmt(char *buf);
int status;
struct validate *v;
char qual[256];
- char sort[32];
char *pqual;
- char *psort;
EXEC SQL BEGIN DECLARE SECTION;
char *table;
EXEC SQL END DECLARE SECTION;
else
pqual = 0;
- /* build "sort" clause if needed */
- if (v && v->valobj)
- psort = build_sort(v, sort);
- else
- psort = 0;
-
/* if there is a followup routine, then we must save the results */
/* of the first query for use by the followup routine */
/* if q->rvar = NULL, perform post_rtn only */
if (v && v->post_rtn)
{
sq = sq_create();
- status = do_retrieve(q, pqual, psort, sq_save_args, sq);
+ status = do_retrieve(q, pqual, sq_save_args, sq);
if (status != MR_SUCCESS)
{
sq_destroy(sq);
else
{
/* normal retrieve */
- status = do_retrieve(q, pqual, psort, action, actarg);
+ status = do_retrieve(q, pqual, action, actarg);
}
if (status != MR_SUCCESS)
break;
*res = '\0';
}
-char *build_sort(struct validate *v, char *sort)
-{
- struct valobj *vo;
- int n;
- char elem[16];
-
- n = v->objcnt;
- vo = v->valobj;
- *sort = '\0';
-
- while (--n >= 0)
- {
- if (vo->type == V_SORT)
- {
- sprintf(elem, "%d", vo->index + 1); /* Result column number */
- if (*sort)
- strcat(sort, ", ");
- strcat(sort, elem);
- }
- vo++;
- }
-
- return (*sort) ? sort : 0;
-}
-
-
/* Build arguement vector, verify query and arguments */
int privileged;
}
-int do_retrieve(struct query *q, char *pqual, char *psort,
+int do_retrieve(struct query *q, char *pqual,
int (*action)(int, char *[], void *), void *actarg)
{
build_sql_stmt(stmt_buf, "SELECT", q->tlist, NULL, pqual);
- if (psort)
+ if (q->sort)
{
strcat(stmt_buf, " ORDER BY ");
- strcat(stmt_buf, psort);
+ strcat(stmt_buf, q->sort);
}
return do_for_all_rows(stmt_buf, q->vcnt, action, actarg);
* situations
*/
-static struct valobj VOsort0[] = {
- {V_SORT, 0},
-};
-
static struct valobj VOwild0[] = {
{V_WILD, 0},
};
{V_UPWILD, 0},
};
-static struct valobj VOwild0sort[] = {
- {V_WILD, 0},
- {V_SORT, 0},
-};
-
-static struct valobj VOupwild0sort[] = {
- {V_UPWILD, 0},
- {V_SORT, 0},
-};
-
-static struct valobj VOwild01sort0[] = {
+static struct valobj VOwild01[] = {
{V_WILD, 0},
{V_WILD, 1},
- {V_SORT, 0},
};
-static struct valobj VOwild01sort01[] = {
- {V_WILD, 0},
- {V_WILD, 1},
- {V_SORT, 0},
- {V_SORT, 1},
-};
-
-static struct valobj VOwild012sort0[] = { /* get_alias */
+static struct valobj VOwild012[] = {
{V_WILD, 0},
{V_WILD, 1},
{V_WILD, 2},
- {V_SORT, 0},
};
static struct validate VDmach = { VOmach0, 1 };
static struct validate VDwild0= { VOwild0, 1 };
static struct validate VDupwild0= { VOupwild0, 1 };
-static struct validate VDwild2sort2 = { VOwild01sort01, 4 };
-static struct validate VDwild3sort1 = { VOwild012sort0, 4 };
-static struct validate VDsortf = {
- VOsort0,
- 1,
+static struct validate VDwild2 = { VOwild01, 2 };
+static struct validate VDwild3 = { VOwild012, 3 };
+static struct validate VDfix_modby = {
+ 0,
+ 0,
0,
0,
0,
followup_fix_modby,
};
-static struct validate VDwildsortf = {
- VOwild0sort,
- 2,
+static struct validate VDwild_fix_modby = {
+ VOwild0,
+ 1,
0,
0,
0,
0,
followup_fix_modby,
};
-static struct validate VDsort0= { VOsort0, 1 };
-
-static struct validate VDupwildsortf = {
- VOupwild0sort,
- 2,
+static struct validate VDupwild_fix_modby = {
+ VOupwild0,
+ 1,
0,
0,
0,
static struct validate gubl_validate =
{
- VOwild0sort,
- 2,
+ VOwild0,
+ 1,
0,
0,
0,
static struct validate guan_validate =
{
- VOwild01sort01,
- 4,
+ VOwild01,
+ 2,
0,
0,
0,
static struct validate gubu_validate =
{
- VOsort0,
- 1,
+ 0,
+ 0,
0,
0,
0,
static struct validate gubn_validate =
{
- VOwild01sort0,
- 3,
+ VOwild01,
+ 2,
0,
0,
0,
{V_UPWILD, 1},
{V_UPWILD, 2},
{V_UPWILD, 3},
- {V_SORT, 0},
};
static struct validate ghst_validate = {
ghst_valobj,
- 5,
+ 4,
0,
0,
0,
static struct valobj ghal_valobj[] = {
{V_UPWILD, 0},
{V_UPWILD, 1},
- {V_SORT, 0},
};
static struct validate ghal_validate = {
ghal_valobj,
- 3,
+ 2,
0,
0,
0,
{V_RLOCK, 0, SUBNET_TABLE, 0, "snet_id", MR_DEADLOCK},
{V_RLOCK, 0, LIST_TABLE, 0, "list_id", MR_DEADLOCK},
{V_UPWILD, 0},
- {V_SORT, 0},
};
static struct validate gsnt_validate = {
gsnt_valobj,
- 5,
+ 4,
0,
0,
0,
{
{V_UPWILD, 0},
{V_WILD, 1},
- {V_SORT, 0},
- {V_SORT, 1},
};
-static struct validate gmcm_validate = { gmcm_valobj, 4 };
+static struct validate gmcm_validate = { gmcm_valobj, 2 };
static struct valobj amtc_valobj[] = /* ADD_MACHINE_TO_CLUSTER */
{ /* DELETE_MACHINE_FROM_CLUSTER */
{V_RLOCK, 0, LIST_TABLE, 0, "list_id", MR_DEADLOCK},
{V_TYPE, 0, 0, "rmember", 0, MR_TYPE},
{V_TYPEDATA, 1, 0, 0, 0, MR_NO_MATCH},
- {V_SORT, 0},
};
static struct validate glom_validate = {
glom_valobj,
- 6,
+ 5,
0,
0,
0,
static struct valobj gfgm_valobj[] = {
{V_ID, 0, FILESYS_TABLE, "label", "filsys_id", MR_FILESYS},
- {V_SORT, 1},
- {V_SORT, 0},
};
static struct validate gfgm_validate = {
gfgm_valobj,
- 3,
+ 1,
0,
0,
0,
{V_WILD, 0},
{V_TYPE, 1, 0, "quota_type", 0, MR_TYPE},
{V_TYPEDATA, 2, 0, 0, 0, MR_ACE},
- {V_SORT, 0, 0, 0, 0, 0},
};
static struct validate gqot_validate = {
gqot_valobj,
- 9,
+ 8,
0,
0,
0,
};
static struct validate gqbf_validate = {
- VOwild0sort,
- 2,
+ VOwild0,
+ 1,
0,
0,
0,
};
static struct validate gnfq_validate = {
- VOwild0sort,
- 2,
+ VOwild0,
+ 1,
0,
0,
0,
{V_RLOCK, 0, LIST_TABLE, 0, "list_id", MR_DEADLOCK},
{V_RLOCK, 0, ZEPHYR_TABLE, 0, "xmt_id", MR_DEADLOCK},
{V_WILD, 0},
- {V_SORT, 0},
};
static struct validate gzcl_validate = {
gzcl_valobj,
- 5,
+ 4,
0,
0,
0,
{V_RLOCK, 0, MACHINE_TABLE, 0, "mach_id", MR_DEADLOCK},
{V_RLOCK, 0, PRINTCAP_TABLE, 0, "mach_id", MR_DEADLOCK},
{V_WILD, 0},
- {V_SORT, 0},
};
static struct validate gpce_validate = {
gpce_valobj,
- 5,
+ 4,
0,
0,
0,
6,
"u.users_id != 0",
0,
- &VDsort0,
+ "u.login",
+ 0,
},
{
6,
"u.status = 1",
0,
- &VDsort0,
+ "u.login",
+ 0,
},
{
15,
"u.login LIKE '%s' ESCAPE '*' AND u.users_id != 0 AND u.comments = str.string_id",
1,
+ "u.login",
&gubl_validate,
},
15,
"u.unix_uid = %s AND u.users_id != 0 AND u.comments = str.string_id",
1,
+ "u.login",
&gubu_validate,
},
15,
"u.first LIKE '%s' ESCAPE '*' AND u.last LIKE '%s' ESCAPE '*' AND u.users_id != 0 and u.comments = str.string_id",
2,
+ "u.login",
&guan_validate,
},
15,
"u.type = UPPER('%s') AND u.users_id != 0 AND u.comments = str.string_id",
1,
- &VDsortf,
+ "u.login",
+ &VDfix_modby,
},
{
15,
"u.clearid LIKE '%s' ESCAPE '*' AND u.users_id != 0 AND u.comments = str.string_id",
1,
- &VDwildsortf,
+ "u.login",
+ &VDwild_fix_modby,
},
{
12,
"u.login LIKE '%s' ESCAPE '*' AND u.users_id != 0",
1,
+ "u.login",
&gubl_validate,
},
12,
"u.unix_uid = %s AND u.users_id != 0",
1,
+ "u.login",
&gubu_validate,
},
12,
"u.first LIKE '%s' ESCAPE '*' AND u.last LIKE '%s' ESCAPE '*' AND u.users_id != 0",
2,
+ "u.login",
&gubn_validate,
},
12,
"u.type = UPPER('%s') AND u.users_id != 0",
1,
- &VDsortf,
+ "u.login",
+ &VDfix_modby,
},
{
12,
"u.clearid LIKE '%s' ESCAPE '*' AND u.users_id != 0",
1,
- &VDwildsortf,
+ "u.login",
+ &VDwild_fix_modby,
},
{
2,
"u.users_id = %d",
1,
+ NULL,
&gudf_validate,
},
12,
NULL,
0,
+ NULL,
&auac_validate,
},
9,
0,
0,
+ NULL,
&ausr_validate,
},
3,
0,
0,
+ NULL,
&rusr_validate,
},
12,
"users_id = %d",
1,
+ NULL,
&uuac_validate,
},
9,
"users_id = %d",
1,
+ NULL,
&uusr_validate,
},
1,
"users_id = %d",
1,
+ NULL,
&uush_validate,
},
1,
"users_id = %d",
1,
+ NULL,
&uust_validate,
},
1,
"users_id = %d",
1,
+ NULL,
&uust_validate,
},
2,
"users_id = %d",
1,
+ NULL,
&uudf_validate,
},
0,
"users_id = %d",
1,
+ NULL,
&dusr_validate,
},
0,
"users_id = %d",
1,
+ NULL,
&dubu_validate,
},
2,
"u.login LIKE '%s' ESCAPE '*' AND str.string LIKE '%s' ESCAPE '*' AND km.users_id = u.users_id AND km.string_id = str.string_id",
2,
- &VDwild2sort2,
+ "u.login, str.string",
+ &VDwild2,
},
{
2,
0,
0,
+ NULL,
&akum_validate,
},
0,
"users_id = %d AND string_id = %d",
2,
+ NULL,
&dkum_validate,
},
12,
"users_id = %d",
1,
+ "login",
&gfbl_validate,
},
8,
"users_id = %d",
1,
+ NULL,
&ufbl_validate,
},
6,
"users_id = %d",
1,
+ "login",
&gpob_validate,
},
3,
"potype != 'NONE'",
0,
+ "login",
&gpox_validate,
},
3,
"potype = 'POP'",
0,
+ "login",
&gpox_validate
},
3,
"potype = 'SMTP'",
0,
+ "login",
&gpox_validate
},
3,
NULL,
0,
+ NULL,
&spob_validate,
},
0,
"users_id = %d",
1,
+ NULL,
&spop_validate,
},
0,
"users_id = %d",
1,
+ NULL,
&dpob_validate,
},
21,
"m.name LIKE '%s' ESCAPE '*' AND m.address LIKE '%s' ESCAPE '*' AND m.location LIKE '%s' ESCAPE '*' AND s.name LIKE '%s' ESCAPE '*' AND m.mach_id != 0 AND s.snet_id = m.snet_id",
4,
+ "m.name",
&ghst_validate,
},
14,
0,
0,
+ NULL,
&ahst_validate,
},
14,
"mach_id = %d",
1,
+ NULL,
&uhst_validate,
},
0,
"mach_id = %d",
1,
+ NULL,
&dhst_validate,
},
5,
"name LIKE '%s' ESCAPE '*' AND mach_id != 0",
1,
- &VDupwildsortf,
+ "name",
+ &VDupwild_fix_modby,
},
{
2,
"m.mach_id = a.mach_id and a.name LIKE '%s' ESCAPE '*' AND m.name LIKE '%s' ESCAPE '*'",
2,
+ "a.name",
&ghal_validate,
},
2,
0,
0,
+ NULL,
&ahal_validate,
},
0,
"name = UPPER('%s') AND mach_id = %d",
2,
+ NULL,
&dhal_validate,
},
12,
"name LIKE '%s' ESCAPE '*' and snet_id != 0",
1,
+ "name",
&gsnt_validate,
},
9,
0,
0,
+ NULL,
&asnt_validate,
},
9,
"snet_id = %d",
1,
+ NULL,
&usnt_validate,
},
0,
"snet_id = %d",
1,
+ NULL,
&dsnt_validate,
},
6,
"name LIKE '%s' ESCAPE '*' AND clu_id != 0",
1,
- &VDwildsortf,
+ "name",
+ &VDwild_fix_modby,
},
{
3,
0,
0,
+ NULL,
&aclu_validate,
},
3,
"clu_id = %d",
1,
+ NULL,
&uclu_validate,
},
0,
"clu_id = %d",
1,
+ NULL,
&dclu_validate,
},
2,
"m.name LIKE '%s' ESCAPE '*' AND c.name LIKE '%s' ESCAPE '*' AND mcm.clu_id = c.clu_id AND mcm.mach_id = m.mach_id",
2,
+ "m.name",
&gmcm_validate,
},
2,
0,
0,
+ NULL,
&amtc_validate,
},
0,
"mach_id = %d AND clu_id = %d",
2,
+ NULL,
&amtc_validate,
},
3,
"c.clu_id = svc.clu_id AND c.name LIKE '%s' ESCAPE '*' AND svc.serv_label LIKE '%s' ESCAPE '*'",
2,
- &VDwild2sort2,
+ "c.name, svc.serv_label",
+ &VDwild2,
},
{
3,
NULL,
0,
+ NULL,
&acld_validate,
},
0,
"clu_id = %d AND serv_label = '%s' AND serv_cluster = '%s'",
3,
+ NULL,
&dcld_validate,
},
13,
0,
1,
+ NULL,
&glin_validate,
},
1,
"name LIKE '%s' ESCAPE '*' AND list_id != 0",
1,
+ "name",
&VDwild0,
},
10,
0,
0,
+ NULL,
&alis_validate,
},
10,
"list_id = %d",
1,
+ NULL,
&ulis_validate,
},
0,
"list_id = %d",
1,
+ NULL,
&dlis_validate,
},
3,
NULL,
0,
+ NULL,
&amtl_validate,
},
0,
0,
3,
+ NULL,
&dmfl_validate,
},
2,
0,
2,
+ NULL,
&gaus_validate,
},
1,
0,
5,
+ NULL,
&qgli_validate,
},
2,
NULL,
1,
+ NULL,
&gmol_validate,
},
2,
NULL,
1,
+ NULL,
&geml_validate,
},
6,
0,
2,
+ NULL,
&glom_validate,
},
1,
0,
1,
+ NULL,
&cmol_validate,
},
16,
"name LIKE '%s' ESCAPE '*'",
1,
+ "name",
&gsin_validate,
},
1,
0,
3,
+ NULL,
&qgsv_validate,
},
8,
NULL,
0,
+ NULL,
&asin_validate,
},
7,
"name = UPPER('%s')",
1,
+ NULL,
&asin_validate,
},
0,
"name = UPPER('%s')",
1,
+ NULL,
&rsve_validate,
},
5,
"name = UPPER('%s')",
1,
+ NULL,
&ssif_validate,
},
0,
"name = UPPER('%s')",
1,
+ NULL,
&dsin_validate,
},
16,
"sh.service LIKE '%s' ESCAPE '*' AND m.name LIKE '%s' ESCAPE '*' AND m.mach_id = sh.mach_id",
2,
+ "sh.service, m.name",
&gshi_validate,
},
2,
0,
6,
+ NULL,
&qgsh_validate,
},
6,
NULL,
0,
+ NULL,
&ashi_validate,
},
4,
"service = UPPER('%s') AND mach_id = %d",
2,
+ NULL,
&ashi_validate,
},
0,
"service = UPPER('%s') AND mach_id = %d",
2,
+ NULL,
&rshe_validate,
},
0,
"service = UPPER('%s') AND mach_id = %d",
2,
+ NULL,
&ssho_validate,
},
7,
"service = UPPER('%s') AND mach_id = %d",
2,
+ NULL,
&sshi_validate,
},
0,
"service = UPPER('%s') AND mach_id = %d",
2,
+ NULL,
&dshi_validate,
},
2,
"sh.service LIKE '%s' ESCAPE '*' AND sh.mach_id = m.mach_id",
1,
+ "sh.service, m.name",
&VDupwild0,
},
14,
"fs.label LIKE '%s' ESCAPE '*' AND fs.mach_id = m.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id",
1,
- &VDwildsortf,
+ "fs.label",
+ &VDwild_fix_modby,
},
{
14,
"fs.mach_id = %d AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id",
1,
+ "fs.label",
&gfsm_validate,
},
14,
"fs.mach_id = %d AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id AND np.nfsphys_id = fs.phys_id AND np.dir LIKE '%s' ESCAPE '*' AND fs.type = 'NFS'",
2,
+ "fs.label",
&gfsn_validate,
},
14,
"fs.owners = %d AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id",
1,
+ "fs.label",
&gfsg_validate,
},
14,
"fs.name LIKE '%s' ESCAPE '*' AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = list_id",
1,
- &VDwildsortf,
+ "fs.label",
+ &VDwild_fix_modby,
},
{
11,
0,
0,
+ NULL,
&afil_validate,
},
11,
"filsys_id = %d",
1,
+ NULL,
&ufil_validate,
},
0,
"filsys_id = %d",
1,
+ NULL,
&dfil_validate,
},
2,
"fg.group_id = %d AND fs.filsys_id = fg.filsys_id",
1,
+ "fs.label, fg.key",
&gfgm_validate,
},
3,
NULL,
0,
+ NULL,
&aftg_validate,
},
0,
"group_id = %d AND filsys_id = %d",
2,
+ NULL,
&aftg_validate,
},
9,
"m.mach_id = np.mach_id",
0,
- &VDsortf,
+ "m.name, np.dir",
+ &VDfix_modby,
},
{
9,
"np.mach_id = %d AND np.dir LIKE '%s' ESCAPE '*' AND m.mach_id = np.mach_id",
2,
+ "m.name, np.dir",
&gnfp_validate,
},
6,
0,
0,
+ NULL,
&anfp_validate,
},
4,
"mach_id = %d AND dir = '%s'",
2,
+ NULL,
&unfp_validate,
},
1,
"mach_id = %d AND dir = '%s'",
2,
+ NULL,
&unfp_validate,
},
0,
"mach_id = %d AND dir = '%s'",
2,
+ NULL,
&dnfp_validate,
},
9,
"fs.label LIKE '%s' ESCAPE '*' AND q.type = '%s' AND q.entity_id = %d AND fs.filsys_id = q.filsys_id AND m.mach_id = fs.mach_id",
3,
+ NULL,
&gqot_validate,
},
9,
"fs.label LIKE '%s' ESCAPE '*' AND fs.filsys_id = q.filsys_id AND m.mach_id = fs.mach_id",
1,
+ "fs.label, q.type",
&gqbf_validate,
},
4,
NULL,
0,
+ NULL,
&aqot_validate,
},
1,
0,
3,
+ NULL,
&uqot_validate,
},
0,
0,
3,
+ NULL,
&dqot_validate,
},
8,
"fs.label LIKE '%s' ESCAPE '*' AND q.type = 'USER' AND q.entity_id = u.users_id AND fs.filsys_id = q.filsys_id AND m.mach_id = fs.mach_id AND u.login = '%s'",
2,
+ "fs.label, u.login",
&gnfq_validate,
},
5,
"np.mach_id = %d AND np.dir LIKE '%s' ESCAPE '*' AND q.phys_id = np.nfsphys_id AND fs.filsys_id = q.filsys_id AND q.type = 'USER' AND u.users_id = q.entity_id AND m.mach_id = np.mach_id",
2,
+ "fs.label",
&gnqp_validate,
},
3,
NULL,
0,
+ NULL,
&anfq_validate,
},
1,
0,
2,
+ NULL,
&unfq_validate,
},
0,
0,
2,
+ NULL,
&dnfq_validate,
},
12,
"class LIKE '%s' ESCAPE '*'",
1,
+ "class",
&gzcl_validate,
},
9,
0,
0,
+ NULL,
&azcl_validate,
},
9,
"class = '%s'",
1,
+ NULL,
&uzcl_validate,
},
0,
"class = '%s'",
1,
+ NULL,
&dzcl_validate,
},
6,
"m.name LIKE '%s' ESCAPE '*' AND ha.mach_id = m.mach_id",
1,
+ "m.name",
&gsha_validate,
},
3,
0,
0,
+ NULL,
&asha_validate,
},
2,
"mach_id = %d",
1,
+ NULL,
&asha_validate,
},
0,
"mach_id = %d",
1,
+ NULL,
&VDmach,
},
7,
"name LIKE '%s' ESCAPE '*'",
1,
- &VDwildsortf,
+ "name",
+ &VDwild_fix_modby,
},
{
4,
NULL,
0,
+ NULL,
&asvc_validate,
},
0,
"name = '%s'",
1,
+ NULL,
&asvc_validate,
},
11,
"pc.name LIKE '%s' ESCAPE '*' AND m.mach_id = pc.mach_id",
1,
+ "pc.name",
&gpce_validate,
},
8,
0,
0,
+ NULL,
&apce_validate,
},
0,
"name = '%s'",
1,
+ NULL,
&dpce_validate,
},
8,
"pc.name LIKE '%s' ESCAPE '*' AND m.mach_id = pc.mach_id",
1,
- &VDwildsortf,
+ "pc.name",
+ &VDwild_fix_modby,
},
{
0,
"name = '%s'",
1,
+ NULL,
&dpce_validate,
},
6,
"pal.name LIKE '%s' ESCAPE '*' AND m.mach_id = pal.mach_id",
1,
- &VDwildsortf,
+ "pal.name",
+ &VDwild_fix_modby,
},
{
3,
0,
0,
+ NULL,
&apdm_validate,
},
0,
"name = '%s'",
1,
+ NULL,
&dpdm_validate,
},
3,
"name LIKE '%s' ESCAPE '*' AND type LIKE '%s' ESCAPE '*' AND trans LIKE '%s' ESCAPE '*'",
3,
- &VDwild3sort1,
+ "type, name, trans",
+ &VDwild3,
},
{
3,
NULL,
0,
+ NULL,
&aali_validate,
},
0,
"name = '%s' AND type = '%s' AND trans = '%s'",
3,
+ NULL,
&dali_validate,
},
1,
"name = '%s'",
1,
+ NULL,
&gval_validate,
},
2,
NULL,
0,
+ NULL,
&aval_validate,
},
1,
"name = '%s'",
1,
+ NULL,
&aval_validate,
},
0,
"name = '%s'",
1,
+ NULL,
&aval_validate,
},
5,
NULL,
0,
+ "table_name",
0,
},
1,
NULL,
0,
+ NULL,
&_sdl_validate,
},