I have also weird results: I access data by ID, which is a primary key in the table. Some times (again, very random behaviour) I get 4 rows back (instead of just 1) and the data I get is always
1275749989 This happens with random IDs. the code to check this is: [..] ResultSet rs = ps1.executeQuery(); boolean c = false; while (rs.next()) { int g = rs.getInt(2); if (c) { // this shouldn't happen, because I'm selecting by ID, but it happens! System.out.println(m + " " + g); } c = true; } > -----Messaggio originale----- > Da: Leonardo Francalanci [mailto:[EMAIL PROTECTED] > Inviato: marted́ 22 giugno 2004 14.43 > A: Mysql > Oggetto: connectorJ & huge table problem > > > I have a large table (64,000,000 rows). > Everything was fine when the table was 16,000,000 rows, > now connectorJ crashes: > > java.sql.SQLException: java.lang.ArrayIndexOutOfBoundsException: 6 > at > com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPrepa > redStateme > nt.java:908) > at > com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1622) > > > > my code is: > > java.sql.Connection regularConn = > ConnectionHandler.getRegularConnection(); > > java.sql.PreparedStatement ps1 = null; > //letspartyConn.prepareStatement(query); > for (int i = 0; i < 1000; i++) { > String query = "SELECT * FROM PARTITIONED_B WHERE ID=?"; > ps1 = regularConn.prepareStatement(query); > int m = new Double(Math.random() * 64000000).intValue(); > ps1.setInt(1, 12352597); > ResultSet rs = ps1.executeQuery(); > while (rs.next()) { > int g = rs.getInt(2); > } > rs.close(); > ps1.close(); > > } > regularConn.close(); > > > > > I debugged the code, and it seems to happen when it reads a long > (readLongLong), > but I don't have any data in my db that is long (everything is int, and in > fact > every time the method readLongLong gets called it crashes). > The error seems very random (sometimes happens, some others no, and always > with different IDs), > I have no idea. > > Note that using the prepared statement in the proper way, that is: > > String query = "SELECT * FROM PARTITIONED_B WHERE ID=?"; > ps1 = regularConn.prepareStatement(query); > for (int i = 0; i < 1000; i++) { > int m = new Double(Math.random() * 64000000).intValue(); > ps1.setInt(1, 12352597); > ResultSet rs = ps1.executeQuery(); > while (rs.next()) { > int g = rs.getInt(2); > } > rs.close(); > } > ps1.close(); > regularConn.close(); > > > everything works fine. Re-creating the PreparedStatement each > time gives me > the error > above when I call ResultSet rs = ps1.executeQuery(). > > I'm using connectorJ 3.1.2, mysql 4.1.2 > > > > > > -- > MySQL General Mailing List > For list archives: http://lists.mysql.com/mysql > To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED] -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]