You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by rh...@apache.org on 2010/06/28 17:47:00 UTC
svn commit: r958610 - in /db/derby/code/trunk/java:
engine/org/apache/derby/iapi/types/SQLBoolean.java
testing/org/apache/derbyTesting/functionTests/tests/lang/BooleanValuesTest.java
Author: rhillegas
Date: Mon Jun 28 15:47:00 2010
New Revision: 958610
URL: http://svn.apache.org/viewvc?rev=958610&view=rev
Log:
DERBY-4716: Correct sort order for indexed BOOLEANs.
Modified:
db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/SQLBoolean.java
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/BooleanValuesTest.java
Modified: db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/SQLBoolean.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/SQLBoolean.java?rev=958610&r1=958609&r2=958610&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/SQLBoolean.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/SQLBoolean.java Mon Jun 28 15:47:00 2010
@@ -272,8 +272,8 @@ public final class SQLBoolean
/*
* thisNull otherNull thisValue thatValue return
* T T X X 0 (this == other)
- * F T X X 1 (this > other)
- * T F X X -1 (this < other)
+ * F T X X -1 (this > other)
+ * T F X X 1 (this < other)
*
* F F T T 0 (this == other)
* F F T F 1 (this > other)
@@ -283,9 +283,9 @@ public final class SQLBoolean
if (thisNull || otherNull)
{
if (!thisNull) // otherNull must be true
- return 1;
- if (!otherNull) // thisNull must be true
return -1;
+ if (!otherNull) // thisNull must be true
+ return 1;
return 0;
}
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/BooleanValuesTest.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/BooleanValuesTest.java?rev=958610&r1=958609&r2=958610&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/BooleanValuesTest.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/BooleanValuesTest.java Mon Jun 28 15:47:00 2010
@@ -1033,6 +1033,49 @@ public class BooleanValuesTest extends
goodStatement( conn, "delete from boolean_table" );
}
+ /**
+ * <p>
+ * Verify that boolean nulls sort at the end with or without an index,
+ * the behavior of other datatypes.
+ * </p>
+ */
+ public void test_13_sortOrder() throws Exception
+ {
+ Connection conn = getConnection();
+
+ goodStatement( conn, "create table booleanUnindexed( a boolean )" );
+ goodStatement( conn, "create table booleanIndexed( a boolean )" );
+ goodStatement( conn, "create index bi on booleanIndexed( a )" );
+
+ goodStatement( conn, "insert into booleanUnindexed( a ) values ( true ), ( null ), ( false )" );
+ goodStatement( conn, "insert into booleanIndexed( a ) values ( true ), ( null ), ( false )" );
+
+ String[][] expectedResults = new String[][]
+ {
+ { "false" },
+ { "true" },
+ { null },
+ };
+
+ assertResults
+ (
+ conn,
+ "select * from booleanUnindexed order by a",
+ expectedResults,
+ false
+ );
+ assertResults
+ (
+ conn,
+ "select * from booleanIndexed order by a",
+ expectedResults,
+ false
+ );
+
+ goodStatement( conn, "drop table booleanUnindexed" );
+ goodStatement( conn, "drop table booleanIndexed" );
+ }
+
///////////////////////////////////////////////////////////////////////////////////
//
// SQL ROUTINES