1 package drisgp as
2
3 SEC_TYPE_UNKNOWN constant number := 0;
4 SEC_TYPE_ZONE constant number := 1;
5 SEC_TYPE_FIELD constant number := 2;
6 SEC_TYPE_SPECIAL constant number := 3;
7 SEC_TYPE_STOP constant number := 4;
8 SEC_TYPE_ATTR constant number := 5;
9 SEC_TYPE_XML constant number := 6;
10 SEC_TYPE_MDATA constant number := 7;
11 SEC_TYPE_CSDATA constant number := 8;
12 SEC_TYPE_CMDATA constant number := 9;
13 SEC_TYPE_SDATA constant number := 10;
14 SEC_TYPE_NDATA constant number := 11;
15 SEC_TYPE_MVDATA constant number := 12;
16
17 SEC_DATATYPE_UNKNOWN constant binary_integer := 0;
18 SEC_DATATYPE_NUMBER constant binary_integer := 2;
19 SEC_DATATYPE_VARCHAR2 constant binary_integer := 5;
20 SEC_DATATYPE_DATE constant binary_integer := 12;
21 SEC_DATATYPE_RAW constant binary_integer := 23;
22 SEC_DATATYPE_CHAR constant binary_integer := 96;
23
24 SEC_ZONE_FID constant number := 1;
25
26 SEC_FIELD_LOW_MIN_FID constant number := 16;
27 SEC_FIELD_LOW_MAX_FID constant number := 79;
28 SEC_FIELD_HIGH_MIN_FID constant number := 1001;
29 SEC_FIELD_HIGH_MAX_FID constant number := 1333;
30
31 SEC_MDATA_LOW_MIN_FID constant number := 400;
32 SEC_MDATA_LOW_MAX_FID constant number := 499;
33 SEC_MDATA_HIGH_MIN_FID constant number := 5000;
34 SEC_MDATA_HIGH_MAX_FID constant number := 5999;
35 SEC_MAX_MDATA constant number := 100;
36
37 SEC_NDATA_MIN_FID constant number := 200;
38 SEC_NDATA_MAX_FID constant number := 299;
39 SEC_MAX_NDATA constant number := 100;
40
41 SEC_SDATA_MIN_FID constant number := 101;
42 SEC_SDATA_MAX_FID constant number := 199;
43 SEC_MAX_SDATA constant number := 99;
44
45 SEC_MVDATA_MIN_FID constant number := 300;
46 SEC_MVDATA_MAX_FID constant number := 399;
47 SEC_MAX_MVDATA constant number := 100;
48
49 /*-------------------- create_section_group ---------------------------*/
50 /* create a new section group */
51
52 PROCEDURE create_section_group(
53 p_group_name in varchar2
54 , p_group_type in varchar2
55 , preference_implicit_commit in boolean
56 );
57
58 /*-------------------- drop_section_group ---------------------------*/
59 /* drop a section group */
60
61 PROCEDURE drop_section_group(
62 p_group_name in varchar2,
63 preference_implicit_commit in boolean
64 );
65
66 /*-------------------------- set_sec_grp_attr -------------------------------*/
67 /*
68 NAME
69 set_sec_grp_attr
70 DESCRIPTION
71 add a section group specific attribute to a section group identified by
72 name
73 ARGUMENTS
74 group_name - section group name
75 attribute_name - section group attribute name
76 attribute_value - section group attribute value
77 NOTES
78
79 EXCEPTIONS
80
81 */
82 procedure set_sec_grp_attr(group_name in varchar2,
83 attribute_name in varchar2,
84 attribute_value in varchar2);
85
86 /*----------------------- ins_sec_grp_attr_by_id ----------------------------*/
87 /*
88 NAME
89 ins_sec_grp_attr_by_id
90 DESCRIPTION
91 add a section group specific attribute to a a section group identified
92 by an id
93 ARGUMENTS
94 sgp_name - section group name
95 sgp_id - section group id
96 attribute_name - section group attribute name
97 attribute_value - section group attribute value
98 operation - 'SET' or 'ADD' depending on whether the attribute
99 value is being set for the first time for this section
100 group or whether the attribute value is being added
101 to an already existing list of values for this section
102 group
103 NOTES
104
105 EXCEPTIONS
106
107 */
108 procedure ins_sec_grp_attr_by_id(sgp_name in varchar2,
109 sgp_id in number,
110 attribute_name in varchar2,
111 attribute_value in varchar2,
112 operation in varchar2);
113
114 /*-------------------------- add_sec_grp_attr_val --------------------*/
115 /*
116 NAME
117 add_sec_grp_attr_val
118 DESCRIPTION
119 add a section group attribute value to the list of values of an already
120 existing section group attribute.
121
122 ARGUMENTS
123 group_name - section group name
124 attribute_name - section group attribute name
125 attribute_value - section group attribute value
126 NOTES
127
128 EXCEPTIONS
129
130 */
131 procedure add_sec_grp_attr_val(group_name in varchar2,
132 attribute_name in varchar2,
133 attribute_value in varchar2);
134
135 /*-------------------------- rem_sec_grp_attr_val --------------------*/
136 /*
137 NAME
138 rem_sec_grp_attr_val
139 DESCRIPTION
140 remove a specific section group attribute value from the list of values
141 of an existing section group attribute.
142
143 ARGUMENTS
144 group_name - section group name
145 attribute_name - section group attribute name
146 attribute_value - section group attribute value
147 NOTES
148
149 EXCEPTIONS
150
151 */
152 procedure rem_sec_grp_attr_val(group_name in varchar2,
153 attribute_name in varchar2,
154 attribute_value in varchar2);
155
156 /*---------------------- unset_sec_grp_attr ---------------------------------*/
157 /*
158 NAME
159 unset_sec_grp_attr
160 DESCRIPTION
161 remove a section group specific attribute
162 ARGUMENTS
163 group_name - section group name
164 attribute_name - section group attribute name
165 NOTES
166
167 EXCEPTIONS
168
169 */
170 procedure unset_sec_grp_attr(group_name in varchar2,
171 attribute_name in varchar2);
172
173 /*-------------------- drop_user_section_groups ----------------------*/
174 /* Drop section groups owned by a user */
175
176 PROCEDURE drop_user_section_groups(
177 p_user_name in varchar2 := null
178 );
179
180 /*-------------------- add_section --------------------*/
181 /* add a section to a section group */
182
183 PROCEDURE add_section(
184 p_group_name in varchar2,
185 p_section_name in varchar2,
186 p_tag in varchar2,
187 p_section_type in binary_integer,
188 p_visible in boolean,
189 p_datatype in varchar2 default NULL,
190 preference_implicit_commit in boolean
191 );
192
193 /*-------------------- remove_section ---------------------------*/
194
195 PROCEDURE remove_section(
196 group_name in varchar2,
197 section_name in varchar2,
198 preference_implicit_commit in boolean
199 );
200
201 PROCEDURE remove_section(
202 group_name in varchar2,
203 section_id in number,
204 preference_implicit_commit in boolean
205 );
206
207 /*--------------------------- get_default_section ------------------*/
208 /* get the default value for the section group preference */
209
210 function get_default_section(
211 p_dstore_pref in varchar2,
212 p_filter_pref in varchar2,
213 p_dtype_pref in varchar2
214 )
215 return varchar2;
216
217 /*--------------------------- get_sg_info -------------------------*/
218 /* get section group info */
219
220 function get_sg_info(
221 p_sg_name in varchar2,
222 f_new_sg in boolean default false,
223 f_check_own in boolean default false
224 )
225 return dr_def.pref_rec;
226
227 /*------------------------ copy_section_group ------------------------------*/
228 /* copy section group info into index meta data */
229
230 function copy_section_group(
231 p_idx_id in number,
232 p_sgroup in varchar2,
233 p_rcount out number,
234 alt_I out boolean,
235 p_new_sdata_section out boolean,
236 ia in sys.ODCIIndexInfo default NULL
237 )
238 return dr_def.pref_rec;
239
240 /*----------------------- IndexAddSection ---------------------------*/
241 /* add a section to an already existing index */
242
243 PROCEDURE IndexAddSection(
244 ia in sys.ODCIIndexInfo,
245 idx in dr_def.idx_rec,
246 sectype in varchar2,
247 secname in varchar2,
248 tag in varchar2,
249 visible in number,
250 NewSdataSec out boolean,
251 dtype in number,
252 alt_I out boolean,
253 skip_lk in boolean
254 );
255
256 /*----------------------- LoadSectionMD ---------------------------*/
257 /* load section metadata from the index values table */
258
259 PROCEDURE LoadSectionMD(
260 p_idxid in number,
261 p_fonly in boolean,
262 o_sectab out nocopy dr_def.sec_tab
263 );
264
265 /*----------------------- GetSection ------------------------------*/
266 /* return type of section given name */
267 FUNCTION GetSection(
268 p_idxid in number,
269 p_secname in varchar2
270 ) return dr_def.sec_rec;
271
272 /*----------------------- GetSections ------------------------------*/
273 /* return sections associated with given index */
274 FUNCTION GetSections(
275 p_idxid in number
276 ) return dr_def.sec_tab;
277
278 /*----------------------- HasSectionType ------------------------------*/
279 /* return true if section group has section of given type */
280 FUNCTION HasSectionType(
281 p_sec_grp in varchar2,
282 p_sectype in number
283 ) return boolean;
284
285 /*--------------------------- field_to_mdata ------------------------------*/
286 /* make the metadata changes to convert a field section to mdata */
287 PROCEDURE field_to_mdata(
288 idx in dr_def.idx_rec,
289 fsec in varchar2,
290 read_only in boolean,
291 ftyp out number,
292 mdatatyp out number
293 );
294
295 /*----------------------- IndexRemSection ---------------------------*/
296 /* Remove section from index metadata, used for doc lexer */
297 PROCEDURE IndexRemSection(
298 ia in sys.ODCIIndexInfo,
299 idx in dr_def.idx_rec,
300 sectype in varchar2,
301 secname in varchar2,
302 sectag in varchar2,
303 secfid in number,
304 skip_lk in boolean
305 );
306
307 /*----------------------- SecIsMDATA -------------------------------*/
308 /* Returns true if given fid/ttype is MDATA */
309 FUNCTION SecIsMDATA(
310 sec_fid in number
311 ) return boolean;
312
313 /*--------------------------- GetTkTypMVDATA ------------------------*/
314 /* check that it's an MVDATA section and return token_type */
315 FUNCTION GetTkTypMVDATA(
316 p_idx in dr_def.idx_rec,
317 p_secname in varchar2
318 ) return binary_integer;
319
320 /*--------------------------- CheckUpdMdata ------------------------*/
321 /* check that mdata section is updateable, and return token_type */
322 FUNCTION CheckUpdMdata(
323 p_idx in dr_def.idx_rec,
324 p_secname in varchar2
325 ) return binary_integer;
326
327 /*---------------------------- set_section_attribute -----------------------*/
328 /*
329 NAME
330 set_section_attribute
331 DESCRIPTION
332 add a section specific attribute
333 ARGUMENTS
334 group_name - section group name
335 section_name - section name
336 attribute_name - section attribute name
337 attribute_value - section attribute value
338 NOTES
339
340 EXCEPTIONS
341
342 */
343 procedure set_section_attribute(group_name in varchar2,
344 section_name in varchar2,
345 attribute_name in varchar2,
346 attribute_value in varchar2,
347 preference_implicit_commit in boolean);
348
349 /*------------------------- set_section_attribute_by_id --------------------*/
350 procedure set_section_attribute_by_id(sgp_id in number,
351 sec_id in number,
352 attribute_name in varchar2,
353 attribute_value in varchar2);
354
355 /*-------------------------- unset_section_attribute -----------------------*/
356
357 procedure unset_section_attribute(group_name in varchar2,
358 section_name in varchar2,
359 attribute_name in varchar2,
360 preference_implicit_commit in boolean);
361
362 /*-------------------------- csv_to_section_attr -----------------------*/
363
364 procedure csv_to_section_attr(p_idxid in number,
365 p_sectype in varchar2,
366 p_csv in varchar2);
367
368 /*-------------------------- IndexSetSectionAttribute -----------------------*/
369 procedure IndexSetSectionAttribute(idx_id in number,
370 sgp_obj_id in number,
371 section_id in number,
372 attribute_name in varchar2,
373 attribute_value in varchar2);
374
375 /*------------------------- IndexUnsetSectionAttribute ----------------------*/
376 procedure IndexUnsetSectionAttribute(idx_id in number,
377 section_name in varchar2,
378 section_tag in varchar2,
379 section_id out number);
380
381 /*------------------------- IndexUpdateSectionAttribute ---------------------*/
382 procedure IndexUpdateSectionAttribute(idx_id in number,
383 section_id in number,
384 attribute_name in varchar2,
385 attribute_value in varchar2);
386
387 /*-------------------------- IndexGetSectionAttribute -----------------------*/
388 procedure IndexGetSectionAttribute(idx_id in number,
389 section_id in number,
390 attribute_name in varchar2,
391 attribute_value out varchar2);
392
393 /*--------------------------- IndexGetSectionId -------------------------*/
394 procedure IndexGetSectionId(idxid in number,
395 section_name in varchar2,
396 section_tag in varchar2,
397 section_id out number);
398
399 end drisgp;