From 13045c22524afd757de1f1d56339211801aec99e Mon Sep 17 00:00:00 2001 From: Alexander Soklakov Date: Mon, 25 Feb 2019 14:47:40 +0400 Subject: [PATCH] WL#10839, Adjust c/J tests to the new "ON" default for explicit_defaults_for_timestamp. --- CHANGES | 2 ++ .../regression/MetaDataRegressionTest.java | 20 ++----------------- .../testsuite/x/devapi/CollectionTest.java | 9 +++++++-- 3 files changed, 11 insertions(+), 20 deletions(-) diff --git a/CHANGES b/CHANGES index 790651abd..2e5c5ee70 100644 --- a/CHANGES +++ b/CHANGES @@ -3,6 +3,8 @@ Version 8.0.16 + - WL#10839, Adjust c/J tests to the new "ON" default for explicit_defaults_for_timestamp. + - Fix for Bug#29329326, PLEASE AVOID SHOW PROCESSLIST IF POSSIBLE. - WL#12460, DevAPI: Support new session reset functionality. diff --git a/src/test/java/testsuite/regression/MetaDataRegressionTest.java b/src/test/java/testsuite/regression/MetaDataRegressionTest.java index d29648b4d..12b3e988d 100644 --- a/src/test/java/testsuite/regression/MetaDataRegressionTest.java +++ b/src/test/java/testsuite/regression/MetaDataRegressionTest.java @@ -2882,14 +2882,6 @@ public void testBug63800() throws Exception { } private void testTimestamp(Connection con, Statement st, String dbname) throws SQLException { - boolean explicitDefaultsForTimestamp = false; - if (versionMeetsMinimum(8, 0, 2)) { - String v = getMysqlVariable("explicit_defaults_for_timestamp"); - if ("ON".equals(v)) { - explicitDefaultsForTimestamp = true; - } - } - st.execute("DROP TABLE IF EXISTS testBug63800"); st.execute("CREATE TABLE testBug63800(f1 TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)"); DatabaseMetaData dmd = con.getMetaData(); @@ -2913,7 +2905,7 @@ private void testTimestamp(Connection con, Statement st, String dbname) throws S st.execute("CREATE TABLE testBug63800(f1 TIMESTAMP)"); dmd = con.getMetaData(); this.rs = dmd.getVersionColumns(dbname, dbname, "testBug63800"); - if (explicitDefaultsForTimestamp) { + if ("ON".equals(getMysqlVariable("explicit_defaults_for_timestamp"))) { assertFalse("0 column must be found", this.rs.next()); } else { assertTrue("1 column must be found", this.rs.next()); @@ -3047,14 +3039,6 @@ private void testDatetime(Connection con, Statement st, String dbname) throws SQ } assertEquals("2 column must be found", 2, cnt); - boolean explicitDefaultsForTimestamp = false; - if (versionMeetsMinimum(8, 0, 2)) { - String v = getMysqlVariable("explicit_defaults_for_timestamp"); - if ("ON".equals(v)) { - explicitDefaultsForTimestamp = true; - } - } - st.execute("DROP TABLE IF EXISTS testBug63800"); st.execute("CREATE TABLE testBug63800(f1 TIMESTAMP, f2 DATETIME ON UPDATE CURRENT_TIMESTAMP, f3 TIMESTAMP NULL ON UPDATE CURRENT_TIMESTAMP)"); dmd = con.getMetaData(); @@ -3063,7 +3047,7 @@ private void testDatetime(Connection con, Statement st, String dbname) throws SQ while (this.rs.next()) { cnt++; } - if (explicitDefaultsForTimestamp) { + if ("ON".equals(getMysqlVariable("explicit_defaults_for_timestamp"))) { assertEquals("2 column must be found", 2, cnt); } else { assertEquals("3 column must be found", 3, cnt); diff --git a/src/test/java/testsuite/x/devapi/CollectionTest.java b/src/test/java/testsuite/x/devapi/CollectionTest.java index 2ae06bf8f..663fe76df 100644 --- a/src/test/java/testsuite/x/devapi/CollectionTest.java +++ b/src/test/java/testsuite/x/devapi/CollectionTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved. * * This program is free software; you can redistribute it and/or modify it under * the terms of the GNU General Public License, version 2.0, as published by the @@ -47,6 +47,7 @@ import com.mysql.cj.xdevapi.JsonNumber; import com.mysql.cj.xdevapi.JsonString; import com.mysql.cj.xdevapi.Row; +import com.mysql.cj.xdevapi.RowResult; import com.mysql.cj.xdevapi.SqlResult; import com.mysql.cj.xdevapi.XDevAPIError; @@ -202,8 +203,12 @@ public void createIndex() throws Exception { this.collection.dropIndex("myIndex"); // FR1_8 Create an index using a timestamp field. + RowResult res = this.session.sql("select @@explicit_defaults_for_timestamp").execute(); + Row r = res.next(); + boolean explicitDefaultsForTimestamp = r.getBoolean(0); + this.collection.createIndex("myIndex", "{\"fields\": [{\"field\": \"$.myField\", \"type\": \"TIMESTAMP\"}]}"); - validateIndex("myIndex", this.collectionName, "ds", false, false, false, 1, null); + validateIndex("myIndex", this.collectionName, "ds", false, explicitDefaultsForTimestamp ? false : true, false, 1, null); this.collection.dropIndex("myIndex"); // FR1_9 Create an index using a time field.