Oracle9i Data Cartridge Developer's Guide Release 2 (9.2) Part Number A96595-01 |
|
This chapter describes features relating to data cartridges that are new in Oracle9i Release 2 (9.2).
Oracle9i adds partitioned, local domain indexes and a number of other new features of interest to developers of data cartridges. To support local domain indexes in particular, both the Extensible Indexing interface (the ODCIIndex*
routines) and the Extensible Optimizer interface (the ODCIStats*
routines) have undergone some changes: new routines have been added, and most of the existing routines have acquired an additional parameter of the new system-defined type ODCIEnv
.
Existing code that uses the Oracle8i version of the ODCIIndex*
and ODCIStats*
interfaces does not need to be changed to run under Oracle9i unless you want to use new features that require the new interfaces. Some new features--for example, user-defined aggregate functions and table functions--do not require the new interfaces, but local domain indexes do.
To implement local domain indexes, you must adopt the new ODCIIndex*
interface. This means that, if you have existing code based on the Oracle8i version of the interface, you must migrate that code in its entirety to the Oracle9i version of the interfaces: you cannot simply supplement it with calls to a few new functions and leave the rest of the code unchanged. And, if you do adopt the Oracle9i ODCIIndex*
interface, you can use only the Oracle9i ODCIStats*
interface with it: you cannot use the Oracle8i version.
Oracle supports both the Oracle8i and Oracle9i versions of the ODCIIndex*
and ODCIStats*
interfaces. The string you return in the ODCIObjectList
parameter of ODCIGetInterfaces
tells the system which version your code implements. (Details on using this routine are explained in the reference chapters on the Extensible Indexing and Extensible Optimizer interfaces later in this book.)
To sum up: If you have Oracle8i code, that code will still work. To continue to use the Oracle8i interface, do not implement Oracle9i versions of any of the ODCIIndex*
or ODCIStats*
routines.
It is now possible to create and rebuild domain indexes and local domain index partitions in parallel.
A table function can now return the generic collection type SYS.AnyDataSet.
Discrete domain indexes, called local domain indexes, can be built on the partitions of a range-partitioned table. Local domain indexes are equipartitioned with the underlying table: all keys refer only to rows stored in the local domain index's corresponding table partition.
The extensible optimizer supports collection of user-defined statistics--partition level and aggregate--for partitioned tables.
New package DBMS_ODCI
contains a utility to help better estimate the cost of user-defined functions.
Instances of an indextype or object inherit an association of a statistics type. Now you can replace this with a NULL
association for occasions when the benefit of using a better plan may not outweigh the added cost of compiling the cost or selectivity functions implemented by the statistics type.
Custom aggregate functions can be defined for working with complex data.
Table functions can be used in the FROM
clause of a query to return a collection (either a nested table or a varray) of rows as output. A table function can use parallel execution, and result rows from can be pipelined--that is, iteratively returned.
External procedures can be given fields or parameters of a generic type that can contain values of any scalar or user-defined type, making it unnecessary to implement multiple versions of the same external procedure just to handle multiple datatypes.
See Also:
Chapter 12, the section "Transient and Generic Types" |
|
Copyright © 1996, 2002 Oracle Corporation. All Rights Reserved. |
|