import java.sql.*;
import java.util.*;
import javax.sql.*;


public class Bug16458 extends testsuite.BaseTestCase {


	public Bug16458(String name) {
		super(name);
	}

	public void setUp() throws Exception {
                dbUrl = "jdbc:mysql://localhost:3306/test?user=root";
		super.setUp();
                DatabaseMetaData databaseMetaData = conn.getMetaData();
		System.out.println("Database/Driver Information");
		System.out.println("==============================");
		System.out.println("JDBCMajorVersion = "+databaseMetaData.getJDBCMajorVersion());
		System.out.println("JDBCMinorVersion = "+databaseMetaData.getJDBCMinorVersion());
		System.out.println("driverName = "+databaseMetaData.getDriverName());
		System.out.println("driverVersion = "+databaseMetaData.getDriverVersion());
		System.out.println("driverMajorVersion = "+databaseMetaData.getDriverMajorVersion());
		System.out.println("driverMinorVersion = "+databaseMetaData.getDriverMinorVersion());
		System.out.println("databaseProductName = "+databaseMetaData.getDatabaseProductName());
		System.out.println("databaseProductVersion = "+databaseMetaData.getDatabaseProductVersion());
		System.out.println("databaseMajorVersion = "+databaseMetaData.getDatabaseMajorVersion());
		System.out.println("databaseMinorVersion = "+databaseMetaData.getDatabaseMinorVersion());
		System.out.println("supportsStoredProcedures = "+databaseMetaData.supportsStoredProcedures());
		System.out.println("==============================");

	}

	public void testPound16458() throws SQLException {
           System.out.println("START");

	   PreparedStatement ps = null;
	   ResultSet rs = null;

	    ps = conn.prepareStatement("SELECT DISTINCT id,order_num FROM problem_table WHERE a_id=? FOR UPDATE",
				       ResultSet.TYPE_FORWARD_ONLY,
				       ResultSet.CONCUR_UPDATABLE);

	    ps.setInt(1, 32);

	    rs = ps.executeQuery();

	    while(rs.next())
	    {
		rs.updateInt(3, 51);

		rs.updateRow();
	    }

	    System.out.println("Success!");


            System.out.println("END");
        }

	public static void main(String args[]) throws Exception {
		junit.textui.TestRunner.run(Bug16458.class);
	}

}