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');
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
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');
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
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
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
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
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 ');
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 :'||
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;
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:
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);
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);
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: ');
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;
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);
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 : '||
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 : '||
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 : '||
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;
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;