Author: gdusbabek
Date: Wed Mar 30 14:30:55 2011
New Revision: 1086967

URL: http://svn.apache.org/viewvc?rev=1086967&view=rev
Log:
fix off-by-one in CassandraResultSet

Modified:
    
cassandra/trunk/drivers/java/src/org/apache/cassandra/cql/jdbc/CassandraResultSet.java
    
cassandra/trunk/drivers/java/test/org/apache/cassandra/cql/JdbcDriverTest.java
    
cassandra/trunk/drivers/java/test/org/apache/cassandra/cql/jdbc/PreparedStatementTest.java

Modified: 
cassandra/trunk/drivers/java/src/org/apache/cassandra/cql/jdbc/CassandraResultSet.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/drivers/java/src/org/apache/cassandra/cql/jdbc/CassandraResultSet.java?rev=1086967&r1=1086966&r2=1086967&view=diff
==============================================================================
--- 
cassandra/trunk/drivers/java/src/org/apache/cassandra/cql/jdbc/CassandraResultSet.java
 (original)
+++ 
cassandra/trunk/drivers/java/src/org/apache/cassandra/cql/jdbc/CassandraResultSet.java
 Wed Mar 30 14:30:55 2011
@@ -365,7 +365,7 @@ class CassandraResultSet implements Resu
      */
     public byte[] getBytes(int index) throws SQLException
     {
-        return values.get(index) != null ? 
((ByteBuffer)values.get(index).getValue()).array() : null;
+        return values.get(index-1) != null ? 
((ByteBuffer)values.get(index-1).getValue()).array() : null;
     }
 
     /**
@@ -553,7 +553,7 @@ class CassandraResultSet implements Resu
      */
     public int getInt(int index) throws SQLException
     {
-        return values.get(index) != null ? 
((BigInteger)values.get(index).getValue()).intValue() : null;
+        return values.get(index-1) != null ? 
((BigInteger)values.get(index-1).getValue()).intValue() : null;
     }
 
     /**
@@ -574,7 +574,7 @@ class CassandraResultSet implements Resu
      */
     public long getLong(int index) throws SQLException
     {
-        return values.get(index) != null ? (Long)values.get(index).getValue() 
: null;
+        return values.get(index-1) != null ? 
(Long)values.get(index-1).getValue() : null;
     }
 
     /**
@@ -664,7 +664,7 @@ class CassandraResultSet implements Resu
      */
     public Object getObject(int index) throws SQLException
     {
-        return values.get(index) == null ? null : values.get(index).getValue();
+        return values.get(index-1) == null ? null : 
values.get(index-1).getValue();
     }
 
     /**
@@ -805,7 +805,7 @@ class CassandraResultSet implements Resu
      */
     public String getString(int index) throws SQLException 
     {
-        return values.get(index) != null ? 
ColumnDecoder.colValueAsString(values.get(index).getValue()) : null;
+        return values.get(index-1) != null ? 
ColumnDecoder.colValueAsString(values.get(index-1).getValue()) : null;
     }
 
     /**

Modified: 
cassandra/trunk/drivers/java/test/org/apache/cassandra/cql/JdbcDriverTest.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/drivers/java/test/org/apache/cassandra/cql/JdbcDriverTest.java?rev=1086967&r1=1086966&r2=1086967&view=diff
==============================================================================
--- 
cassandra/trunk/drivers/java/test/org/apache/cassandra/cql/JdbcDriverTest.java 
(original)
+++ 
cassandra/trunk/drivers/java/test/org/apache/cassandra/cql/JdbcDriverTest.java 
Wed Mar 30 14:30:55 2011
@@ -228,8 +228,8 @@ public class JdbcDriverTest extends Embe
                 FBUtilities.bytesToHex(a),
                 FBUtilities.bytesToHex(b)));
         assert rs.next();
-        assert Arrays.equals(aa, rs.getBytes(0));
-        assert Arrays.equals(bb, rs.getBytes(1));
+        assert Arrays.equals(aa, rs.getBytes(1));
+        assert Arrays.equals(bb, rs.getBytes(2));
         assert Arrays.equals(aa, rs.getBytes(FBUtilities.bytesToHex(a)));
         assert Arrays.equals(bb, rs.getBytes(FBUtilities.bytesToHex(b)));
         ResultSetMetaData md = rs.getMetaData();
@@ -423,16 +423,16 @@ public class JdbcDriverTest extends Embe
             {
                 // getString and getObject should always work.
                 assert rs.getString(cols[c]) != null;
-                assert rs.getString(c) != null;
+                assert rs.getString(c+1) != null;
                 assert rs.getObject(cols[c]) != null;
-                assert rs.getObject(c) != null;
+                assert rs.getObject(c+1) != null;
                 
                 // now call the accessor.
                 try
                 {
                     Method byInt = rs.getClass().getDeclaredMethod("get" + 
accessor, int.class);
                     byInt.setAccessible(true);
-                    assert byInt.invoke(rs, c) != null;
+                    assert byInt.invoke(rs, c+1) != null;
                     
                     Method byString = rs.getClass().getDeclaredMethod("get" + 
accessor, String.class);
                     byString.setAccessible(true);

Modified: 
cassandra/trunk/drivers/java/test/org/apache/cassandra/cql/jdbc/PreparedStatementTest.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/drivers/java/test/org/apache/cassandra/cql/jdbc/PreparedStatementTest.java?rev=1086967&r1=1086966&r2=1086967&view=diff
==============================================================================
--- 
cassandra/trunk/drivers/java/test/org/apache/cassandra/cql/jdbc/PreparedStatementTest.java
 (original)
+++ 
cassandra/trunk/drivers/java/test/org/apache/cassandra/cql/jdbc/PreparedStatementTest.java
 Wed Mar 30 14:30:55 2011
@@ -54,6 +54,8 @@ public class PreparedStatementTest exten
             assert rs.next();
             assert 
Arrays.equals(rs.getBytes(FBUtilities.bytesToHex(FBUtilities.toByteArray(i))), 
FBUtilities.toByteArray((i+1)*10));
             assert 
Arrays.equals(rs.getBytes(FBUtilities.bytesToHex(FBUtilities.toByteArray(i+100))),
 FBUtilities.toByteArray((i+1)*10+1));
+            assert Arrays.equals(rs.getBytes(1), 
FBUtilities.toByteArray((i+1)*10));
+            assert Arrays.equals(rs.getBytes(2), 
FBUtilities.toByteArray((i+1)*10+1));
             assert !rs.next();
             rs.close();
         }
@@ -111,6 +113,8 @@ public class PreparedStatementTest exten
             assert rs.next();
             assert 
rs.getString("1\u6543\u3435\u6554").equals("abc\u6543\u3435\u6554");
             assert 
rs.getString("2\u6543\u3435\u6554").equals("def\u6543\u3435\u6554");
+            assert rs.getString(1).equals("abc\u6543\u3435\u6554");
+            assert rs.getString(2).equals("def\u6543\u3435\u6554");
             assert !rs.next();
             rs.close();
         }
@@ -168,6 +172,8 @@ public class PreparedStatementTest exten
             assert rs.next();
             assert rs.getString("1").equals("abc");
             assert rs.getString("2").equals("def");
+            assert rs.getString(1).equals("abc");
+            assert rs.getString(2).equals("def");
             assert !rs.next();
             rs.close();
         }
@@ -225,6 +231,8 @@ public class PreparedStatementTest exten
             assert rs.next();
             assert rs.getLong("1") == (i+1)*10;
             assert rs.getLong("2") == (i+1)*10+1;
+            assert rs.getLong(1) == (i+1)*10;
+            assert rs.getLong(2) == (i+1)*10+1;
             assert !rs.next();
             rs.close();
         }
@@ -282,6 +290,8 @@ public class PreparedStatementTest exten
             assert rs.next();
             assert rs.getInt("1") == (i+1)*10;
             assert rs.getInt("2") == (i+1)*10+1;
+            assert rs.getInt(1) == (i+1)*10;
+            assert rs.getInt(2) == (i+1)*10+1;
             assert !rs.next();
             rs.close();
         }


Reply via email to