1 /* This file defines the query dispatch table for version 2 of the protocol
5 * Copyright 1987, 1988 by the Massachusetts Institute of Technology.
6 * For copying and distribution information, please see the file
10 #include <mit-copyright.h>
11 #include "mr_server.h"
18 /* Specialized Support Query Routines */
20 /* Special Access Check Routines */
24 int access_visible_list();
25 int access_vis_list_by_name();
34 /* Query Setup Routines */
36 int prefetch_filesys();
59 /* Query Followup Routines */
60 int followup_fix_modby();
76 int set_modtime_by_id();
77 int set_finger_modtime();
78 int set_pobox_modtime();
79 int set_uppercase_modtime();
80 int set_mach_modtime_by_id();
81 int set_cluster_modtime_by_id();
82 int set_serverhost_modtime();
83 int set_nfsphys_modtime();
84 int set_filesys_modtime();
85 int set_zephyr_modtime();
90 int add_member_to_list();
91 int delete_member_from_list();
93 int qualified_get_lists();
94 int get_members_of_list();
95 int get_end_members_of_list();
96 int qualified_get_server();
97 int qualified_get_serverhost();
99 int count_members_of_list();
100 int get_lists_of_member();
106 /* String compression
107 * These are commonly used strings in the table, defined here so that
108 * they can be shared.
111 static char ACE_NAME[] = "ace_name";
112 static char ACE_TYPE[] = "ace_type";
113 static char ADDRESS[] = "address";
114 static char ALIAS[] = "alias";
115 static char CLASS[] = "class";
116 static char CLU_ID[] = "clu_id";
117 static char CLUSTER[] = "clusters";
118 static char COMMENTS[] = "comments";
119 static char DESC[] = "description";
120 static char DEVICE[] = "device";
121 static char DIR[] = "dir";
122 static char FILESYS[] = "filesys";
123 static char FILSYS_ID[] = "filsys_id";
124 static char FIRST[] = "first";
125 static char HOSTACCESS[] = "hostaccess";
126 static char LABEL[] = "label";
127 static char LAST[] = "last";
128 static char LIST[] = "list";
129 static char LIST_ID[] = "list_id";
130 static char LOCATION[] = "location";
131 static char LOGIN[] = "login";
132 static char MACH_ID[] = "mach_id";
133 static char MACHINE[] = "machine";
134 static char MIDDLE[] = "middle";
135 static char MIT_ID[] = "clearid";
136 static char MOD1[] = "modtime";
137 static char MOD2[] = "modby";
138 static char MOD3[] = "modwith";
139 static char NAME[] = "name";
140 static char PRINTCAP[] = "printcap";
141 static char QUOTA[] = "quota";
142 static char QUOTA_TYPE[] = "quota_type";
143 static char SECURE[] = "secure";
144 static char SERVICE[] = "service";
145 static char SERVERS[] = "servers";
146 static char SHELL[] = "shell";
147 static char SIGNATURE[] = "signature";
148 static char SNET_ID[] = "snet_id";
149 static char SUBNET[] = "subnet";
150 static char STATUS[] = "status";
151 static char TYPE[] = "type";
152 static char USERS[] = "users";
153 static char USERS_ID[] = "users_id";
154 static char UID[] = "unix_uid";
155 static char ZEPH[] = "zephyr";
156 static char ZEPH_ID[] = "xmt_id";
159 char *table_name[] = {
160 "none", USERS, "krbmap", MACHINE, "hostalias", SUBNET, CLUSTER,
161 "mcmap", "svc", LIST, "imembers", SERVERS, "serverhosts", FILESYS,
162 "fsgroup", "nfsphys", "quota", ZEPH, HOSTACCESS, "strings", "services",
163 PRINTCAP, "palladium", "capacls", "alias", "numvalues", "tblstats",
169 * These are commonly used validation objects, defined here so that they
174 * A word about validation objects and locking: The validation object
175 * for a query should also request locks on behalf of the pre-processing
176 * and post-processing routines. This helps to ensure that tables are
177 * accessed and locked in the proper order and thus avoids deadlock
181 static struct valobj VOsort0[] = {
185 static struct valobj VOwild0[] = {
189 static struct valobj VOupwild0[] = {
193 static struct valobj VOwild0sort[] = {
198 static struct valobj VOupwild0sort[] = {
203 static struct valobj VOwild01sort0[] = {
209 static struct valobj VOwild01sort01[] = {
216 static struct valobj VOwild012sort0[] = { /* get_alias */
224 static struct valobj VOuser0[] = {
225 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
229 static struct valobj VOuser0lock[] = {
230 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
231 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
234 static struct valobj VOmach0[] = {
235 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
238 static struct valobj VOclu0[] = {
239 {V_ID, 0, CLUSTER_TABLE, NAME, CLU_ID, MR_CLUSTER},
242 static struct valobj VOlist0[] = {
243 {V_ID, 0, LIST_TABLE, NAME, LIST_ID, MR_LIST},
247 static struct valobj VOchar0[] = {
253 static struct valobj VOfilsys0user1[] = {
254 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
255 {V_ID, 0, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
256 {V_ID, 1, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
261 * Commonly used validation records defined here so that they may
265 static struct validate VDmach = { VOmach0, 1 };
266 static struct validate VDwild0= { VOwild0, 1 };
267 static struct validate VDupwild0= { VOupwild0, 1 };
268 static struct validate VDwild2sort2 = { VOwild01sort01,4 };
269 static struct validate VDwild3sort1 = { VOwild012sort0,4 };
270 static struct validate VDsortf = {
282 static struct validate VDwildsortf = {
293 static struct validate VDsort0= { VOsort0, 1 };
296 static struct validate VDupwildsortf = {
309 static char *galo_fields[] = {
310 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE,
313 static char *gual_fields[] = {
315 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
316 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE, MOD1, MOD2, MOD3,
319 static char *gubl_fields[] = {
321 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
322 MIT_ID, CLASS, MOD1, MOD2, MOD3,
325 static struct validate gubl_validate =
338 static char *guau_fields[] = {
340 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
341 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE, MOD1, MOD2, MOD3,
344 static char *guan_fields[] = {
346 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
347 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE, MOD1, MOD2, MOD3,
350 static struct validate guan_validate =
363 static char *guac_fields[] = {
365 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
366 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE, MOD1, MOD2, MOD3,
369 static char *guam_fields[] = {
371 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
372 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE, MOD1, MOD2, MOD3,
375 static char *gubu_fields[] = {
377 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
378 MIT_ID, CLASS, MOD1, MOD2, MOD3,
381 static struct validate gubu_validate =
394 static char *gubn_fields[] = {
396 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
397 MIT_ID, CLASS, MOD1, MOD2, MOD3,
400 static struct validate gubn_validate =
413 static char *gubc_fields[] = {
415 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
416 MIT_ID, CLASS, MOD1, MOD2, MOD3,
419 static char *gubm_fields[] = {
421 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
422 MIT_ID, CLASS, MOD1, MOD2, MOD3,
425 static char *auac_fields[] = {
426 LOGIN, UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
427 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE,
430 static struct valobj auac_valobj[] = {
431 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
432 {V_CHAR, 0, USERS_TABLE, LOGIN},
433 {V_CHAR, 2, USERS_TABLE, SHELL},
434 {V_CHAR, 3, USERS_TABLE, LAST},
435 {V_CHAR, 4, USERS_TABLE, FIRST},
436 {V_CHAR, 5, USERS_TABLE, MIDDLE},
437 {V_CHAR, 7, USERS_TABLE, MIT_ID},
438 {V_TYPE, 8, 0, CLASS, 0, MR_BAD_CLASS},
439 {V_ID, 9, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
442 static struct validate auac_validate = {
454 static struct validate ausr_validate = {
466 static char *rusr_fields[] = {
467 UID, LOGIN, "fs_type"
470 static struct valobj rusr_valobj[] = {
471 {V_LOCK, 0, IMEMBERS_TABLE, 0, LIST_ID, MR_DEADLOCK},
472 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
473 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
474 {V_RLOCK, 0, MACHINE_TABLE, 0,MACH_ID, MR_DEADLOCK},
475 {V_LOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
476 {V_LOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
477 {V_LOCK, 0, QUOTA_TABLE,0, FILSYS_ID, MR_DEADLOCK},
478 {V_RLOCK,0, SERVERHOSTS_TABLE,0, MACH_ID, MR_DEADLOCK},
481 static struct validate rusr_validate = {
493 static char *uuac_fields[] = {
495 "newlogin", UID, SHELL, LAST, FIRST, MIDDLE, STATUS,
496 MIT_ID, CLASS, COMMENTS, SIGNATURE, SECURE,
499 static struct valobj uuac_valobj[] = {
500 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
501 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
502 {V_RENAME, 1, USERS_TABLE, LOGIN, USERS_ID, MR_NOT_UNIQUE},
503 {V_CHAR, 3, USERS_TABLE, SHELL},
504 {V_CHAR, 4, USERS_TABLE, FIRST},
505 {V_CHAR, 5, USERS_TABLE, LAST},
506 {V_CHAR, 6, USERS_TABLE, MIDDLE},
507 {V_CHAR, 8, USERS_TABLE, MIT_ID},
508 {V_TYPE, 9, 0, CLASS, 0, MR_BAD_CLASS},
509 {V_ID, 10, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
512 static struct validate uuac_validate = {
524 static struct validate uusr_validate = {
536 static char *uush_fields[] = {
541 static struct valobj uush_valobj[] = {
542 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
543 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
544 {V_CHAR, 1, USERS_TABLE, SHELL},
547 static struct validate uush_validate = {
559 static char *uust_fields[] = {
564 static char *uuss_fields[] = {
569 static struct validate uust_validate = {
581 static char *dusr_fields[] = {
585 struct valobj dusr_valobj[]= {
586 {V_LOCK, 0, IMEMBERS_TABLE, 0, LIST_ID, MR_DEADLOCK},
587 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
588 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
589 {V_LOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
590 {V_LOCK, 0, QUOTA_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
591 {V_LOCK, 0, HOSTACCESS_TABLE, 0, MACH_ID, MR_DEADLOCK},
592 {V_LOCK, 0, KRBMAP_TABLE, 0, "users_id", MR_DEADLOCK},
593 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
596 static struct validate dusr_validate = {
608 static char *dubu_fields[] = {
612 static struct valobj dubu_valobj[] = {
613 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
614 {V_ID, 0, USERS_TABLE, UID, USERS_ID, MR_USER}
617 static struct validate dubu_validate = {
629 static char *gkum_fields[] = { LOGIN, "kerberos",
632 static char *akum_fields[] = { LOGIN, "kerberos" };
634 static struct valobj akum_valobj[] =
636 {V_LOCK, 0, KRBMAP_TABLE, 0, "users_id", MR_DEADLOCK},
637 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
638 {V_ID, 1, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
642 static struct validate akum_validate =
647 "users_id = %d or string_id = %d",
655 static struct validate dkum_validate =
660 "users_id = %d and string_id = %d",
668 static char *gfbl_fields[] = {
670 LOGIN, "fullname", "nickname", "home_addr",
671 "home_phone", "office_addr", "office_phone", "department",
672 "affiliation", MOD1, MOD2, MOD3,
675 static struct validate gfbl_validate = {
687 static char *ufbl_fields[] = {
689 "fullname", "nickname", "home_addr",
690 "home_phone", "office_addr", "office_phone", "department",
694 static struct valobj ufbl_valobj[] = {
695 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
696 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
697 {V_LEN, 1, USERS_TABLE, "fullname"},
698 {V_LEN, 2, USERS_TABLE, "nickname"},
699 {V_LEN, 3, USERS_TABLE, "home_addr"},
700 {V_LEN, 4, USERS_TABLE, "home_phone"},
701 {V_LEN, 5, USERS_TABLE, "office_addr"},
702 {V_LEN, 6, USERS_TABLE, "office_phone"},
703 {V_LEN, 7, USERS_TABLE, "department"},
704 {V_LEN, 8, USERS_TABLE, "affiliation"},
707 static struct validate ufbl_validate = {
719 static char *gpob_fields[] = {
721 LOGIN, TYPE, "box", MOD1, MOD2, MOD3,
724 static struct validate gpob_validate = {
728 "potype != 'NONE' and users_id=%d",
736 static char *gpox_fields[] = {
740 struct valobj gpox_valobj[]={
741 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
742 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK}
745 static struct validate gpox_validate = {
757 static char *spob_fields[] = {
761 static struct valobj spob_valobj[] = {
762 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
763 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
764 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
765 {V_TYPE, 1, 0, "pobox", 0, MR_TYPE},
768 static struct validate spob_validate = /* SET_POBOX */
781 struct valobj spop_valobj[] = {
782 {V_LOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
783 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
784 {V_ID, 0, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
787 static struct validate spop_validate = /* SET_POBOX_POP */
800 static struct validate dpob_validate = /* DELETE_POBOX */
813 static char *gmac_fields[] = {
815 NAME, TYPE, MOD1, MOD2, MOD3,
818 static char *ghst_fields[] = {
819 NAME, ADDRESS, "location", "network",
820 NAME, "vendor", "model", "os", "location", "contact", "use", "status", "status_change", "network", ADDRESS, ACE_TYPE, ACE_NAME, "admin_comment", "ops_comment", "created", "creator", "inuse", MOD1, MOD2, MOD3,
823 static struct valobj ghst_valobj[] = {
831 static struct validate ghst_validate = {
843 static char *ahst_fields[] = {
844 NAME, "vendor", "model", "os", "location", "contact", "use", "status", SUBNET, ADDRESS, ACE_TYPE, ACE_NAME, "admin_comment", "ops_comment",
847 static struct valobj ahst_valobj[] = {
848 {V_CHAR, 0, MACHINE_TABLE, NAME},
849 {V_CHAR, 1, MACHINE_TABLE, "vendor"},
850 {V_CHAR, 2, MACHINE_TABLE, "model"},
851 {V_CHAR, 3, MACHINE_TABLE, "os"},
852 {V_CHAR, 4, MACHINE_TABLE, "location"},
853 {V_CHAR, 5, MACHINE_TABLE, "contact"},
854 {V_RLOCK,0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
855 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
856 {V_RLOCK, 0, SUBNET_TABLE, 0, SNET_ID, MR_DEADLOCK},
857 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
858 {V_RLOCK, 0, HOSTALIAS_TABLE, 0, MACH_ID, MR_DEADLOCK},
859 {V_ID, 8, SUBNET_TABLE, NAME, SNET_ID, MR_SUBNET},
860 {V_TYPE, 10, 0, ACE_TYPE, 0, MR_ACE},
861 {V_TYPEDATA, 11, 0, 0, 0, MR_ACE},
862 {V_ID, 12, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
863 {V_ID, 13, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
866 static struct validate ahst_validate = {
870 "name = UPPER('%s')",
875 set_uppercase_modtime,
878 static char *uhst_fields[] = {
880 "newname", "vendor", "model", "os", "location", "contact", "use", "status", SUBNET, ADDRESS, ACE_TYPE, ACE_NAME, "admin_comment", "ops_comment",
883 static struct valobj uhst_valobj[] = {
884 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
885 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
886 {V_RLOCK, 0, SUBNET_TABLE, 0, SNET_ID, MR_DEADLOCK},
887 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
888 {V_CHAR, 0, MACHINE_TABLE, "name"},
889 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
890 {V_RENAME, 1, MACHINE_TABLE, NAME, MACH_ID, MR_NOT_UNIQUE},
891 {V_CHAR, 2, MACHINE_TABLE, "vendor"},
892 {V_CHAR, 3, MACHINE_TABLE, "model"},
893 {V_CHAR, 4, MACHINE_TABLE, "os"},
894 {V_CHAR, 5, MACHINE_TABLE, "location"},
895 {V_ID, 9, SUBNET_TABLE, NAME, SNET_ID, MR_SUBNET},
896 {V_TYPE, 11, 0, ACE_TYPE, 0, MR_ACE},
897 {V_TYPEDATA, 12, 0, 0, 0, MR_ACE},
898 {V_ID, 13, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
899 {V_ID, 14, STRINGS_TABLE, "string", "string_id", MR_NO_MATCH},
902 static struct validate uhst_validate = {
914 static char *dhst_fields[] = {
918 static struct valobj dhst_valobj[] = {
919 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
920 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
921 {V_RLOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
922 {V_RLOCK, 0, SERVERHOSTS_TABLE, 0, MACH_ID, MR_DEADLOCK},
923 {V_RLOCK, 0, HOSTACCESS_TABLE, 0, MACH_ID, MR_DEADLOCK},
924 {V_RLOCK, 0, HOSTALIAS_TABLE, 0, MACH_ID, MR_DEADLOCK},
925 {V_LOCK, 0, MCMAP_TABLE, 0, MACH_ID, MR_DEADLOCK},
926 {V_RLOCK, 0, PRINTCAP_TABLE, 0, MACH_ID, MR_DEADLOCK},
927 {V_RLOCK, 0, PALLADIUM_TABLE, 0, MACH_ID, MR_DEADLOCK},
928 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
931 static struct validate dhst_validate = {
943 static char *ghal_fields[] = {
944 ALIAS, "canonical_hostname",
945 ALIAS, "canonical_hostname"
948 static struct valobj ghal_valobj[] = {
954 static struct validate ghal_validate = {
966 static struct valobj ahal_valobj[] = {
967 {V_CHAR, 0, HOSTALIAS_TABLE, NAME},
969 {V_ID, 1, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
972 static struct validate ahal_validate = {
984 static struct valobj dhal_valobj[] = {
986 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
987 {V_ID, 1, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
990 static struct validate dhal_validate = {
994 "name = '%s' AND mach_id = %d",
1002 static char *gsnt_fields[] = {
1004 NAME, DESC, ADDRESS, "mask", "low", "high", "prefix", ACE_TYPE, ACE_NAME,
1008 static struct valobj gsnt_valobj[] = {
1009 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1010 {V_RLOCK, 0, SUBNET_TABLE, 0, SNET_ID, MR_DEADLOCK},
1011 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1016 static struct validate gsnt_validate = {
1028 static char *asnt_fields[] = {
1029 NAME, DESC, ADDRESS, "mask", "low", "high", "prefix", ACE_TYPE, ACE_NAME,
1032 static struct valobj asnt_valobj[] = {
1033 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1034 {V_LOCK, 0, SUBNET_TABLE, 0, SNET_ID, MR_DEADLOCK},
1035 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1036 {V_CHAR, 0, SUBNET_TABLE, NAME},
1037 {V_LEN, 1, SUBNET_TABLE, DESC},
1038 {V_LEN, 6, SUBNET_TABLE, "prefix"},
1039 {V_TYPE, 7, 0, ACE_TYPE, 0, MR_ACE},
1040 {V_TYPEDATA, 8, 0, 0, 0, MR_ACE},
1043 static struct validate asnt_validate =
1048 "name = UPPER('%s')",
1053 set_uppercase_modtime,
1056 static char *usnt_fields[] = {
1058 "newname", DESC, ADDRESS, "mask", "low", "high", "prefix", ACE_TYPE, ACE_NAME,
1061 static struct valobj usnt_valobj[] = {
1062 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1063 {V_LOCK, 0, SUBNET_TABLE, 0, SNET_ID, MR_DEADLOCK},
1064 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1065 {V_ID, 0, SUBNET_TABLE, NAME, SNET_ID, MR_NO_MATCH},
1066 {V_RENAME, 1, SUBNET_TABLE, NAME, SNET_ID, MR_NOT_UNIQUE},
1067 {V_LEN, 2, SUBNET_TABLE, DESC},
1068 {V_LEN, 7, SUBNET_TABLE, "prefix"},
1069 {V_TYPE, 8, 0, ACE_TYPE, 0, MR_ACE},
1070 {V_TYPEDATA, 9, 0, 0, 0, MR_ACE},
1073 static struct validate usnt_validate =
1086 static char *dsnt_fields[] = {
1090 static struct valobj dsnt_valobj[] = {
1091 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1092 {V_LOCK, 0, SUBNET_TABLE, 0, SNET_ID, MR_DEADLOCK},
1093 {V_ID, 0, SUBNET_TABLE, NAME, SNET_ID, MR_SUBNET},
1096 static struct validate dsnt_validate = {
1108 static char *gclu_fields[] = {
1110 NAME, DESC, LOCATION, MOD1, MOD2, MOD3,
1113 static char *aclu_fields[] = {
1114 NAME, DESC, LOCATION,
1117 static struct valobj aclu_valobj[] = {
1118 {V_LOCK, 0, CLUSTER_TABLE, 0, CLU_ID, MR_DEADLOCK},
1119 {V_CHAR, 0, CLUSTER_TABLE, NAME},
1120 {V_LEN, 1, CLUSTER_TABLE, DESC},
1121 {V_LEN, 2, CLUSTER_TABLE, LOCATION},
1124 static struct validate aclu_validate =
1137 static char *uclu_fields[] = {
1139 "newname", DESC, LOCATION,
1142 static struct valobj uclu_valobj[] = {
1143 {V_LOCK, 0, CLUSTER_TABLE, 0, CLU_ID, MR_DEADLOCK},
1144 {V_ID, 0, CLUSTER_TABLE, NAME, CLU_ID, MR_CLUSTER},
1145 {V_RENAME, 1, CLUSTER_TABLE, NAME, CLU_ID, MR_NOT_UNIQUE},
1146 {V_LEN, 2, CLUSTER_TABLE, DESC},
1147 {V_LEN, 3, CLUSTER_TABLE, LOCATION},
1150 static struct validate uclu_validate = {
1162 static char *dclu_fields[] = {
1166 static struct validate dclu_validate = {
1178 static char *gmcm_fields[] = {
1183 static struct valobj gmcm_valobj[] =
1191 static struct validate gmcm_validate = { gmcm_valobj, 4 };
1193 static struct valobj amtc_valobj[] = /* ADD_MACHINE_TO_CLUSTER */
1194 { /* DELETE_MACHINE_FROM_CLUSTER */
1195 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1196 {V_ID, 1, CLUSTER_TABLE, NAME, CLU_ID, MR_CLUSTER},
1199 static struct validate amtc_validate = /* for amtc and dmfc */
1204 "mach_id = %d and clu_id = %d",
1209 set_mach_modtime_by_id,
1212 static char *gcld_fields[] = {
1213 CLUSTER, "serv_label",
1214 CLUSTER, "serv_label", "serv_cluster",
1217 static char *acld_fields[] = {
1218 CLUSTER, "serv_label", "serv_cluster",
1221 static struct valobj acld_valobj[] =
1223 {V_ID, 0, CLUSTER_TABLE, NAME, CLU_ID, MR_CLUSTER},
1224 {V_CHAR, 1, SVC_TABLE, "serv_label"},
1225 {V_CHAR, 2, SVC_TABLE, "serv_cluster"}
1228 static struct validate acld_validate =
1233 "clu_id = %d AND serv_label = '%s' AND serv_cluster = '%s'",
1238 set_cluster_modtime_by_id,
1241 static struct valobj dcld_valobj[] =
1243 {V_ID, 0, CLUSTER_TABLE, NAME, CLU_ID, MR_CLUSTER},
1246 static struct validate dcld_validate =
1251 "clu_id = %d AND serv_label = '%s' AND serv_cluster = '%s'",
1256 set_cluster_modtime_by_id,
1259 static char *glin_fields[] = {
1261 NAME, "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1262 ACE_TYPE, ACE_NAME, DESC, MOD1, MOD2, MOD3,
1265 static struct validate glin_validate = {
1272 access_vis_list_by_name,
1277 static char *alis_fields[] = {
1278 NAME, "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1279 ACE_TYPE, ACE_NAME, DESC,
1282 static struct valobj alis_valobj[] = {
1283 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1284 {V_LOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1285 {V_CHAR, 0, LIST_TABLE, NAME},
1286 {V_TYPE, 7, 0, ACE_TYPE, 0, MR_ACE},
1287 {V_TYPEDATA, 8, 0, 0, LIST_ID, MR_ACE},
1288 {V_LEN, 9, LIST_TABLE, DESC},
1291 static struct validate alis_validate = {
1303 static char *ulis_fields[] = {
1305 "newname", "active", "publicflg", "hidden", "maillist", "grouplist", "gid",
1306 ACE_TYPE, ACE_NAME, DESC,
1309 static struct valobj ulis_valobj[] = {
1310 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1311 {V_LOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1312 {V_ID, 0, LIST_TABLE, NAME, LIST_ID, MR_LIST},
1313 {V_RENAME, 1, LIST_TABLE, NAME, LIST_ID, MR_NOT_UNIQUE},
1314 {V_TYPEDATA, 9, 0, 0, LIST_ID, MR_ACE},
1315 {V_CHAR, 1, LIST_TABLE, NAME},
1316 {V_LEN, 10, LIST_TABLE, DESC},
1319 static struct validate ulis_validate = {
1331 static char *dlis_fields[] = {
1335 static struct valobj dlis_valobj[] ={
1336 {V_RLOCK, 0, CAPACLS_TABLE, 0, LIST_ID, MR_DEADLOCK},
1337 {V_RLOCK, 0, IMEMBERS_TABLE, 0, LIST_ID, MR_DEADLOCK},
1338 {V_RLOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1339 {V_LOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1340 {V_RLOCK, 0, QUOTA_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1341 {V_RLOCK, 0, ZEPHYR_TABLE, 0, ZEPH_ID, MR_DEADLOCK},
1342 {V_RLOCK, 0, HOSTACCESS_TABLE, 0, MACH_ID, MR_DEADLOCK},
1343 {V_ID, 0, LIST_TABLE, NAME, LIST_ID, MR_LIST}
1346 static struct validate dlis_validate = {
1358 static char *amtl_fields[] = {
1359 "list_name", "member_type", "member_name",
1362 static struct valobj amtl_valobj[] = {
1363 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1364 {V_LOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1365 {V_ID, 0, LIST_TABLE, NAME, LIST_ID, MR_LIST},
1366 {V_TYPE, 1, 0, "member", 0, MR_TYPE},
1367 {V_TYPEDATA, 2, 0, 0, 0, MR_NO_MATCH},
1370 static struct validate amtl_validate =
1383 static struct validate dmfl_validate =
1393 delete_member_from_list,
1396 static char *gaus_fields[] = {
1398 "use_type", "use_name",
1401 static struct valobj gaus_valobj[] = {
1402 {V_RLOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1403 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1404 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1405 {V_RLOCK, 0, ZEPHYR_TABLE, 0, ZEPH_ID, MR_DEADLOCK},
1406 {V_RLOCK, 0, HOSTACCESS_TABLE, 0, MACH_ID, MR_DEADLOCK},
1407 {V_TYPE, 0, 0, "gaus", 0, MR_TYPE},
1408 {V_TYPEDATA, 1, 0, 0, 0, MR_NO_MATCH},
1411 static struct validate gaus_validate = {
1423 static char *qgli_fields[] = {
1424 "active", "publicflg", "hidden", "maillist", "grouplist",
1428 static struct valobj qgli_valobj[] = {
1429 {V_TYPE, 0, 0, "boolean", 0, MR_TYPE},
1430 {V_TYPE, 1, 0, "boolean", 0, MR_TYPE},
1431 {V_TYPE, 2, 0, "boolean", 0, MR_TYPE},
1432 {V_TYPE, 3, 0, "boolean", 0, MR_TYPE},
1433 {V_TYPE, 4, 0, "boolean", 0, MR_TYPE},
1436 static struct validate qgli_validate = {
1445 qualified_get_lists,
1448 static char *gmol_fields[] = {
1450 "member_type", "member_name",
1453 static struct valobj gmol_valobj[]={
1454 {V_LOCK, 0, IMEMBERS_TABLE, 0, LIST_ID, MR_DEADLOCK},
1455 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1456 {V_ID, 0, LIST_TABLE, NAME, LIST_ID, MR_LIST},
1459 static struct validate gmol_validate = {
1466 access_visible_list,
1468 get_members_of_list,
1471 static struct validate geml_validate = {
1478 access_visible_list,
1480 get_end_members_of_list,
1483 static char *glom_fields[] = {
1484 "member_type", "member_name",
1485 "list_name", "active", "publicflg", "hidden", "maillist", "grouplist",
1488 static struct valobj glom_valobj[] = {
1489 {V_LOCK, 0, IMEMBERS_TABLE, 0, LIST_ID, MR_DEADLOCK},
1490 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1491 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1492 {V_TYPE, 0, 0, "rmember", 0, MR_TYPE},
1493 {V_TYPEDATA, 1, 0, 0, 0, MR_NO_MATCH},
1497 static struct validate glom_validate = {
1506 get_lists_of_member,
1509 static char *cmol_fields[] = {
1514 static struct validate cmol_validate = {
1521 access_visible_list,
1523 count_members_of_list,
1526 static char *gsin_fields[] = {
1528 SERVICE, "update_int", "target_file", "script", "dfgen", "dfcheck",
1529 TYPE, "enable", "inprogress", "harderror", "errmsg",
1530 ACE_TYPE, ACE_NAME, MOD1, MOD2, MOD3,
1533 static struct valobj gsin_valobj[] =
1535 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1536 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1540 static struct validate gsin_validate =
1553 static char *qgsv_fields[] = {
1554 "enable", "inprogress", "harderror",
1558 static struct valobj qgsv_valobj[] = {
1559 {V_TYPE, 0, 0, "boolean", 0, MR_TYPE},
1560 {V_TYPE, 1, 0, "boolean", 0, MR_TYPE},
1561 {V_TYPE, 2, 0, "boolean", 0, MR_TYPE},
1564 static struct validate qgsv_validate = {
1573 qualified_get_server,
1576 static char *asin_fields[] = {
1577 SERVICE, "update_int", "target_file", "script", TYPE, "enable",
1581 static struct valobj asin_valobj[] = {
1582 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1583 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1584 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1585 {V_CHAR, 0, SERVERS_TABLE, SERVICE},
1586 {V_LEN, 2, SERVERS_TABLE, "target_file"},
1587 {V_LEN, 3, SERVERS_TABLE, "script"},
1588 {V_TYPE, 4, 0, "service", 0, MR_TYPE},
1589 {V_TYPE, 6, 0, ACE_TYPE, 0, MR_ACE},
1590 {V_TYPEDATA, 7, 0, 0, 0, MR_ACE},
1593 static struct validate asin_validate = /* for asin, usin */
1598 "name = UPPER('%s')",
1603 set_uppercase_modtime,
1606 static struct validate rsve_validate = {
1610 "name = UPPER('%s')",
1615 set_uppercase_modtime,
1618 static char *ssif_fields[] = {
1619 SERVICE, "dfgen", "dfcheck", "inprogress", "harderror", "errmsg",
1622 static struct valobj ssif_valobj[] = {
1623 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1624 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1625 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1626 {V_LEN, 5, SERVERS_TABLE, "errmsg"},
1629 static struct validate ssif_validate = {
1633 "name = UPPER('%s')",
1641 static char *dsin_fields[] = {
1645 static struct validate dsin_validate = {
1649 "name = UPPER('%s')",
1657 static char *gshi_fields[] = {
1659 SERVICE, MACHINE, "enable", "override", "success", "inprogress",
1660 "hosterror", "hosterrormsg", "ltt", "lts", "value1", "value2",
1661 "value3", MOD1, MOD2, MOD3,
1664 static struct valobj gshi_valobj[] = {
1669 static struct validate gshi_validate = {
1681 static char *qgsh_fields[] = {
1682 "service", "enable", "override", "success", "inprogress", "hosterror",
1686 static struct valobj qgsh_valobj[] = {
1687 {V_TYPE, 1, 0, "boolean", 0, MR_TYPE},
1688 {V_TYPE, 2, 0, "boolean", 0, MR_TYPE},
1689 {V_TYPE, 3, 0, "boolean", 0, MR_TYPE},
1690 {V_TYPE, 4, 0, "boolean", 0, MR_TYPE},
1691 {V_TYPE, 5, 0, "boolean", 0, MR_TYPE},
1694 static struct validate qgsh_validate = {
1703 qualified_get_serverhost,
1706 static char *ashi_fields[] = {
1707 SERVICE, MACHINE, "enable", "value1", "value2", "value3",
1710 static struct valobj ashi_valobj[] = {
1711 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1712 {V_NAME, 0, SERVERS_TABLE, NAME, 0, MR_SERVICE},
1713 {V_LOCK, 0, SERVERHOSTS_TABLE,0, MACH_ID, MR_DEADLOCK},
1714 {V_ID, 1, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1715 {V_CHAR, 0, SERVERHOSTS_TABLE, NAME},
1716 {V_LEN, 5, SERVERHOSTS_TABLE, "value3"},
1719 static struct validate ashi_validate = /* ashi & ushi */
1724 "service = UPPER('%s') AND mach_id = %d",
1729 set_serverhost_modtime,
1732 static struct validate rshe_validate =
1737 "service = UPPER('%s') AND mach_id = %d",
1742 set_serverhost_modtime,
1745 static struct validate ssho_validate =
1750 "service = UPPER('%s') AND mach_id = %d",
1758 static char *sshi_fields[] = {
1759 "service", MACHINE, "override", "success", "inprogress",
1760 "hosterror", "errmsg", "ltt", "lts",
1763 static struct valobj sshi_valobj[] = {
1764 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1765 {V_NAME, 0, SERVERS_TABLE, NAME, 0, MR_SERVICE},
1766 {V_ID, 1, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE}, /** Was this ok to add? */
1767 {V_LEN, 5, SERVERS_TABLE, "errmsg"},
1770 static struct validate sshi_validate =
1783 static char *dshi_fields[] = {
1787 static struct validate dshi_validate =
1792 "service = UPPER('%s') AND mach_id = %d",
1800 static char *gslo_fields[] = {
1805 static char *gfsl_fields[] = {
1807 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1808 "create", "lockertype", MOD1, MOD2, MOD3,
1811 static char *gfsm_fields[] = {
1813 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1814 "create", "lockertype", MOD1, MOD2, MOD3,
1817 static struct valobj gfsm_valobj[] = {
1818 {V_RLOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1819 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1822 static struct validate gfsm_validate = {
1834 static char *gfsn_fields[] = {
1835 MACHINE, "parition",
1836 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1837 "create", "lockertype", MOD1, MOD2, MOD3,
1840 static struct valobj gfsn_valobj[] =
1842 {V_RLOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1843 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1847 static struct validate gfsn_validate = {
1859 static char *gfsp_fields[] = {
1861 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1862 "create", "lockertype", MOD1, MOD2, MOD3,
1865 static char *gfsg_fields[] = {
1867 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1868 "create", "lockertype", MOD1, MOD2, MOD3,
1871 static struct valobj gfsg_valobj[] = {
1872 {V_RLOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1873 {V_ID, 0, LIST_TABLE, NAME, LIST_ID, MR_LIST}
1876 static struct validate gfsg_validate = {
1888 static char *afil_fields[] = {
1889 LABEL, TYPE, MACHINE, NAME, "mount", "access", COMMENTS, "owner", "owners",
1890 "create", "lockertype",
1893 static struct valobj afil_valobj[] = {
1894 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1895 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1896 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1897 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1898 {V_CHAR, 0, FILESYS_TABLE, LABEL},
1899 {V_TYPE, 1, 0, "filesys", 0, MR_FSTYPE},
1900 {V_ID, 2, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1901 {V_CHAR, 3, FILESYS_TABLE, NAME},
1902 {V_LEN, 4, FILESYS_TABLE, "mount"},
1903 {V_LEN, 6, FILESYS_TABLE, COMMENTS},
1904 {V_ID, 7, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
1905 {V_ID, 8, LIST_TABLE, NAME, LIST_ID, MR_LIST},
1906 {V_TYPE, 10, 0, "lockertype", 0, MR_TYPE},
1909 static struct validate afil_validate = {
1918 set_filesys_modtime,
1921 static char *ufil_fields[] = {
1922 LABEL, "newlabel", TYPE, MACHINE, NAME, "mount", "access", COMMENTS,
1923 "owner", "owners", "create", "lockertype",
1926 static struct valobj ufil_valobj[] = {
1927 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1928 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
1929 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
1930 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
1931 {V_LOCK, 0, QUOTA_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1932 {V_ID, 0, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
1933 {V_RENAME, 1, FILESYS_TABLE, LABEL, FILSYS_ID, MR_NOT_UNIQUE},
1934 {V_TYPE, 2, 0, "filesys", 0, MR_FSTYPE},
1935 {V_ID, 3, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
1936 {V_CHAR, 4, FILESYS_TABLE, NAME},
1937 {V_LEN, 5, FILESYS_TABLE, "mount"},
1938 {V_LEN, 7, FILESYS_TABLE, COMMENTS},
1939 {V_ID, 8, USERS_TABLE, LOGIN, USERS_ID, MR_USER},
1940 {V_ID, 9, LIST_TABLE, NAME, LIST_ID, MR_LIST},
1941 {V_TYPE, 11, 0, "lockertype", 0, MR_TYPE},
1944 static struct validate ufil_validate = {
1953 set_filesys_modtime,
1956 static char *dfil_fields[] = {
1960 static struct valobj dfil_valobj[] = {
1961 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1962 {V_LOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
1963 {V_LOCK, 0, QUOTA_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
1964 {V_LOCK, 0, FSGROUP_TABLE, 0, "filsys_id", MR_DEADLOCK},
1965 {V_ID, 0, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
1968 static struct validate dfil_validate = {
1980 static char *gfgm_fields[] = {
1981 "fsgroup", FILESYS, "sortkey"
1984 static struct valobj gfgm_valobj[] = {
1985 {V_ID, 0, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
1990 static struct validate gfgm_validate = {
2002 static struct valobj aftg_valobj[] = {
2003 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
2004 {V_LOCK, 0, FSGROUP_TABLE, 0, "filsys_id", MR_DEADLOCK},
2005 {V_ID, 0, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
2006 {V_ID, 1, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
2009 static struct validate aftg_validate = {
2013 "group_id = %d and filsys_id = %d",
2021 static char *ganf_fields[] = {
2022 MACHINE, DIR, DEVICE, STATUS, "allocated", "size", MOD1, MOD2, MOD3,
2025 static char *gnfp_fields[] = {
2027 MACHINE, DIR, DEVICE, STATUS, "allocated", "size", MOD1, MOD2, MOD3,
2030 static struct valobj gnfp_valobj[] = {
2031 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2032 {V_RLOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
2036 static struct validate gnfp_validate = {
2048 static struct valobj anfp_valobj[] = {
2049 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
2050 {V_LOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
2051 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2052 {V_CHAR, 1, NFSPHYS_TABLE, "dir"},
2053 {V_LEN, 2, NFSPHYS_TABLE, "device"},
2056 static struct validate anfp_validate = {
2060 "mach_id = %d and dir = '%s'",
2065 set_nfsphys_modtime,
2068 static struct validate unfp_validate = {
2072 "mach_id = %d and dir = '%s'",
2077 set_nfsphys_modtime,
2080 static char *ajnf_fields[] = {
2081 MACHINE, DIR, "adjustment",
2084 static char *dnfp_fields[] = {
2088 static struct valobj dnfp_valobj[] = {
2089 {V_RLOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
2090 {V_LOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
2091 {V_LOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
2092 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2096 static struct validate dnfp_validate = {
2100 "mach_id = %d and dir = '%s'",
2105 set_nfsphys_modtime,
2108 static char *gqot_fields[] = {
2109 FILESYS, TYPE, NAME,
2110 FILESYS, TYPE, NAME, QUOTA, DIR, MACHINE, MOD1, MOD2, MOD3,
2113 static struct valobj gqot_valobj[] = {
2114 {V_RLOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
2115 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
2116 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
2117 {V_RLOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
2118 {V_RLOCK, 0, QUOTA_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
2120 {V_TYPE, 1, 0, QUOTA_TYPE, 0, MR_TYPE},
2121 {V_TYPEDATA, 2, 0, 0, 0, MR_ACE},
2122 {V_SORT, 0, 0, 0, 0, 0},
2125 static struct validate gqot_validate = {
2137 static char *gqbf_fields[] = {
2139 FILESYS, TYPE, NAME, QUOTA, DIR, MACHINE, MOD1, MOD2, MOD3,
2142 static struct validate gqbf_validate = {
2154 static char *aqot_fields[] = {
2155 FILESYS, TYPE, NAME, QUOTA,
2158 static struct valobj aqot_valobj[] = {
2159 {V_LOCK, 0, FILESYS_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
2160 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
2161 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
2162 {V_LOCK, 0, NFSPHYS_TABLE, 0, "nfsphys_id", MR_DEADLOCK},
2163 {V_LOCK, 0, QUOTA_TABLE, 0, FILSYS_ID, MR_DEADLOCK},
2164 {V_ID, 0, FILESYS_TABLE, LABEL, FILSYS_ID, MR_FILESYS},
2165 {V_TYPE, 1, 0, QUOTA_TYPE, 0, MR_TYPE},
2166 {V_TYPEDATA, 2, 0, 0, 0, MR_ACE},
2169 static struct validate aqot_validate = {
2173 "filsys_id = %d and type = '%s' and entity_id = %d",
2181 static struct validate uqot_validate = {
2185 "filsys_id = %d AND type = '%s' AND entity_id = %d",
2193 static struct validate dqot_validate = {
2197 "filsys_id = %d AND type = '%s' AND entity_id = %d",
2205 static char *gnfq_fields[] = {
2207 FILESYS, LOGIN, QUOTA, DIR, MACHINE, MOD1, MOD2, MOD3,
2210 static struct validate gnfq_validate = {
2222 static char *gnqp_fields[] = {
2224 FILESYS, LOGIN, QUOTA, DIR, MACHINE, MOD1, MOD2, MOD3,
2227 static struct valobj gnqp_valobj[] = {
2228 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2232 static struct validate gnqp_validate = { gnqp_valobj, 2, };
2234 static char *anfq_fields[] = {
2235 FILESYS, LOGIN, QUOTA,
2238 static struct validate anfq_validate = {
2242 "filsys_id = %d AND type = 'USER' AND entity_id = %d",
2250 static struct validate unfq_validate = {
2254 "filsys_id = %d AND type = 'USER' AND entity_id = %d",
2262 static struct validate dnfq_validate = {
2266 "filsys_id = %d AND entity_id = %d",
2274 static char *gzcl_fields[] = {
2276 CLASS, "xmt_type", "xmt_name", "sub_type", "sub_name",
2277 "iws_type", "iws_name", "iui_type", "iui_name", MOD1, MOD2, MOD3,
2280 static struct valobj gzcl_valobj[] = {
2281 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
2282 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
2283 {V_RLOCK, 0, ZEPHYR_TABLE, 0, ZEPH_ID, MR_DEADLOCK},
2287 static struct validate gzcl_validate = {
2299 static char *azcl_fields[] = {
2300 CLASS, "xmt_type", "xmt_name", "sub_type", "sub_name",
2301 "iws_type", "iws_name", "iui_type", "iui_name",
2304 static struct valobj azcl_valobj[] = {
2305 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
2306 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
2307 {V_LOCK, 0, ZEPHYR_TABLE, 0, ZEPH_ID, MR_DEADLOCK},
2308 {V_CHAR, 0, ZEPHYR_TABLE, CLASS},
2309 {V_TYPE, 1, 0, ACE_TYPE, 0, MR_ACE},
2310 {V_TYPEDATA, 2, 0, 0, LIST_ID, MR_ACE},
2311 {V_TYPE, 3, 0, ACE_TYPE, 0, MR_ACE},
2312 {V_TYPEDATA, 4, 0, 0, LIST_ID, MR_ACE},
2313 {V_TYPE, 5, 0, ACE_TYPE, 0, MR_ACE},
2314 {V_TYPEDATA, 6, 0, 0, LIST_ID, MR_ACE},
2315 {V_TYPE, 7, 0, ACE_TYPE, 0, MR_ACE},
2316 {V_TYPEDATA, 8, 0, 0, LIST_ID, MR_ACE},
2319 static struct validate azcl_validate = {
2331 static char *uzcl_fields[] = {
2332 CLASS, "newclass", "xmt_type", "xmt_name", "sub_type", "sub_name",
2333 "iws_type", "iws_name", "iui_type", "iui_name",
2336 static struct valobj uzcl_valobj[] = {
2337 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
2338 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
2339 {V_LOCK, 0, ZEPHYR_TABLE, 0, ZEPH_ID, MR_DEADLOCK},
2340 {V_RENAME, 1, ZEPHYR_TABLE, CLASS, 0, MR_NOT_UNIQUE},
2341 {V_TYPE, 2, 0, ACE_TYPE, 0, MR_ACE},
2342 {V_TYPEDATA, 3, 0, 0, LIST_ID, MR_ACE},
2343 {V_TYPE, 4, 0, ACE_TYPE, 0, MR_ACE},
2344 {V_TYPEDATA, 5, 0, 0, LIST_ID, MR_ACE},
2345 {V_TYPE, 6, 0, ACE_TYPE, 0, MR_ACE},
2346 {V_TYPEDATA, 7, 0, 0, LIST_ID, MR_ACE},
2347 {V_TYPE, 8, 0, ACE_TYPE, 0, MR_ACE},
2348 {V_TYPEDATA, 9, 0, 0, LIST_ID, MR_ACE},
2351 static struct validate uzcl_validate = {
2363 static struct validate dzcl_validate = {
2375 static char *gsha_fields[] = {
2377 MACHINE, ACE_TYPE, ACE_NAME, MOD1, MOD2, MOD3,
2380 static struct validate gsha_validate =
2393 static char *asha_fields[] = {
2394 MACHINE, ACE_TYPE, ACE_NAME,
2397 static struct valobj asha_valobj[] = {
2398 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
2399 {V_ID, 0, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2400 {V_RLOCK, 0, LIST_TABLE, 0, LIST_ID, MR_DEADLOCK},
2401 {V_TYPE, 1, 0, ACE_TYPE, 0, MR_ACE},
2402 {V_TYPEDATA, 2, 0, 0, 0, MR_ACE},
2405 static struct validate asha_validate =
2418 static char *gsvc_fields[] = {
2420 SERVICE, "protocol", "port", DESC, MOD1, MOD2, MOD3,
2423 static char *asvc_fields[] = {
2424 SERVICE, "protocol", "port", DESC,
2427 static struct valobj asvc_valobj[] = {
2428 {V_CHAR, 0, SERVICES_TABLE, NAME},
2429 {V_CHAR, 1, SERVICES_TABLE, "protocol"},
2430 {V_CHAR, 3, SERVICES_TABLE, DESC},
2433 static struct validate asvc_validate = {
2445 static char *gpce_fields[] = {
2447 "printer", "spooling_host", "spool_directory", "rprinter",
2448 "quotaserver", "authenticate", "price", COMMENTS,
2452 static struct valobj gpce_valobj[]={
2453 {V_RLOCK, 0, USERS_TABLE, 0, USERS_ID, MR_DEADLOCK},
2454 {V_RLOCK, 0, MACHINE_TABLE, 0, MACH_ID, MR_DEADLOCK},
2455 {V_RLOCK, 0, PRINTCAP_TABLE, 0, MACH_ID, MR_DEADLOCK},
2460 static struct validate gpce_validate = {
2472 static char *apce_fields[] = {
2473 "printer", "spooling_host", "spool_directory", "rprinter",
2474 "quotaserver", "authenticate", "price", COMMENTS,
2478 static struct valobj apce_valobj[] = {
2479 {V_CHAR, 0, PRINTCAP_TABLE, NAME},
2480 {V_ID, 1, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2481 {V_LEN, 2, PRINTCAP_TABLE, "dir"},
2482 {V_LEN, 3, PRINTCAP_TABLE, "rp"},
2483 {V_ID, 4, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2484 {V_CHAR, 7, PRINTCAP_TABLE, "comments"},
2487 static struct validate apce_validate = {
2499 static struct validate dpce_validate = {
2511 static char *gpcp_fields[] = {
2513 "printer", "spooling_host", "spool_directory", "rprinter", COMMENTS,
2517 static char *gpdm_fields[] = {
2519 NAME, "rpcnum", "host", MOD1, MOD2, MOD3,
2522 static char *apdm_fields[] = {
2523 NAME, "rpcnum", "host"
2526 static struct valobj apdm_valobj[] = {
2527 {V_CHAR, 0, PALLADIUM_TABLE, NAME},
2528 {V_ID, 2, MACHINE_TABLE, NAME, MACH_ID, MR_MACHINE},
2531 static struct validate apdm_validate = {
2543 static struct validate dpdm_validate = {
2555 static char *gali_fields[] = {
2556 NAME, TYPE, "trans",
2557 NAME, TYPE, "trans",
2560 static char *aali_fields[] = {
2561 NAME, TYPE, "trans",
2564 static struct valobj aali_valobj[] = {
2565 {V_CHAR, 0, ALIAS_TABLE, NAME},
2566 {V_TYPE, 1, 0, ALIAS, 0, MR_TYPE},
2567 {V_CHAR, 2, ALIAS_TABLE, "trans"},
2570 static struct validate aali_validate = {
2574 "name = '%s' and type = '%s' and trans = '%s'",
2582 static struct validate dali_validate = /* DELETE_ALIAS */
2587 "name = '%s' and type = '%s' and trans = '%s'",
2595 static char *gval_fields[] = {
2599 static struct valobj gval_valobj[] = {
2600 {V_NAME, 0, NUMVALUES_TABLE, NAME, 0, MR_NO_MATCH},
2603 static struct validate gval_validate = {
2615 static char *aval_fields[] = {
2619 static struct valobj aval_valobj[] = {
2620 {V_CHAR, 0, NUMVALUES_TABLE, NAME},
2623 static struct validate aval_validate = /* for aval, uval, and dval */
2636 static char *dval_fields[] = {
2640 static char *gats_fields[] = {
2641 "table_name", "appends", "updates", "deletes", MOD1, MOD2, MOD3,
2644 static char *_sdl_fields[] = {
2648 static struct validate _sdl_validate =
2663 /* Generalized Query Definitions */
2665 /* Note: For any query which uses prefetch_value, the vcnt should be
2666 * one less than the number of %-format specifiers in the tlist.
2669 struct query Queries2[] = {
2671 /* Q_GALO - GET_ALL_LOGINS */
2677 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle FROM users u",
2686 /* Q_GAAL - GET_ALL_ACTIVE_LOGINS */
2687 "get_all_active_logins",
2692 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle FROM users u",
2701 /* Q_GUAL - GET_USER_ACCOUNT_BY_LOGIN */
2702 "get_user_account_by_login",
2707 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, u.signature, u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
2710 "u.login LIKE '%s' ESCAPE '*' AND u.users_id != 0 AND u.comments = str.string_id",
2716 /* Q_GUAU - GET_USER_ACCOUNT_BY_UID */
2717 "get_user_account_by_uid",
2722 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, u.signature, u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
2725 "u.unix_uid = %s AND u.users_id != 0 AND u.comments = str.string_id",
2731 /* Q_GUAN - GET_USER_ACCOUNT_BY_NAME */
2732 "get_user_account_by_name",
2737 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, u.signature, u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
2740 "u.first LIKE '%s' ESCAPE '*' AND u.last LIKE '%s' ESCAPE '*' AND u.users_id != 0 and u.comments = str.string_id",
2746 /* Q_GUAC - GET_USER_ACCOUNT_BY_CLASS */
2747 "get_user_account_by_class",
2752 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, u.signature, u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
2755 "u.type = UPPER('%s') AND u.users_id != 0 AND u.comments = str.string_id",
2761 /* Q_GUAM - GET_USER_ACCOUNT_BY_MITID */
2762 "get_user_account_by_id",
2767 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, str.string, u.signature, u.secure, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u, strings str",
2770 "u.clearid LIKE '%s' ESCAPE '*' AND u.users_id != 0 AND u.comments = str.string_id",
2776 /* Q_GUBL - GET_USER_BY_LOGIN */
2777 "get_user_by_login",
2782 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
2785 "u.login LIKE '%s' ESCAPE '*' AND u.users_id != 0",
2791 /* Q_GUBU - GET_USER_BY_UID */
2797 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
2800 "u.unix_uid = %s AND u.users_id != 0",
2806 /* Q_GUBN - GET_USER_BY_NAME */
2812 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
2815 "u.first LIKE '%s' ESCAPE '*' AND u.last LIKE '%s' ESCAPE '*' AND u.users_id != 0",
2821 /* Q_GUBC - GET_USER_BY_CLASS */
2822 "get_user_by_class",
2827 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
2830 "u.type = UPPER('%s') AND u.users_id != 0",
2836 /* Q_GUBM - GET_USER_BY_MITID */
2837 "get_user_by_mitid",
2842 "u.login, u.unix_uid, u.shell, u.last, u.first, u.middle, u.status, u.clearid, u.type, TO_CHAR(u.modtime, 'DD-mon-YYYY HH24:MI:SS'), u.modby, u.modwith FROM users u",
2845 "u.clearid LIKE '%s' ESCAPE '*' AND u.users_id != 0",
2851 /* Q_AUAC - ADD_USER_ACCOUNT */ /* uses prefetch_value() for users_id */
2857 "INTO users (login, unix_uid, shell, last, first, middle, status, clearid, type, comments, signature, secure, users_id) VALUES ('%s', %s, '%s', NVL('%s',CHR(0)), NVL('%s',CHR(0)), NVL('%s',CHR(0)), %s, NVL('%s',CHR(0)), '%s', %d, LENGTH(NVL('%s',CHR(0))), %s, %s)", /* followup_ausr fixes signature field */
2866 /* Q_AUSR - ADD_USER */ /* uses prefetch_value() for users_id */
2872 "INTO users (login, unix_uid, shell, last, first, middle, status, clearid, type, comments, signature, secure, users_id) VALUES ('%s', %s, '%s', NVL('%s',CHR(0)), NVL('%s',CHR(0)), NVL('%s',CHR(0)), %s, NVL('%s',CHR(0)), '%s', 0, CHR(0), 0, %s)",
2881 /* Q_RUSR - REGISTER_USER */
2896 /* Q_UUAC - UPDATE_USER_ACCOUNT */
2897 "update_user_account",
2902 "users SET login = '%s', unix_uid = %s, shell = '%s', last = NVL('%s',CHR(0)), first = NVL('%s',CHR(0)), middle = NVL('%s',CHR(0)), status = %s, clearid = NVL('%s',CHR(0)), type = '%s', comments = %d, signature = LENGTH(NVL('%s',CHR(0))), secure = %s", /* followup_uuac fixes signature */
2911 /* Q_UUSR - UPDATE_USER */
2917 "users SET login = '%s', unix_uid = %s, shell = '%s', last = NVL('%s',CHR(0)), first = NVL('%s',CHR(0)), middle = NVL('%s',CHR(0)), status = %s, clearid = NVL('%s',CHR(0)), type = '%s'",
2926 /* Q_UUSH - UPDATE_USER_SHELL */
2927 "update_user_shell",
2932 "users SET shell = '%s'",
2941 /* Q_UUST - UPDATE_USER_STATUS */
2942 "update_user_status",
2947 "users SET status = %s",
2956 /* Q_UUSS - UPDATE_USER_SECURITY_STATUS */
2957 "update_user_security_status",
2962 "users SET secure = %s",
2971 /* Q_DUSR - DELETE_USER */
2986 /* Q_DUBU - DELETE_USER_BY_UID */
2987 "delete_user_by_uid",
3001 /* Q_GKUM - GET_KERBEROS_USER_MAP */
3002 "get_kerberos_user_map",
3007 "u.login, str.string FROM krbmap km, users u, strings str",
3010 "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",
3016 /* Q_AKUM - ADD_KERBEROS_USER_MAP */
3017 "add_kerberos_user_map",
3022 "INTO krbmap (users_id, string_id) VALUES (%d, %d)",
3031 /* Q_DKUM - DELETE_KERBEROS_USER_MAP */
3032 "delete_kerberos_user_map",
3040 "users_id = %d AND string_id = %d",
3046 /* Q_GFBL - GET_FINGER_BY_LOGIN */
3047 "get_finger_by_login",
3052 "login, fullname, nickname, home_addr, home_phone, office_addr, office_phone, department, affiliation, TO_CHAR(fmodtime, 'DD-mon-YYYY HH24:MI:SS'), fmodby, fmodwith FROM users",
3061 /* Q_UFBL - UPDATE_FINGER_BY_LOGIN */
3062 "update_finger_by_login",
3067 "users SET fullname= NVL('%s',CHR(0)),nickname= NVL('%s',CHR(0)),home_addr= NVL('%s',CHR(0)),home_phone= NVL('%s',CHR(0)),office_addr= NVL('%s',CHR(0)),office_phone= NVL('%s',CHR(0)),department= NVL('%s',CHR(0)),affiliation= NVL('%s',CHR(0))",
3076 /* Q_GPOB - GET_POBOX */
3082 "login, potype, pop_id || ':' || box_id, TO_CHAR(pmodtime, 'DD-mon-YYYY HH24:MI:SS'), pmodby, pmodwith FROM users",
3091 /* Q_GAPO - GET_ALL_POBOXES */
3097 "login, potype, pop_id || ':' || box_id FROM users",
3106 /* Q_GPOP - GET_POBOXES_POP */
3112 "login, potype, pop_id || ':' || box_id FROM users",
3121 /* Q_GPOF - GET_POBOXES_SMTP */
3127 "login, potype, pop_id || ':' || box_id FROM users",
3136 /* Q_SPOB - SET_POBOX */
3151 /* Q_SPOP - SET_POBOX_POP */
3157 "users SET potype = 'POP'",
3166 /* Q_DPOB - DELETE_POBOX */
3172 "users SET potype = 'NONE'",
3181 /* Q_GHST - GET_HOST */
3187 "m.name, m.vendor, m.model, m.os, m.location, m.contact, m.use, m.status, TO_CHAR(m.statuschange, 'DD-mon-YYYY HH24:MI:SS'), s.name, m.address, m.owner_type, m.owner_id, m.acomment, m.ocomment, TO_CHAR(m.created, 'DD-mon-YYYY HH24:MI:SS'), m.creator, TO_CHAR(m.inuse, 'DD-mon-YYYY HH24:MI:SS'), TO_CHAR(m.modtime, 'DD-mon-YYYY HH24:MI:SS'), m.modby, m.modwith FROM machine m, subnet s",
3190 "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",
3196 /* Q_AHST - ADD_HOST */ /* uses prefetch_value() for mach_id */
3202 "INTO machine (name, vendor, model, os, location, contact, use, status, statuschange, snet_id, address, owner_type, owner_id, acomment, ocomment, created, inuse, mach_id, creator) VALUES (UPPER('%s'),NVL(UPPER('%s'),CHR(0)),NVL(UPPER('%s'),CHR(0)),NVL(UPPER('%s'),CHR(0)),NVL(UPPER('%s'),CHR(0)),NVL('%s',CHR(0)),%s,%s,SYSDATE,%d,'%s','%s',%d,%d,%d,SYSDATE,SYSDATE,%s,%s)",
3211 /* Q_UHST - UPDATE_HOST */
3217 "machine SET name=NVL(UPPER('%s'),CHR(0)),vendor=NVL(UPPER('%s'),CHR(0)),model=NVL(UPPER('%s'),CHR(0)),os=NVL(UPPER('%s'),CHR(0)),location=NVL(UPPER('%s'),CHR(0)),contact=NVL('%s',CHR(0)),use=%s,status=%s,snet_id=%d,address='%s',owner_type='%s',owner_id=%d,acomment=%d,ocomment=%d",
3226 /* Q_DHST - DELETE_HOST */
3241 /* Q_GMAC - GET_MACHINE */
3247 "name, vendor, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM machine",
3250 "name LIKE '%s' ESCAPE '*' AND mach_id != 0",
3256 /* Q_GHAL - GET_HOSTALIAS */
3262 "a.name, m.name FROM hostalias a, machine m",
3265 "m.mach_id = a.mach_id and a.name LIKE '%s' ESCAPE '*' AND m.name LIKE '%s' ESCAPE '*'",
3271 /* Q_AHAL - ADD_HOSTALIAS */
3277 "INTO hostalias (name, mach_id) VALUES (UPPER('%s'),%d)",
3286 /* Q_DHAL - DELETE_HOSTALIAS */
3295 "name = UPPER('%s') AND mach_id = %d",
3301 /* Q_GSNT - GET_SUBNET */
3307 "name, description, saddr, mask, low, high, prefix, owner_type, owner_id, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM subnet",
3310 "name LIKE '%s' ESCAPE '*' and snet_id != 0",
3316 /* Q_ASNT - ADD_SUBNET */
3322 "INTO subnet (name, description, saddr, mask, low, high, prefix, owner_type, owner_id, snet_id) VALUES (UPPER('%s'), NVL('%s',CHR(0)), %s, %s, %s, %s, NVL('%s',CHR(0)), '%s', %d, %s)",
3331 /* Q_USNT - UPDATE_SUBNET */
3337 "subnet SET name=UPPER('%s'), description=NVL('%s',CHR(0)), saddr=%s, mask=%s, low=%s, high=%s, prefix=NVL('%s',CHR(0)), owner_type='%s', owner_id=%d",
3346 /* Q_DSNT - DELETE_SUBNET */
3361 /* Q_GCLU - GET_CLUSTER */
3367 "name, description, location, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM clusters",
3370 "name LIKE '%s' ESCAPE '*' AND clu_id != 0",
3376 /* Q_ACLU - ADD_CLUSTER */ /* uses prefetch_value() for clu_id */
3382 "INTO clusters (name, description, location, clu_id) VALUES ('%s',NVL('%s',CHR(0)),NVL('%s',CHR(0)),%s)",
3391 /* Q_UCLU - UPDATE_CLUSTER */
3397 "clusters SET name = '%s', description = NVL('%s',CHR(0)), location = NVL('%s',CHR(0))",
3406 /* Q_DCLU - DELETE_CLUSTER */
3421 /* Q_GMCM - GET_MACHINE_TO_CLUSTER_MAP */
3422 "get_machine_to_cluster_map",
3427 "m.name, c.name FROM machine m, clusters c, mcmap mcm",
3430 "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",
3436 /* Q_AMTC - ADD_MACHINE_TO_CLUSTER */
3437 "add_machine_to_cluster",
3442 "INTO mcmap (mach_id, clu_id) VALUES (%d, %d)",
3451 /* Q_DMFC - DELETE_MACHINE_FROM_CLUSTER */
3452 "delete_machine_from_cluster",
3460 "mach_id = %d AND clu_id = %d",
3466 /* Q_GCLD - GET_CLUSTER_DATA */
3472 "c.name, svc.serv_label, svc.serv_cluster FROM svc svc, clusters c",
3475 "c.clu_id = svc.clu_id AND c.name LIKE '%s' ESCAPE '*' AND svc.serv_label LIKE '%s' ESCAPE '*'",
3481 /* Q_ACLD - ADD_CLUSTER_DATA */
3487 "INTO svc (clu_id, serv_label, serv_cluster) VALUES (%d,'%s','%s')",
3496 /* Q_DCLD - DELETE_CLUSTER_DATA */
3497 "delete_cluster_data",
3505 "clu_id = %d AND serv_label = '%s' AND serv_cluster = '%s'",
3511 /* Q_GLIN - GET_LIST_INFO */
3526 /* Q_EXLN - EXPAND_LIST_NAMES */
3527 "expand_list_names",
3535 "name LIKE '%s' ESCAPE '*' AND list_id != 0",
3541 /* Q_ALIS - ADD_LIST */ /* uses prefetch_value() for list_id */
3547 "INTO list (name, active, publicflg, hidden, maillist, grouplist, gid, acl_type, acl_id, description, list_id) VALUES ('%s',%s,%s,%s,%s,%s,%s,'%s',%d,NVL('%s',CHR(0)),%s)",
3556 /* Q_ULIS - UPDATE_LIST */
3562 "list SET name='%s', active=%s, publicflg=%s, hidden=%s, maillist=%s, grouplist=%s, gid=%s, acl_type='%s', acl_id=%d, description=NVL('%s',CHR(0))",
3571 /* Q_DLIS - DELETE_LIST */
3586 /* Q_AMTL - ADD_MEMBER_TO_LIST */
3587 "add_member_to_list",
3601 /* Q_DMFL - DELETE_MEMBER_FROM_LIST */
3602 "delete_member_from_list",
3616 /* Q_GAUS - GET_ACE_USE */
3631 /* Q_QGLI - QUALIFIED_GET_LISTS */
3632 "qualified_get_lists",
3646 /* Q_GMOL - GET_MEMBERS_OF_LIST */
3647 "get_members_of_list",
3661 /* Q_GEML - GET_END_MEMBERS_OF_LIST */
3662 "get_end_members_of_list",
3676 /* Q_GLOM - GET_LISTS_OF_MEMBER */
3677 "get_lists_of_member",
3691 /* Q_CMOL - COUNT_MEMBERS_OF_LIST */
3692 "count_members_of_list",
3706 /* Q_GSIN - GET_SERVER_INFO */
3712 "name, update_int, target_file, script, dfgen, dfcheck, type, enable, inprogress, harderror, errmsg, acl_type, acl_id, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM servers",
3715 "name LIKE '%s' ESCAPE '*'",
3721 /* Q_QGSV - QUALIFIED_GET_SERVER */
3722 "qualified_get_server",
3736 /* Q_ASIN - ADD_SERVER_INFO */
3742 "INTO servers (name, update_int, target_file, script, type, enable, acl_type, acl_id) VALUES (UPPER('%s'),%s,'%s','%s','%s',%s,'%s',%d)",
3751 /* Q_USIN - UPDATE_SERVER_INFO */
3752 "update_server_info",
3757 "servers SET update_int = %s, target_file = '%s', script = '%s', type = '%s', enable = %s, acl_type = '%s', acl_id = %d",
3760 "name = UPPER('%s')",
3766 /* Q_RSVE - RESET_SERVER_ERROR */
3767 "reset_server_error",
3772 "servers SET harderror = 0, dfcheck = dfgen",
3775 "name = UPPER('%s')",
3781 /* Q_SSIF - SET_SERVER_INTERNAL_FLAGS */
3782 "set_server_internal_flags",
3787 "servers SET dfgen = %s, dfcheck = %s, inprogress = %s, harderror = %s, errmsg = NVL('%s',CHR(0))",
3790 "name = UPPER('%s')",
3796 /* Q_DSIN - DELETE_SERVER_INFO */
3797 "delete_server_info",
3805 "name = UPPER('%s')",
3811 /* Q_GSHI - GET_SERVER_HOST_INFO */
3812 "get_server_host_info",
3817 "sh.service, m.name, sh.enable, sh.override, sh.success, sh.inprogress, sh.hosterror, sh.hosterrmsg, sh.ltt, sh.lts, sh.value1, sh.value2, sh.value3, TO_CHAR(sh.modtime, 'DD-mon-YYYY HH24:MI:SS'), sh.modby, sh.modwith FROM serverhosts sh, machine m",
3820 "sh.service LIKE '%s' ESCAPE '*' AND m.name LIKE '%s' ESCAPE '*' AND m.mach_id = sh.mach_id",
3826 /* Q_QGSH - QUALIFIED_GET_SERVER_HOST */
3827 "qualified_get_server_host",
3841 /* Q_ASHI - ADD_SERVER_HOST_INFO */
3842 "add_server_host_info",
3847 "INTO serverhosts (service, mach_id, enable, value1, value2, value3) VALUES (UPPER('%s'), %d, %s, %s, %s, NVL('%s',CHR(0)))",
3856 /* Q_USHI - UPDATE_SERVER_HOST_INFO */
3857 "update_server_host_info",
3862 "serverhosts SET enable = %s, value1 = %s, value2 = %s, value3 = NVL('%s',CHR(0))",
3865 "service = UPPER('%s') AND mach_id = %d",
3871 /* Q_RSHE - RESET_SERVER_HOST_ERROR */
3872 "reset_server_host_error",
3877 "serverhosts SET hosterror = 0",
3880 "service = UPPER('%s') AND mach_id = %d",
3886 /* Q_SSHO - SET_SERVER_HOST_OVERRIDE */
3887 "set_server_host_override",
3892 "serverhosts SET override = 1",
3895 "service = UPPER('%s') AND mach_id = %d",
3901 /* Q_SSHI - SET_SERVER_HOST_INTERNAL */
3902 "set_server_host_internal",
3907 "serverhosts SET override = %s, success = %s, inprogress = %s, hosterror = %s, hosterrmsg = NVL('%s',CHR(0)), ltt = %s, lts = %s",
3910 "service = UPPER('%s') AND mach_id = %d",
3916 /* Q_DSHI - DELETE_SERVER_HOST_INFO */
3917 "delete_server_host_info",
3925 "service = UPPER('%s') AND mach_id = %d",
3931 /* Q_GSLO - GET_SERVER_LOCATIONS */
3932 "get_server_locations",
3937 "sh.service, m.name FROM serverhosts sh, machine m",
3940 "sh.service LIKE '%s' ESCAPE '*' AND sh.mach_id = m.mach_id",
3946 /* Q_GFSL - GET_FILESYS_BY_LABEL */
3947 "get_filesys_by_label",
3952 "fs.label, fs.type, m.name, fs.name, fs.mount, fs.rwaccess, fs.comments, u.login, l.name, fs.createflg, fs.lockertype, TO_CHAR(fs.modtime, 'DD-mon-YYYY HH24:MI:SS'), fs.modby, fs.modwith FROM filesys fs, machine m, users u, list l",
3955 "fs.label LIKE '%s' ESCAPE '*' AND fs.mach_id = m.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id",
3961 /* Q_GFSM - GET_FILESYS_BY_MACHINE */
3962 "get_filesys_by_machine",
3967 "fs.label, fs.type, m.name, fs.name, fs.mount, fs.rwaccess, fs.comments, u.login, l.name, fs.createflg, fs.lockertype, TO_CHAR(fs.modtime, 'DD-mon-YYYY HH24:MI:SS'), fs.modby, fs.modwith FROM filesys fs, machine m, users u, list l",
3970 "fs.mach_id = %d AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id",
3976 /* Q_GFSN - GET_FILESYS_BY_NFSPHYS */
3977 "get_filesys_by_nfsphys",
3982 "fs.label, fs.type, m.name, fs.name, fs.mount, fs.rwaccess, fs.comments, u.login, l.name, fs.createflg, fs.lockertype, TO_CHAR(fs.modtime, 'DD-mon-YYYY HH24:MI:SS'), fs.modby, fs.modwith FROM filesys fs, machine m, users u, list l, nfsphys np",
3985 "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'",
3991 /* Q_GFSG - GET_FILESYS_BY_GROUP */
3992 "get_filesys_by_group",
3997 "fs.label, fs.type, m.name, fs.name, fs.mount, fs.rwaccess, fs.comments, u.login, l.name, fs.createflg, fs.lockertype, TO_CHAR(fs.modtime, 'DD-mon-YYYY HH24:MI:SS'), fs.modby, fs.modwith FROM filesys fs, machine m, users u, list l",
4000 "fs.owners = %d AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = l.list_id",
4006 /* Q_GFSP - GET_FILESYS_BY_PATH */
4007 "get_filesys_by_path",
4012 "fs.label, fs.type, m.name, fs.name, fs.mount, fs.rwaccess, fs.comments, u.login, l.name, fs.createflg, fs.lockertype, TO_CHAR(fs.modtime, 'DD-mon-YYYY HH24:MI:SS'), fs.modby, fs.modwith FROM filesys fs, machine m, users u, list l",
4015 "fs.name LIKE '%s' ESCAPE '*' AND m.mach_id = fs.mach_id AND fs.owner = u.users_id AND fs.owners = list_id",
4021 /* Q_AFIL - ADD_FILESYS */ /* uses prefetch_value() for filsys_id */
4027 "INTO filesys (label, type, mach_id, name, mount, rwaccess, comments, owner, owners, createflg, lockertype, filsys_id) VALUES ('%s','%s',%d,NVL('%s',CHR(0)),'%s','%s',NVL('%s',CHR(0)),%d,%d,%s,'%s',%s)",
4036 /* Q_UFIL - UPDATE_FILESYS */
4042 "filesys SET label = '%s', type = '%s', mach_id = %d, name = NVL('%s',CHR(0)), mount = '%s', rwaccess = '%s', comments = NVL('%s',CHR(0)), owner = %d, owners = %d, createflg = %s, lockertype = '%s'",
4051 /* Q_DFIL - DELETE_FILESYS */
4066 /* Q_GFGM - GET_FSGROUP_MEMBERS */
4067 "get_fsgroup_members",
4072 "fs.label, fg.key FROM fsgroup fg, filesys fs",
4075 "fg.group_id = %d AND fs.filsys_id = fg.filsys_id",
4081 /* Q_AFTG - ADD_FILESYS_TO_FSGROUP */
4082 "add_filesys_to_fsgroup",
4087 "INTO fsgroup (group_id,filsys_id,key) VALUES (%d, %d, '%s')",
4096 /* Q_RFFG - REMOVE_FILESYS_FROM_FSGROUP */
4097 "remove_filesys_from_fsgroup",
4105 "group_id = %d AND filsys_id = %d",
4111 /* Q_GANF - GET_ALL_NFSPHYS */
4117 "m.name, np.dir, np.device, np.status, np.allocated, np.partsize, TO_CHAR(np.modtime, 'DD-mon-YYYY HH24:MI:SS'), np.modby, np.modwith FROM nfsphys np, machine m",
4120 "m.mach_id = np.mach_id",
4126 /* Q_GNFP - GET_NFSPHYS */
4132 "m.name, np.dir, np.device, np.status, np.allocated, np.partsize, TO_CHAR(np.modtime, 'DD-mon-YYYY HH24:MI:SS'), np.modby, np.modwith FROM nfsphys np, machine m",
4135 "np.mach_id = %d AND np.dir LIKE '%s' ESCAPE '*' AND m.mach_id = np.mach_id",
4141 /* Q_ANFP - ADD_NFSPHYS */ /* uses prefetch_value() for nfsphys_id */
4147 "INTO nfsphys (mach_id, dir, device, status, allocated, partsize, nfsphys_id) VALUES (%d, '%s', NVL('%s',CHR(0)), %s, %s, %s, %s)",
4156 /* Q_UNFP - UPDATE_NFSPHYS */
4162 "nfsphys SET device = NVL('%s',CHR(0)), status = %s, allocated = %s, partsize = %s",
4165 "mach_id = %d AND dir = '%s'",
4171 /* Q_AJNF - ADJUST_NFSPHYS_ALLOCATION */
4172 "adjust_nfsphys_allocation",
4177 "nfsphys SET allocated = allocated + %s",
4180 "mach_id = %d AND dir = '%s'",
4186 /* Q_DNFP - DELETE_NFSPHYS */
4195 "mach_id = %d AND dir = '%s'",
4201 /* Q_GQOT - GET_QUOTA */
4207 "fs.label, q.type, q.entity_id, q.quota, q.phys_id, m.name, TO_CHAR(q.modtime, 'DD-mon-YYYY HH24:MI:SS'), q.modby, q.modwith FROM quota q, filesys fs, machine m",
4210 "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",
4216 /* Q_GQBF - GET_QUOTA_BY_FILESYS */
4217 "get_quota_by_filesys",
4222 "fs.label, q.type, q.entity_id, q.quota, q.phys_id, m.name, TO_CHAR(q.modtime, 'DD-mon-YYYY HH24:MI:SS'), q.modby, q.modwith FROM quota q, filesys fs, machine m",
4225 "fs.label LIKE '%s' ESCAPE '*' AND fs.filsys_id = q.filsys_id AND m.mach_id = fs.mach_id",
4231 /* Q_AQOT - ADD_QUOTA */ /* prefetch_filsys() gets last 1 value */
4237 "INTO quota (filsys_id, type, entity_id, quota, phys_id) VALUES ('%s', %d, %d, %s, %s)",
4246 /* Q_UQOT - UPDATE_QUOTA */
4252 "quota SET quota = %s",
4261 /* Q_DQOT - DELETE_QUOTA */
4276 /* Q_GNFQ - GET_NFS_QUOTAS */
4282 "fs.label, u.login, q.quota, q.phys_id, m.name, TO_CHAR(q.modtime, 'DD-mon-YYYY HH24:MI:SS'), q.modby, q.modwith FROM quota q, filesys fs, users u, machine m",
4285 "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'",
4291 /* Q_GNQP - GET_NFS_QUOTAS_BY_PARTITION */
4292 "get_nfs_quotas_by_partition",
4297 "fs.label, u.login, q.quota, np.dir, m.name FROM quota q, filesys fs, users u, nfsphys np, machine m",
4300 "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",
4306 /* Q_ANFQ - ADD_NFS_QUOTA */ /* prefetch_filsys() gets last 1 value */
4312 "INTO quota (type, filsys_id, entity_id, quota, phys_id ) VALUES ('USER', %d, %d, %s, %s)",
4321 /* Q_UNFQ - UPDATE_NFS_QUOTA */
4327 "quota SET quota = %s",
4336 /* Q_DNFQ - DELETE_NFS_QUOTA */
4351 /* Q_GZCL - GET_ZEPHYR_CLASS */
4357 "class, xmt_type, xmt_id, sub_type, sub_id, iws_type, iws_id, iui_type, iui_id, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM zephyr",
4360 "class LIKE '%s' ESCAPE '*'",
4366 /* Q_AZCL - ADD_ZEPHYR_CLASS */
4372 "INTO zephyr (class, xmt_type, xmt_id, sub_type, sub_id, iws_type, iws_id, iui_type, iui_id) VALUES ('%s','%s',%d,'%s',%d,'%s',%d,'%s',%d)",
4381 /* Q_UZCL - UPDATE_ZEPHYR_CLASS */
4382 "update_zephyr_class",
4387 "zephyr SET class = '%s', xmt_type = '%s', xmt_id = %d, sub_type = '%s', sub_id = %d, iws_type = '%s', iws_id = %d, iui_type = '%s', iui_id = %d",
4396 /* Q_DZCL - DELETE_ZEPHYR_CLASS */
4397 "delete_zephyr_class",
4411 /* Q_GSHA - GET_SERVER_HOST_ACCESS */
4412 "get_server_host_access",
4417 "m.name, ha.acl_type, ha.acl_id, TO_CHAR(ha.modtime, 'DD-mon-YYYY HH24:MI:SS'), ha.modby, ha.modwith FROM hostaccess ha, machine m",
4420 "m.name LIKE '%s' ESCAPE '*' AND ha.mach_id = m.mach_id",
4426 /* Q_ASHA - ADD_SERVER_HOST_ACCESS */
4427 "add_server_host_access",
4432 "INTO hostaccess (mach_id, acl_type, acl_id) VALUES (%d,'%s',%d)",
4441 /* Q_USHA - UPDATE_SERVER_HOST_ACCESS */
4442 "update_server_host_access",
4447 "hostaccess SET acl_type = '%s', acl_id = %d",
4456 /* Q_DSHA - DELETE_SERVER_HOST_ACCESS */
4457 "delete_server_host_access",
4471 /* Q_GSVC - GET_SERVICE */
4477 "name, protocol, port, description, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS'), modby, modwith FROM services",
4480 "name LIKE '%s' ESCAPE '*'",
4486 /* Q_ASVC - ADD_SERVICE */
4492 "INTO services (name, protocol, port, description) VALUES ('%s','%s',%s,NVL('%s',CHR(0)))",
4501 /* Q_DSVC - DELETE_SERVICE */
4516 /* Q_GPCE - GET_PRINTCAP_ENTRY */
4517 "get_printcap_entry",
4522 "pc.name, m.name, pc.dir, pc.rp, pc.quotaserver, pc.auth, pc.price, pc.comments, TO_CHAR(pc.modtime, 'DD-mon-YYYY HH24:MI:SS'), pc.modby, pc.modwith FROM printcap pc, machine m",
4525 "pc.name LIKE '%s' ESCAPE '*' AND m.mach_id = pc.mach_id",
4531 /* Q_APCE - ADD_PRINTCAP_ENTRY */
4532 "add_printcap_entry",
4537 "INTO printcap (name, mach_id, dir, rp, quotaserver, auth, price, comments) VALUES ('%s',%d,'%s','%s',%d,%s,%s,NVL('%s',CHR(0)))",
4546 /* Q_DPCE - DELETE_PRINTCAP_ENTRY */
4547 "delete_printcap_entry",
4561 /* Q_GPCP - GET_PRINTCAP */
4567 "pc.name, m.name, pc.dir, pc.rp, pc.comments, TO_CHAR(pc.modtime, 'DD-mon-YYYY HH24:MI:SS'), pc.modby, pc.modwith FROM printcap pc, machine m",
4570 "pc.name LIKE '%s' ESCAPE '*' AND m.mach_id = pc.mach_id",
4576 /* Q_DPCP - DELETE_PRINTCAP */
4591 /* Q_GPDM - GET_PALLADIUM */
4597 "pal.name, pal.identifier, m.name, TO_CHAR(pal.modtime, 'DD-mon-YYYY HH24:MI:SS'), pal.modby, pal.modwith FROM palladium pal, machine m",
4600 "pal.name LIKE '%s' ESCAPE '*' AND m.mach_id = pal.mach_id",
4606 /* Q_APDM - ADD_PALLADIUM */
4612 "INTO palladium (name, identifier, mach_id) VALUES ('%s',%s,%d)",
4621 /* Q_DPDM - DELETE_PALLADIUM */
4636 /* Q_GALI - GET_ALIAS */
4642 "name, type, trans FROM alias",
4645 "name LIKE '%s' ESCAPE '*' AND type LIKE '%s' ESCAPE '*' AND trans LIKE '%s' ESCAPE '*'",
4651 /* Q_AALI - ADD_ALIAS */
4657 "INTO alias (name, type, trans) VALUES ('%s', '%s', '%s')",
4666 /* Q_DALI - DELETE_ALIAS */
4675 "name = '%s' AND type = '%s' AND trans = '%s'",
4681 /* Q_GVAL - GET_VALUE */
4687 "value FROM numvalues",
4696 /* Q_AVAL - ADD_VALUE */
4702 "INTO numvalues (name, value) VALUES ('%s', %s)",
4711 /* Q_UVAL - UPDATE_VALUE */
4717 "numvalues SET value = %s",
4726 /* Q_DVAL - DELETE_VALUE */
4741 /* Q_GATS - GET_ALL_TABLE_STATS */
4742 "get_all_table_stats",
4747 "table_name, appends, updates, deletes, TO_CHAR(modtime, 'DD-mon-YYYY HH24:MI:SS') FROM tblstats",
4756 /* Q__SDL - _SET_DEBUG_LEVEL */
4772 int QueryCount2 = (sizeof Queries2 / sizeof (struct query));