Bug 151788 Provide additional ODA runtime hints to the ODA consumer
Some ODA runtime drivers are not able to obtain sufficient metadata on its parameters and result set column. Such metadata is thus needed to be collected at design time, for use by the BIRT ODA consumer. For example, the native data type of a parameter and column is often needed, but is not currently available to the odaconsumer in the Data Engine API runtime hints. This enhancement involves adding the native data type to the Data Engine API, and passing through its value from the ROM Model in report design to the ODA consumer.
data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/odi/IDataSourceQuery.java
* Dynamically declares an user-defined custom, modifiable field 
     * in the result set's IResultObject definition
 	 * specifying its name and type. <br>
	 * Must be declared before preparing the query. <br>
     * A declared custom field is automatically included in the projected result 
     * of an IResultObject instance. 
     * It contains null value, until an ODI consumer directly assigns a value to it.
     * @param fieldName	The name of the custom field; 
     * 					must be unique in an result instance.
     * @param dataType	The data type of the custom field; must be one defined
     * 					in birt.data.engine.api.DataType.
     * 					Its value can be ANY_TYPE if it is not known 
     * 					at this time.
     * @throws DataException	if the field cannot be added.
     */
    public void declareCustomField( String fieldName, int dataType )
    	throws DataException;
    /**
     * Prepares the query instance for subsequent execution.
     * This method requires the Query instance to validate any bound elements, 
     * such as the Result Projection against the underlying result metadata, 
     * and report any incompatibilities by throwing a chained OdiException.
     * @throws DataException	if query validation error(s) occur.
     */
    public IPreparedDSQuery prepare() throws DataException;
    
    /**
     * Class to hold hints for a result set field. For use with setResultHints method.
     */
    public static final class ResultFieldHint