DBA Data[Home] [Help]

PACKAGE: CTXSYS.DRIDML

Source


1 package dridml
2 is
3 
4   LOCK_WAIT       constant number  := null;
5   LOCK_NOWAIT     constant number  := 0;
6   IGNORE_ERRORS   constant boolean := TRUE;
7 
8 /*--------------------------- deregister --------------------------------*/
9 /*
10   NAME
11     DEREGISTER(cid) - deregister the given column with DML queue,
12 
13   DESCRIPTION
14     This procedure discontinues queueing of updates to the DML
15     queue.   It also flushes any pending requests, and waits for any
16     in-progress requests to complete
17   ARGUMENTS
18     CID		- the column id to register
19     unlock      - unlock DML afterwards?
20     zap_online_pending -- clear dr$online_pending
21 */
22 procedure DEREGISTER(cid number, unlock in boolean default TRUE,
23                      part_id number default 0,
24                      part_name in varchar2 default null,
25                      zap_online_pending in boolean default TRUE);
26 
27 /*------------------------------ lock_dml --------------------------------*/
28 /*
29   NAME
30     lock_dml
31 
32   DESCRIPTION
33      lock dml for a column
34 
35   ARGUMENTS
36      cid        -- cid to lock
37      timeout    -- if non-null, timeout
38      pid        -- partition id
39 
40   RETURNS
41      0 on success, 1 on timeout
42 
43   NOTES
44      This does not block out incoming DML reindex requests.
45 */
46 function lock_dml_ret(
47   cid        in number,
48   pid        in number,
49   timeout    in number
50 ) return number;
51 
52 procedure lock_dml(
53   cid        in number,
54   pid        in number,
55   timeout    in number
56 );
57 
58 /*------------------------- lock_dml_all_part ----------------------------*/
59 /* NOTE: gets multiple locks.  If fails, it's up to calling procedure to  */
60 /* release any locks it may have gotten                                   */
61 procedure lock_dml_all_part(
62   cid        in number
63 );
64 
65 /*----------------------------- unlock_dml ------------------------------*/
66 /*
67   NAME
68      UNLOCK_DML
69 
70   DESCRIPTION
71      Unlock the DML queue
72 
73   ARGUMENTS
74      ignore_errors	- don't flag any errors
75 */
76 procedure unlock_dml(
77   ignore_errors in boolean default false
78 );
79 
80 /*------------------------ unlock_dml_all_part ---------------------------*/
81 
82 procedure unlock_dml_all_part(
83   ignore_errors in boolean default false
84 );
85 
86 /* 5364449: Removed get_dml */
87 
88 /*--------------------------- ClearOnlinePending ------------------------*/
89 
90 procedure ClearOnlinePending(
91   p_idxid in number,
92   index_partition in varchar2 default NULL
93 );
94 
95 /*--------------------------- ExchangePending ---------------------------*/
96 /* exchange all rows in dr$pending, dr$waiting, etc. for exchange partition */
97 
98 procedure ExchangePending(
99   p_idxid1 in number,
100   p_ixpid1 in number,
101   p_idxid2 in number
102 );
103 
104 /*------------------------- delete_dup_waiting ----------------------------*/
105 /* eliminate duplicate dr$waiting rows */
106 
107 procedure delete_dup_waiting(cid in number, pid in number);
108 
109 /*------------------------- open_waiting_cur ----------------------------*/
110 /* open cursor on dr$waiting */
111 
112 procedure open_waiting_cur(cid in number, pid in number);
113 
114 /*------------------------- fetch_waiting_cur ----------------------------*/
115 /* fetch row from waiting cursor */
116 
117 function fetch_waiting_cur(rid out rowid, wrid out urowid) return number;
118 
119 /*------------------------- insert_pending -------------------------------*/
120 /* insert a row into dr$pending */
121 
122 procedure insert_pending(
123   cid  in number,
124   pid  in number,
125   rid  in rowid,
126   wrid in urowid default null
127 );
128 
129 /*-------------------------- DeletePending -------------------------*/
130 
131 procedure DeletePending (
132   p_idxid  in number,
133   p_ixpid  in number,
134   p_rid    in rowid
135 );
136 
137 /*-------------------------- DeletePendingArr ----------------------*/
138 
139 procedure DeletePendingArr (
140   p_idxid  in number,
141   p_ixpid  in number,
142   p_rid    in dr_def.rowid_tab
143 );
144 
145 /*-------------------------- SetLockFailed -------------------------*/
146 
147 procedure SetLockFailed (
148   p_idxid  in number,
149   p_ixpid  in number,
150   p_rid    in rowid
151 );
152 
153 /*-------------------------- HasPending ----------------------------*/
154 
155 function HasPending (
156   p_idxid  in number,
157   p_ixpid  in number
158 ) return boolean;
159 
160 /*-------------------------- CleanDelete ---------------------------*/
161 
162 procedure CleanDelete (
163   p_idxid  in number,
164   p_ixpid  in number
165 );
166 
167 /*-------------------------- PopulatePendingRowid ---------------------------*/
168 
169 procedure PopulatePendingRowid (
170   p_idxid in number,
171   p_ixpid in number,
172   p_rowid in varchar2
173 );
174 
175 /*-------------------------- lock_autosync_ret --------------------------*/
176 function lock_autosync_ret(
177   cid        in number,
178   pid        in number,
179   timeout    in number
180 ) return number;
181 
182 /*---------------------------- lock_autosync ----------------------------*/
183 procedure lock_autosync(
184   cid        in number,
185   pid        in number,
186   timeout    in number
187 );
188 
189 /*--------------------------- unlock_autosync ---------------------------*/
190 procedure unlock_autosync(
191   ignore_errors in boolean default false
192 );
193 
194 end dridml;