DBA Data[Home] [Help]

PACKAGE: CTXSYS.DRVDDL

Source


1 package drvddl authid current_user as
2 
3   pv_idx_mem            number;
4   pv_is_import          boolean;
5   pv_master_params      varchar2(2000);
6   pv_partition_populate boolean;
7 
8   px_partition_error    EXCEPTION;
9 
10   PARALLEL_OP  constant number :=  1;
11   CREATE_OP    constant number := 16;
12   RESUME_OP    constant number := 32;
13 
14   P_CREATE_OP  constant number := 16 + 1;
15   P_RESUME_OP  constant number := 32 + 1;
16   P_SYNC_OP    constant number := 64 + 1;
17 
18   -- 10169701: Keep track of any tokens which had errors during optimize
19   -- rebuild
20   type text_tab is table of varchar2(64) index by binary_integer;
21   type type_tab is table of number index by binary_integer;
22   opt_rebuild_error_text text_tab;
23   opt_rebuild_error_type type_tab;
24 
25 /*----------------------- PartitionCreate  -----------------------*/
26 
27 PROCEDURE PartitionCreate(
28   ia              in  sys.ODCIIndexInfo,
29   owner           in  varchar2,
30   index_name      in  varchar2,
31   index_partition in  varchar2,
32   table_owner     in  varchar2,
33   table_name      in  varchar2,
34   table_partition in  varchar2,
35   idxmem          in  number,
36   storage         in  varchar2,
37   populate        in  boolean default TRUE,
38   sync_type       in  varchar2 default NULL,
39   sync_memory     in  varchar2 default NULL,
40   sync_paradegree in  number   default NULL,
41   sync_interval   in  varchar2 default NULL,
42   is_online       in  boolean default FALSE,
43   sync_dpl        in  boolean default FALSE
44 );
45 
46 /*----------------------- IndexCreate  -----------------------*/
47 /*
48   NAME
49     IndexCreate
50 
51   DESCRIPTION
52     create an index
53 
54   ARGUMENTS
55     owner        index owner
56     index_name   index name
57     table_owner  table owner
58     table_name   table name
59     column_name  text column name
60     column_type  text column type (optional)
61     populate     populate/nopopulate
62     para         parallel degree
63     langcol      language column
64     fmtcol       format column name
65     csetcol      charset column name
66     configcol    charset column name
67     idxmem       index memory
68     datastore    datastore pref name
69     filter       filter pref name
70     section      section group pref name
71     lexer        lexer pref name
72     wordlist     wordlist pref name
73     stoplist     stoplist pref name
74     storage      storage pref name
75     txntional    transactional pref name
76     tree         supports ctx_tree
77 
78   NOTES
79 
80   EXCEPTIONS
81 
82   RETURNS
83 
84 */
85 PROCEDURE IndexCreate(
86   ia          in  sys.odciindexinfo,
87   owner       in  varchar2,
88   index_name  in  varchar2,
89   index_part  in  varchar2,
90   table_owner in  varchar2,
91   table_name  in  varchar2,
92   table_part  in  varchar2,
93   column_name in  varchar2,
94   column_type in varchar2,
95   call_prop   in  number,
96   populate    in  boolean,
97   para        in  number,
98   langcol     in  varchar2,
99   fmtcol      in  varchar2,
100   csetcol     in  varchar2,
101   idxmem      in  number,
102   datastore   in  varchar2,
103   filter      in  varchar2,
104   section     in  varchar2,
105   lexer       in  varchar2,
106   wordlist    in  varchar2,
107   stoplist    in  varchar2,
108   storage     in  varchar2,
109   txntional   in  varchar2,
110   sync_type   in  varchar2,
111   sync_memory     in  varchar2,
112   sync_paradegree in  number,
113   sync_interval   in  varchar2,
114   tree            in  boolean,
115   sync_dpl        in  boolean,
116   configcol     in  varchar2
117 );
118 
119 /*----------------------- IndexDrop  -------------------------*/
120 /*
121   NAME
122     IndexDrop
123 
124   DESCRIPTION
125     drop an index
126 
127   ARGUMENTS
128     ia           index info
129 */
130 PROCEDURE IndexDrop(
131   ia          in  sys.ODCIIndexInfo,
132   owner       in  varchar2,
133   index_name  in  varchar2,
134   call_prop   in  number
135 );
136 
137 /*----------------------- IndexTruncate  ---------------------*/
138 /*
139   NAME
140     IndexTruncate
141 
142   DESCRIPTION
143     truncate an index
144 
145   ARGUMENTS
146     ia           index info
147     owner        index owner
148     index_name   index name
149     ixp_name     index partition name
150     call_prop    call property
151 */
152 PROCEDURE IndexTruncate(
153   ia           in sys.odciindexinfo,
154   owner        in varchar2,
155   index_name   in varchar2,
156   ixp_name     in varchar2,
157   call_prop    in number
158 
159 );
160 
161 /*----------------------- IndexTransport  -----------------------*/
162 /*
163   NAME
164     IndexTransport
165 
166   DESCRIPTION
167     transport tablespace support
168 
169   ARGUMENTS
170     owner        index owner
171     index_name   index name
172     index_part   index partition name
173     table_owner  table owner
174     table_name   table name
175     table_part   table partition name
176 
177   NOTES
178 
179   EXCEPTIONS
180 
181   RETURNS
182 
183 */
184 PROCEDURE IndexTransport(
185   owner       in  varchar2,
186   index_name  in  varchar2,
187   index_part  in  varchar2,
188   table_owner in  varchar2,
189   table_name  in  varchar2,
190   table_part  in  varchar2,
191   IndexInfoFlags in number,
192   CallProperty   in number
193 );
194 
195 /*----------------------- PartitionSplit  -----------------------*/
196 /*
197   NAME
198     PartitionSplit
199 
200   DESCRIPTION
201     split one partition into two
202 
203   ARGUMENTS
204     ia          ODCIIndexInfo for the spliting partition
205     part1       ODCIPartInfo for resulting partition
206     part2       ODCIPartInfo for resulting partition
207 
208 
209   NOTES
210 
211   EXCEPTIONS
212 
213   RETURNS
214 
215 */
216 PROCEDURE PartitionSplit(
217   ia              in  sys.odciindexinfo,
218   part1           in  sys.odcipartinfo,
219   part2           in  sys.odcipartinfo
220 );
221 
222 /*----------------------- PartitionMerge  -----------------------*/
223 /*
224   NAME
225     PartitionMerge
226 
227   DESCRIPTION
228     split one partition into two
229 
230   ARGUMENTS
231     ia          ODCIIndexInfo for the resulting partition
232     part1       ODCIPartInfo for one of the merging partitions
233     part2       ODCIPartInfo for one of the merging  partition
234 
235 
236   NOTES
237 
238   EXCEPTIONS
239 
240   RETURNS
241 
242 */
243 PROCEDURE PartitionMerge(
244   ia              in  sys.odciindexinfo,
245   part1           in  sys.odcipartinfo,
246   part2           in  sys.odcipartinfo
247 );
248 
249 /*----------------------- PartitionExchange  -----------------------*/
250 /*
251   NAME
252     PartitionExchange
253 
254   DESCRIPTION
255     Swap a partition with a table
256 
257   ARGUMENTS
258     ia          ODCIIndexInfo for the partition index to be exchanged
259     ia1         ODCIIndexinfo for the index on the table
260 
261 
262   NOTES
263 
264   EXCEPTIONS
265 
266   RETURNS
267 
268 */
269 PROCEDURE PartitionExchange(
270   ia              in  sys.odciindexinfo,
271   ia1             in  sys.odciindexinfo
272 );
273 
274 /*----------------------- IndexRename  ---------------------*/
275 /*
276   NAME
277     IndexRename
278 
279   DESCRIPTION
280     rename an index
281 
282   ARGUMENTS
283     ia           index info
284     owner        index owner
285     index_name   index name
286     new_name     new name
287 */
288 PROCEDURE IndexRename(
289   ia           in sys.odciindexinfo,
290   owner        in varchar2,
291   index_name   in varchar2,
292   new_name     in varchar2
293 );
294 
295 /*----------------------- IndexColRename  ---------------------*/
296 /*
297   NAME
298     IndexColRename
299 
300   DESCRIPTION
301     rename an index column
302 
303   ARGUMENTS
304     ia           index info
305     owner        index owner
306     index_name   index name
307     new_name     new name
308 */
309 PROCEDURE IndexColRename(
310   ia           in sys.odciindexinfo,
311   owner        in varchar2,
312   index_name   in varchar2,
313   new_name     in varchar2
314 );
315 
316 /*----------------------- IndexReplace  -------------------------*/
317 /*
318   NAME
319     IndexReplace
320 
321   DESCRIPTION
322     rebuild an index, replacing preferences as needed
323 
324   ARGUMENTS
325     ia           index info
326     idx          index record
327     idxmem       index memory
328     para         parallel degree
329     langcol      language column
330     fmtcol       format column name
331     csetcol      charset column name
332     configcol    configuration column name
333     datastore    datastore pref name
334     filter       filter pref name
335     section      section group pref name
336     lexer        lexer pref name
337     wordlist     wordlist pref name
338     stoplist     stoplist pref name
339     storage      storage pref name
340     isonline     is online ?
341     sync_dpl     direct path loading?
342     section_name section name
343 */
344 PROCEDURE IndexReplace(
345   ia          in  sys.ODCIIndexInfo,
346   idx         in out nocopy  dr_def.idx_rec,
347   idxmem      in  number,
348   para        in  number,
349   langcol     in  varchar2,
350   fmtcol      in  varchar2,
351   csetcol     in  varchar2,
352   datastore   in  varchar2,
353   filter      in  varchar2,
354   section     in  varchar2,
355   lexer       in  varchar2,
356   wordlist    in  varchar2,
357   stoplist    in  varchar2,
358   storage     in  varchar2,
359   txntional   in  varchar2,
360   sync_type   in  varchar2,
361   sync_memory     in   varchar2,
362   sync_paradegree in   number,
363   sync_interval   in   varchar2,
364   isonline    in  boolean default FALSE,
365   metadataonly in boolean default FALSE,
366   populate     in boolean default TRUE,
367   sync_dpl     in boolean default FALSE,
368   section_name in varchar2 default NULL,
369   configcol   in  varchar2 default NULL
370 );
371 
372 /*----------------------- IndexPartReplace  -------------------------*/
373 /*
374   NAME
375     IndexPartReplace
376 
377   DESCRIPTION
378     rebuild a index partition, replacing preferences as needed
379 
380   ARGUMENTS
381     ia           index info
382     idx          index record
383     ixp          index partition
384     idxmem       index memory
385     storage      storage pref name
386     para         parallel degree
387 */
388 PROCEDURE IndexPartReplace(
389   ia          in  sys.ODCIIndexInfo,
390   idx         in  dr_def.idx_rec,
391   ixp         in  dr_def.ixp_rec,
392   idxmem      in  number,
393   storage     in  varchar2,
394   para        in  number,
395   sync_type   in  varchar2,
396   sync_memory     in   varchar2,
397   sync_paradegree in   number,
398   sync_interval   in   varchar2,
399   isonline     in boolean default FALSE,
400   metadataonly in boolean default FALSE,
401   populate     in boolean default TRUE,
402   sync_dpl     in boolean default FALSE
403 );
404 
405 /*----------------------- IndexResume  -------------------------*/
406 /*
407   NAME
408     IndexResume
409 
410   DESCRIPTION
411     resume index creation
412 
413   ARGUMENTS
414     ia           index info
415     idx          index record
416     para         parallel degree
417     idxmem       index memory
418     isOnline     is online?
419     isreplace    called from replace
420 */
421 PROCEDURE IndexResume(
422   ia          in  sys.ODCIIndexInfo,
423   idx         in  dr_def.idx_rec,
424   para        in  number,
425   idxmem      in  number,
426   isonline    in  boolean default FALSE,
427   isreplace   in  boolean default FALSE,
428   populate     in boolean default TRUE
429 );
430 
431 /*----------------------- IndexPartResume  -------------------------*/
432 /*
433   NAME
434     IndexPartResume
435 
436   DESCRIPTION
437     resume index creation on a partition
438 
439   ARGUMENTS
440     ia           index info which also has partition info
441     idx          index record
442     para         parallel degree
443     idxmem       index memory
444 */
445 PROCEDURE IndexPartResume(
446   ia          in  sys.ODCIIndexInfo,
447   idx         in  dr_def.idx_rec,
448   para        in  number,
449   idxmem      in  number,
450   isOnline    in  boolean default FALSE,
451   isReplace   in  boolean default FALSE,
452   populate    in  boolean default TRUE
453 );
454 
455 /*----------------------- IndexOptimize  -------------------------*/
456 /*
457   NAME
458     IndexOptimize
459 
460   DESCRIPTION
461     optimize the index
462 
463   ARGUMENTS
464     idx          index record
465     ixpname      partition name
466     operation    FAST, FULL, or TOKEN
467     maxtime      maxtime for gc
468     token	 text token string
469 */
470 PROCEDURE IndexOptimize(
471   idx         in  dr_def.idx_rec,
472   ixpname     in  varchar2,
473   operation   in  varchar2,
474   maxtime     in  number,
475   token       in  varchar2,
476   ttype       in  number default 0,
477   pdegree     in  number default 1,
478   memory      in  number default 0,
479   background  in  number default 0
480 );
481 
482 TYPE popcurtyp is ref cursor return ctxsys.dr$number_sequence%rowtype;
483 
484 FUNCTION IndexOptimizeParFn(
485   crsr        in popcurtyp,
486   idxownid    in number,
487   idxowner    in varchar2,
488   idxname     in varchar2,
489   ixpname     in varchar2,
490   shadow_itab in varchar2,
491   shadow_stab in varchar2,
492   nextid     in number,
493   optmode     in number,
494   maxtime     in number,
495   logfile     in varchar2,
496   maxhash     in number,
497   ttype       in number,
498   background  in number
499 ) return varchar2;
500 
501 /*----------------------- SplitDollari  -------------------------*/
502 /*
503   NAME
504     SplitDollari
505 
506   DESCRIPTION
507     Split the $I table into multiple $I tables
508 
509   ARGUMENTS
510     idx          index record
511     ixpname      the name of the partition whose $I table we are
512                  splitting(the $I is not modified)
516                  name gets appended otherwise:
513     mapping_tab  the table that maps rowids to partition names
514     name_prefix  the name of the output table in case of less than
515                  two partitions, a name to which the partition
517                  name_prefix||'_'||part_name
518     tspace       the name of the tablespace where additional
519                  mapping tables will be created (for cleanup
520                  purposes in case of core dump)
521 */
522 PROCEDURE SplitDollari(
523   idx         in  dr_def.idx_rec,
524   ixpname     in  varchar2,
525   mapping_tab in  varchar2,
526   name_prefix in  varchar2,
527   tspace      in  varchar2 default null
528 );
529 
530 /*----------------------- IndexSync  -------------------------*/
531 /*
532   NAME
533     IndexSync
534 
535   DESCRIPTION
536     sync the index
537 
538   ARGUMENTS
539     idx          index record
540     idxmem       index memory
541     ixpname      index partition name
542     direct_path  should we use direct-path inserts ?
543 */
544 PROCEDURE IndexSync(
545   idx         in  dr_def.idx_rec,
546   ixpname     in  varchar2,
547   idxmem      in  number,
548   parallel_degree in number default 1,
549   direct_path in  boolean default false,
550   maxtime     in  number,
551   locking     in  number
552 );
553 
554 /*----------------------- LockBaseTable  -------------------------*/
555 /*
556   NAME
557     LockBaseTable
558 
559   DESCRIPTION
560     lock the base table
561 
562   ARGUMENTS
563     table_own    name of table owner
564     table_name   name of table
565     table_part   name of table partition (if any)
566 */
567 PROCEDURE LockBaseTable(
568   table_own   in varchar2,
569   table_name  in varchar2,
570   table_part  in varchar2 default NULL
571 );
572 
573 PROCEDURE ProcessOnlinePending (
574   table_own        in varchar2,
575   table_name       in varchar2,
576   index_own        in varchar2,
577   index_name       in varchar2,
578   polid            in number,
579   is_part          in boolean,
580   is_online        in boolean,
581   is_alter         in boolean,
582   table_partition  in varchar2 default NULL,
583   index_partition  in varchar2 default NULL
584 ) ;
585 
586 /*----------------------- CDIUpdate  -------------------------*/
587 
588 PROCEDURE CDIUpdate(
589   polid       in number,
590   ia          in sys.odciindexinfo,
591   env         in sys.ODCIEnv,
592   ridlist     in sys.odciridlist,
593   oldvallist  in sys.odcicolarrayvallist,
594   newvallist  in sys.odcicolarrayvallist
595 );
596 
597 PROCEDURE RIOCleanup(
598   idx_shadow  in dr_def.idx_rec
599 );
600 
601 PROCEDURE PartCleanup(
602   idx_shadow   dr_def.idx_rec,
603   ixp_shadow   dr_def.ixp_rec
604 );
605 
606 FUNCTION CursorToBitVector(
607   crsr    in popcurtyp,
608   numbits in number) RETURN varchar2;
609 
610 PROCEDURE add_big_io(
611   idx in dr_def.idx_rec
612 );
613 
614 PROCEDURE remove_big_io(
615   idx in dr_def.idx_rec
616 );
617 
618 PROCEDURE add_separate_offsets(
619   idx in dr_def.idx_rec
620 );
621 
622 PROCEDURE add_stage_itab(
623   idx in dr_def.idx_rec,
624   ixp       in dr_def.ixp_rec default NULL
625 );
626 
627 PROCEDURE remove_stage_itab(
628   idx in dr_def.idx_rec,
629   ixp       in dr_def.ixp_rec default NULL
630 );
631 
632 /*--------------------------- field_to_mdata -------------------------------*/
633 /* convert a field section to mdata */
634 PROCEDURE field_to_mdata(
635   idx in dr_def.idx_rec,
636   fsec in varchar2,
637   read_only in boolean
638 );
639 
640 /*------------------------ IndexMapLanguagesDriver -------------------------*/
641 /* Driver for IndexMapLanguages - partitioned and non partitioned case. */
642 procedure IndexMapLanguagesDriver(
643   idx      in dr_def.idx_rec
644 );
645 
646 /*--------------------------- IndexMapLanguages ---------------------------*/
647 /* Map language column in base table to mdata sections */
648 procedure IndexMapLanguages(
649   idx      in dr_def.idx_rec,
650   ixp      in dr_def.ixp_rec,
651   pdegree  in number,
652   flags    in binary_integer,
653   sectyp   in binary_integer,
654   hash_usable in number
655 );
656 
657 /*---------------------- AddDocLexerMDATATokens ------------------------*/
658 /* Add DR$ML MDATA Tokens to $I */
659 PROCEDURE AddDocLexerMDATATokens(
660   ia       in sys.ODCIIndexInfo,
661   idx      in dr_def.idx_rec
662 );
663 
664 /*---------------------- RemDocLexerMDATATokens ------------------------*/
665 /* Remove DR$ML MDATA Tokens from $I(s) */
666 PROCEDURE RemDocLexerMDATATokens(
667   ia       in sys.ODCIIndexInfo,
668   idx in dr_def.idx_rec
669 );
670 
671 /*--------------------------- idx_add_slx ------------------------------*/
672 /* Add sublexer to the Index */
673 PROCEDURE idx_add_slx(
677   language  in varchar2,
674   ia        in sys.ODCIIndexInfo,
675   idx       in dr_def.idx_rec,
676   sub_lexer in varchar2,
678   alt_value in varchar2,
679   language_dependent in boolean default TRUE
680 );
681 
682 /*--------------------------- idx_rem_slx ------------------------------*/
683 /* Remove sublexer from the Index */
684 PROCEDURE idx_rem_slx(
685   ia        in sys.ODCIIndexInfo,
686   idx       in dr_def.idx_rec,
687   sub_lexer in varchar2
688 );
689 
690 /*--------------------------- idx_add_sw ------------------------------*/
691 /* Add stopword to the Index */
692 PROCEDURE idx_add_sw(
693   ia        in sys.ODCIIndexInfo,
694   idx       in dr_def.idx_rec,
695   stopword  in varchar2,
696   language  in varchar2,
697   language_dependent in boolean default TRUE,
698   secname   in varchar2
699 );
700 
701 /*--------------------------- idx_rem_sw ------------------------------*/
702 /* Remove stopword from the Index */
703 PROCEDURE idx_rem_sw(
704   ia        in sys.ODCIIndexInfo,
705   idx       in dr_def.idx_rec,
706   stopword    in  varchar2,
707   language    in  varchar2,
708   for_all     in boolean default FALSE
709 );
710 
711 /*--------------------------- repopulate_dollarn ---------------------------*/
712 /* repopulate_dollarn - repopulate $N as opposite of $K */
713 PROCEDURE repopulate_dollarn(
714   idx       in dr_def.idx_rec,
715   ixp       in dr_def.ixp_rec
716 );
717 
718 /*------------------------------ set_read_mode -----------------------------*/
719 /* set_read_mode - Set read mode to TRUE/FALSE, for given partition */
720 PROCEDURE set_read_mode(
721   ia        in sys.ODCIIndexInfo,
722   idx       in dr_def.idx_rec,
723   ixp       in dr_def.ixp_rec default NULL,
724   read_mode in boolean
725 );
726 
727 end drvddl;