1 package drvdml authid current_user as
2
3 -- CTXCAT holding variables
4 type vctab is table of varchar2(30) index by binary_integer;
5 c_vctab vctab;
6 c_cttab vctab;
7
8 type numtab is table of number index by binary_integer;
9 c_numtab numtab;
10
11 type dttab is table of date index by binary_integer;
12 c_dttab dttab;
13
14 type cntab is table of varchar2(256) index by binary_integer;
15 c_cntab cntab;
16
17 c_text_vc2 varchar2(32767);
18 c_text_clob clob;
19 c_rowid rowid;
20
21 type updtab is table of boolean index by binary_integer;
22 c_updtab updtab;
23
24 -- 5079472: Mirror dbms_lock constants here because dbms_lock may not
25 -- be granted to public.
26 s_mode number := dbms_lock.s_mode;
27 x_mode number := dbms_lock.x_mode;
28
29 -- Indicates if index population to be done on per document basis
30 pv_idx_pop_per_doc boolean := FALSE;
31
32 /*--------------------------- ProcessWaiting ------------------------------*/
33
34 procedure ProcessWaiting (
35 p_idxtype in binary_integer,
36 p_idxid in number,
37 p_idxown in varchar2,
38 p_idxname in varchar2,
39 p_ixpid in number,
40 p_ixpname in varchar2
41 );
42
43 /*--------------------------- ProcessDML ------------------------*/
44 /*
45 NAME
46 ProcessDML
47
48 DESCRIPTION
49 do a sync
50
51 ARGUMENTS
52 CID in - column to work on
53 parallel_degree in - parallel degree
54 direct_path in - use direct-path inserts ?
55
56 */
57 procedure ProcessDML (
58 p_idxid in number,
59 p_ixpid in number,
60 p_idxmem in number,
61 p_pardeg in binary_integer default 1,
62 p_direct_path in boolean default false,
63 p_maxtime in binary_integer default 2147483647
64 );
65
66 /*--------------------------- MaintainKTab -------------------------*/
67 /*
68 NAME
69 MaintainKTab
70
71 DESCRIPTION
72 update the $K table after index creation/sync
73
74 ARGUMENTS
75 idx in - the index
76 ixp in - the partition of the index
77 p_startDocid in - docid to start from
78 p_parallel_degree in - parallel degree
79
80 */
81 procedure MaintainKTab (
82 idx in dr_def.idx_rec,
83 ixp in dr_def.ixp_rec,
84 p_startDocid in number default null,
85 p_parallel_degree in number default 1
86 );
87 /*--------------------------- MaintainKTab -------------------------*/
88 /*
89 NAME
90 MaintainKTab
91
92 DESCRIPTION
93 update the $K table after index creation/sync
94
95 ARGUMENTS
96 p_idxid in - the index id
97 p_ixpid in - the partition id
98 p_startDocid in - docid to start from
99 p_parallel_degree in - parallel degree
100 */
101 procedure MaintainKTab (
102 p_idxid in number,
103 p_ixpid in number,
104 p_startDocid in number default null,
105 p_parallel_degree in number default 1
106 );
107
108 /*--------------------------- DeletePending ------------------------*/
109
110 procedure DeletePending (
111 p_idxid in number,
112 p_ixpid in number,
113 p_rids in varchar2
114 );
115
116 /*----------------------------- CleanDML ---------------------------*/
117
118 procedure CleanDML (
119 p_idxid in number,
120 p_ixpid in number,
121 p_tabid in number
122 );
123
124 /*-------------------------- SetLockFailed -------------------------*/
125
126 procedure SetLockFailed (
127 p_idxid in number,
128 p_ixpid in number,
129 p_rid in rowid
130 );
131
132 /*--------------------------- ctxcat_dml ----------------------------*/
133
134 procedure ctxcat_dml(
135 idx_owner in varchar2,
136 idx_name in varchar2,
137 doindex in boolean,
138 updop in boolean
139 );
140
141 /*----------------------- auto_sync_index ------------------------*/
142
143 PROCEDURE auto_sync_index(
144 idx_name in varchar2 default NULL,
145 memory in varchar2 default NULL,
146 part_name in varchar2 default NULL,
147 parallel_degree in number default 1,
148 logfile in varchar2 default NULL,
149 events in number default NULL
150 );
151
152 /*----------------------- com_sync_index -------------------------*/
153 PROCEDURE com_sync_index(
154 idx_name in varchar2 default null,
155 memory in varchar2 default null,
156 part_name in varchar2 default null
157 );
158
159 /*----------------------- add_rem_mdata --------------------------*/
160
161 PROCEDURE add_rem_mdata(
162 add_rem in varchar2,
163 idx_name in varchar2,
164 section_name in varchar2,
165 mdata_values in sys.odcivarchar2list,
166 mdata_rowids in sys.odciridlist,
167 part_name in varchar2
168 );
169
170 /* 5364449: Removed csync since it is no longer used */
171
172 /*------------------- PopulatePending -----------------------------*/
173
174 PROCEDURE PopulatePending(
175 idx in dr_def.idx_rec,
176 ixpname in varchar2
177 );
178
179 /*------------------- UpdateMDATA -----------------------------*/
180
181 PROCEDURE UpdateMDATA(
182 itab in varchar2,
183 ktab in varchar2,
184 mdata_id in binary_integer,
185 coltype in varchar2,
186 rid in varchar2,
187 oldval in sys.anydata,
188 newval in sys.anydata,
189 gtab in varchar2 default null
190 );
191
192 /* Following 2 routines added for bug 5079472 */
193 /*------------------- lock_opt_rebuild ------------------------*/
194 PROCEDURE lock_opt_rebuild(
195 cid in number,
196 pid in number,
197 lock_mode in number,
198 timeout in number,
199 release_on_commit in boolean default FALSE
200 );
201
202 /*----------------- unlock_opt_rebuild ------------------------*/
203 PROCEDURE unlock_opt_rebuild;
204
205 /*--------------------------- lock_opt_mvdata -----------------*/
206 PROCEDURE lock_opt_mvdata(
207 cid in number,
208 pid in number
209 );
210
211 /*-------------------- upd_sdata -----------------------------*/
212 /*
213 NAME
214 upd_sdata
215
216 DESCRIPTION
217 update sdata section value
218
219 ARGUMENTS
220 idx_name - index name
221 section_name - SDATA section name
222 sdata_value - sdata value
223 sdata_rowid - rowid
224 part_name - partition name
225
226 NOTES
227
228 EXCEPTIONS
229 */
230
231 PROCEDURE upd_sdata(
232 idx_name in varchar2,
233 section_name in varchar2,
234 sdata_value in sys.anydata,
235 sdata_rowid in rowid,
236 part_name in varchar2 default NULL
237 );
238
239 /*----------------------- ins_del_mvdata --------------------------*/
240 /*
241 NAME
242 ins_del_mvdata
243
244 DESCRIPTION
245 update a set of docids with given MVDATA values
246
247 ARGUMENTS
248 ins_del - dml mode flag (INS, DEL, UPD)
249 idx_name - index name
250 section_name - MVDATA section name
251 mvdata_values - mvdata values
252 mvdata_rowids - rowids
253 part_name - partition name
254
255 NOTES
256
257 EXCEPTIONS
258 */
259
260 PROCEDURE ins_del_mvdata(
261 ins_del in varchar2,
262 idx_name in varchar2,
263 section_name in varchar2,
264 mvdata_values in sys.odcinumberlist,
265 mvdata_rowids in sys.odciridlist,
266 part_name in varchar2
267 );
268
269 /*----------------- AddRemOneMDATA ------------------------------------*/
270
271 procedure AddRemOneMDATA(
272 itab in varchar2,
273 docid in number,
274 mdataid in binary_integer,
275 addrem in binary_integer,
276 value in varchar2,
277 gtab in varchar2 default null
278 );
279
280 /*------------------------- idx_populate_mode ------------------------- */
281 FUNCTION idx_populate_mode
282 return number;
283
284 PROCEDURE AddRemOneSDATA(
285 sntab in varchar2,
286 docid in number,
287 sdataid in binary_integer,
288 addrem in binary_integer,
289 value in varchar2
290 );
291
292 PROCEDURE add_rem_sdata(
293 add_rem in varchar2,
294 idx_name in varchar2,
295 section_name in varchar2,
296 sdata_values in sys.odcivarchar2list,
297 sdata_rowids in sys.odciridlist,
298 part_name in varchar2
299 );
300 end drvdml;