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]

Reply via email to