Bug 180842 Config memory buffer size in data engine execution.
To tuning the performance, it is necessary for DtE to expose API for clients to config the size of memory it used to store the final result set. A new AppContext string, "org.eclipse.birt.data.cache.memory.size" is proposed. The new appcontext entry only accept positive integer as input, the unit of which would be MB.
data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/executor/cache/SizeOfUtil.java
private final static int DOUBLE_SIZE = 16;
	private static int BIGDECIMAL_SIZE = 80;
	private final static int DATE_SIZE = 24;
	private final static int TIME_SIZE = 24;
	private static int TIMESTAMP_SIZE = 24;
	
	private int fieldCount = 0;
	private boolean[] isfixedSize = null;
	private int[] fieldSize = null;
	
	static {
		if(System.getProperty( "java.version" ).startsWith( "1.5" ))
		{
			BIGDECIMAL_SIZE = 96;
			TIMESTAMP_SIZE = 32;
		}
	}
	/**
	 * 
	 * @param resultClass
	 * @throws DataException
	 */
	SizeOfUtil( IResultClass resultClass ) throws DataException
	{
		fieldCount = resultClass.getFieldCount( );
		isfixedSize = new boolean[resultClass.getFieldCount( )];
		fieldSize = new int[resultClass.getFieldCount( )];
		for ( int i = 1; i <= resultClass.getFieldCount( ); i++ )
		{
			if ( isFixedSizeClass( resultClass.getFieldValueClass( i ) ) )