package testsuite.simple;

import testsuite.BaseTestCase;

import java.sql.CallableStatement;
import java.sql.ResultSetMetaData;

public class TestBug24065 extends BaseTestCase{

	public TestBug24065(String name) {
	super(name);
	}

	/**
	 * @param args
	 */
	public void testBug24065() throws Exception {
		if (versionMeetsMinimum(5, 0)) {
			this.stmt.executeUpdate("DROP PROCEDURE IF EXISTS testBug24065");
			
			createTable("tblTestBug24065", "("
					+ "id varchar(20) NOT NULL default '',"
					+ "Income double(19,2) default NULL)");	
			
			this.stmt.executeUpdate("CREATE PROCEDURE testBug24065()"
					+ "BEGIN"
					+ "\n SELECT * FROM tblTestBug24065;" 
					+ "\nEND");

			this.stmt.executeUpdate("INSERT INTO tblTestBug24065 (`id`,`Income`) VALUES"
					+ "('a',4094.00),"
					+ "('b',500.00),"
					+ "('c',3462.17),"
					+ " ('d',500.00),"
					+ " ('e',600.00)");
			
			try {
				CallableStatement spUserUpdate = this.conn.prepareCall("{ CALL testBug24065() }");
				this.rs =spUserUpdate.executeQuery();
                ResultSetMetaData rsmd= this.rs.getMetaData();
                int columnCount=rsmd.getColumnCount();
                while(this.rs.next()) {
                    for(int i=0;i<columnCount;i++) {
                    	System.out.print(rsmd.getColumnName(i+1)+"="+rs.getObject(i+1));
                        System.out.print('\t');
                    }
                    System.out.println();
                }
                spUserUpdate.close();                
			} finally {
				closeMemberJDBCResources();
			}
		}
	}
}
