/**
 * Full JVM settings and connection string: 
 * -Xmx512M -XX:+UseParallelGC -Dcom.mysql.jdbc.testsuite.url.default=jdbc:mysql://localhost:3306/test?user=root&password=*****&UseUnicode=true&dumpMetadataOnColumnNotFound=true&zeroDateTimeBehaviour=convertToNull&noDatetimeStringSync=true&useServerPrepStmts=true
 */
package testsuite.simple;

import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.util.Properties;

import testsuite.BaseTestCase;

/**
 * @author Tonci
 *
 */
public class TestBug33594 extends BaseTestCase {

	/**
	 * @param name
	 */
	public TestBug33594(String name) {
		super(name);
		// TODO Auto-generated constructor stub
	}
	public void testBug33594() throws Exception {
		System.out.println("java.vm.version         : " + System.getProperty("java.vm.version"));
		System.out.println("java.vm.vendor          : " + System.getProperty("java.vm.vendor"));
		System.out.println("java.runtime.version    : " + System.getProperty("java.runtime.version"));
		System.out.println("os.name                 : " + System.getProperty("os.name"));
		System.out.println("os.version              : " + System.getProperty("os.version "));
		System.out.println("sun.management.compiler : " + System.getProperty("sun.management.compiler"));
		try {
			createTable("bug33594", "(fid varchar(255) not null primary key, id INT, geom linestring, name varchar(255))");

	        if (versionMeetsMinimum(5, 0, 7)) {
	            Properties props = new Properties();
	            props.put("useInformationSchema", "true");
	            props.put("useCursorFetch","true");
	            props.put("defaultFetchSize","100");
	            Connection conn1 = null;
	            try {
	            conn1 = getConnectionWithProps(props);
	                DatabaseMetaData metaData = conn1.getMetaData();
	                this.rs = metaData.getColumns(null, null, "bug33594", null);
	                this.rs.next();
	                assertEquals("bug33594", this.rs.getString("TABLE_NAME"));
	                assertEquals("fid", this.rs.getString("COLUMN_NAME"));
	                assertEquals("VARCHAR", this.rs.getString("TYPE_NAME"));
	                assertEquals("255", this.rs.getString("COLUMN_SIZE"));

//-------------------------------------------	                
		            Properties props2 = new Properties();
		            props2.put("useInformationSchema", "false");
		            props2.put("useCursorFetch","true");
		            props2.put("defaultFetchSize","100");
		            Connection conn2 = null;
		            try {
		            conn2 = getConnectionWithProps(props2);
		                DatabaseMetaData metaData2 = conn2.getMetaData();
		                this.rs = metaData2.getColumns(null, null, "bug33594", null);
		                this.rs.next();
		                assertEquals("bug33594", this.rs.getString("TABLE_NAME"));
		                assertEquals("fid", this.rs.getString("COLUMN_NAME"));
		                assertEquals("VARCHAR", this.rs.getString("TYPE_NAME"));
		                assertEquals("255", this.rs.getString("COLUMN_SIZE"));
		            } finally {
		                if (conn2 != null) {
							conn2.close();
						}
		            }
	            } finally {
	                if (conn1 != null) {
						conn1.close();
					}
	            }
	        }
		
		
		} finally {
			closeMemberJDBCResources();
		}
	}
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		junit.textui.TestRunner.run(TestBug33594.class);
	}

}
