1 PROCEDURE ODCIQueryInfoDump(qi ODCIQueryInfo) IS
2 BEGIN
3 if qi is null then
4 dbms_output.put_line('ODCIQueryInfo is null');
5 return;
6 end if;
7
8 dbms_output.put_line('ODCIQueryInfo');
9 dbms_output.put_line('Flags :');
10
11 IF (bitand(qi.Flags, ODCIConst.QueryFirstRows) > 0)
12 THEN
13 dbms_output.put_line(' First Rows');
14 END IF;
15
16 IF (bitand(qi.Flags, ODCIConst.QueryAllRows) > 0)
17 THEN
18 dbms_output.put_line(' All Rows');
19 END IF;
20
21 IF (bitand(qi.Flags, ODCIConst.QuerySortAsc) > 0)
22 THEN
23 dbms_output.put_line(' Sort Ascending');
24 END IF;
25
26 IF (bitand(qi.Flags, ODCIConst.QuerySortDesc) > 0)
27 THEN
28 dbms_output.put_line(' Sort Descending');
29 END IF;
30
31 IF (bitand(qi.Flags, ODCIConst.QueryBlocking) > 0)
32 THEN
33 dbms_output.put_line(' Blocking Operations');
34 END IF;
35
36 IF qi.AncOps IS NOT NULL AND qi.AncOps.COUNT > 0 THEN
37 dbms_output.put_line('Ancillary Operators ');
38 FOR i IN qi.AncOps.FIRST..qi.AncOps.LAST LOOP
39 dbms_output.put_line(' Name : '||
40 qi.AncOps(i).ObjectName);
41 dbms_output.put_line(' Schema :'||
42 qi.AncOps(i).ObjectSchema);
43 END LOOP;
44 END IF;
45
46
47 IF qi.CompInfo IS NOT NULL AND qi.CompInfo.PredInfo IS NOT NULL THEN
48 dbms_output.put_line('Pushed Down Predicates');
49 FOR i IN qi.CompInfo.PredInfo.FIRST..qi.CompInfo.PredInfo.LAST LOOP
50 ODCIColInfoDump(qi.CompInfo.PredInfo(i).ColInfo);
51 dbms_output.put_line(' Flags: '||
52 qi.CompInfo.PredInfo(i).Flags);
53 IF qi.CompInfo.PredInfo(i).strt IS NOT NULL THEN
54 dbms_output.put_line(' Start: ');
55 ODCIAnyDataDump(qi.CompInfo.PredInfo(i).strt);
56 END IF;
57 IF qi.CompInfo.PredInfo(i).stop IS NOT NULL THEN
58 dbms_output.put_line(' Stop: ');
59 ODCIAnyDataDump(qi.CompInfo.PredInfo(i).stop);
60 END IF;
61
62 END LOOP;
63 END IF;
64
65 IF qi.CompInfo IS NOT NULL AND qi.CompInfo.ObyInfo IS NOT NULL THEN
66 dbms_output.put_line('Order By Clause');
67
68 FOR i IN qi.CompInfo.ObyInfo.FIRST..qi.CompInfo.ObyInfo.LAST LOOP
69 dbms_output.put_line(' ExprType: '||
70 qi.CompInfo.ObyInfo(i).ExprType);
71 dbms_output.put_line(' Schema : '||
72 qi.CompInfo.ObyInfo(i).ObjectSchema);
73 dbms_output.put_line(' TableName : '||
74 qi.CompInfo.ObyInfo(i).TableName);
75 dbms_output.put_line(' ColumnName : '||
76 qi.CompInfo.ObyInfo(i).ExprName);
77 dbms_output.put_line(' SortOrder : '||
78 qi.CompInfo.ObyInfo(i).SortOrder);
79 END LOOP;
80 END IF;
81 END;