import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

/**
 * 
 */

/**
 * Test case for MySQL CursorFetch bug
 */
public class CursorFetchTest
{
    private static final String DRIVER = "com.mysql.jdbc.Driver";
    private static final String CONNECT_URI = "jdbc:mysql://192.168.201.2:3306/dbt3N2?useCursorFetch=true&useServerPrepStmts=true";
    private static final String USER = "user";
    private static final String PASSWORD = "password";

    public static void main(String[] args) throws Exception
    {
        Class.forName(DRIVER);
        Connection conn = DriverManager.getConnection(CONNECT_URI, USER, PASSWORD);
        try
        {
            Statement stmtRead = conn.createStatement();
            stmtRead.setFetchSize(1000);
            // Execute test query
            ResultSet rs = stmtRead.executeQuery("select extract(year from l_shipdate) as o_year, lineitem.l_extendedprice * (1 - lineitem.l_discount) as volume from lineitem where l_orderkey < 1000");
            try
            {
                // Dump results
                while (rs.next())
                {
                    System.out.printf("%d\t%d\n", new Object[] {rs.getInt(1), rs.getInt(2)});
                }
            }
            finally
            {
                rs.close();
            }
        }
        finally
        {
            conn.close();
        }
    }
}
