From 01ff2ef07998be1a9673a53ec00b6ae06f9c459a Mon Sep 17 00:00:00 2001 From: kolzeq Date: Tue, 12 Jan 2016 09:34:05 +0100 Subject: [PATCH] [CONJ-243] correction getString on tinyInt false value --- README.md | 19 ++++++++ pom.xml | 2 +- .../queryresults/MariaDbValueObject.java | 3 -- .../java/org/mariadb/jdbc/BooleanTest.java | 46 +++++++++++++++++-- 4 files changed, 62 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 4f282d836..e3c8e4c91 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,25 @@ or maven : ``` +Development snapshot are available on sonatype nexus repository +```script + + + sonatype-nexus-snapshots + Sonatype Nexus Snapshots + https://oss.sonatype.org/content/repositories/snapshots + + + + + + org.mariadb.jdbc + mariadb-java-client + 1.3.5-SNAPSHOT + + +``` + ## Documentation For a Getting started guide, API docs, recipes, etc. see the diff --git a/pom.xml b/pom.xml index 0efbde441..dcc7e2803 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ mariadb-java-client jar mariadb-java-client - 1.3.4 + 1.3.5-SNAPSHOT JDBC driver for MariaDB and MySQL https://mariadb.com/kb/en/mariadb/about-mariadb-connector-j/ diff --git a/src/main/java/org/mariadb/jdbc/internal/queryresults/MariaDbValueObject.java b/src/main/java/org/mariadb/jdbc/internal/queryresults/MariaDbValueObject.java index 6ed2014d4..b6f1010c6 100644 --- a/src/main/java/org/mariadb/jdbc/internal/queryresults/MariaDbValueObject.java +++ b/src/main/java/org/mariadb/jdbc/internal/queryresults/MariaDbValueObject.java @@ -131,9 +131,6 @@ public String getString(Calendar cal) throws SQLException { } break; case TINYINT: - if (options.tinyInt1isBit && columnInfo.getLength() == 1) { - return (rawBytes[0] == 0) ? "0" : "1"; - } if (this.isBinaryEncoded) { return String.valueOf(getTinyInt()); } diff --git a/src/test/java/org/mariadb/jdbc/BooleanTest.java b/src/test/java/org/mariadb/jdbc/BooleanTest.java index 8413479e7..faa353d49 100644 --- a/src/test/java/org/mariadb/jdbc/BooleanTest.java +++ b/src/test/java/org/mariadb/jdbc/BooleanTest.java @@ -10,6 +10,8 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; +import static org.junit.Assert.assertEquals; public class BooleanTest extends BaseTest { @@ -20,6 +22,8 @@ public class BooleanTest extends BaseTest { @BeforeClass() public static void initClass() throws SQLException { createTable("booleantest", "id int not null primary key auto_increment, test boolean"); + createTable("booleanvalue", "test boolean"); + } @Test @@ -28,10 +32,44 @@ public void testBoolean() throws SQLException { stmt.execute("insert into booleantest values(null, true)"); stmt.execute("insert into booleantest values(null, false)"); ResultSet rs = stmt.executeQuery("select * from booleantest"); - assertTrue(rs.next()); - assertTrue(rs.getBoolean(2)); - assertTrue(rs.next()); - assertFalse(rs.getBoolean(2)); + if (rs.next()) { + assertTrue(rs.getBoolean(2)); + if (rs.next()) { + assertFalse(rs.getBoolean(2)); + } else { + fail("must have a result !"); + } + } else { + fail("must have a result !"); + } + } + @Test + public void testBooleanString() throws SQLException { + Statement stmt = sharedConnection.createStatement(); + stmt.execute("insert into booleanvalue values(true)"); + stmt.execute("insert into booleanvalue values(false)"); + stmt.execute("insert into booleanvalue values(4)"); + ResultSet rs = stmt.executeQuery("select * from booleanvalue"); + + if (rs.next()) { + assertTrue(rs.getBoolean(1)); + assertEquals("1", rs.getString(1)); + if (rs.next()) { + assertFalse(rs.getBoolean(1)); + assertEquals("0", rs.getString(1)); + if (rs.next()) { + assertFalse(rs.getBoolean(1)); + assertEquals("4", rs.getString(1)); + } else { + fail("must have a result !"); + } + } else { + fail("must have a result !"); + } + } else { + fail("must have a result !"); + } + } }