summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Barkov <bar@mariadb.com>2019-08-19 20:57:59 +0400
committerAlexander Barkov <bar@mariadb.com>2019-08-19 20:57:59 +0400
commit1d58e62d5bb6069722118568311f58848c57c1d8 (patch)
tree48fc92373a201908101882ef5519e7275c28deb0
parentda53fb6d7de906fd8bd73d5f244bac4d77b687aa (diff)
downloadmariadb-git-1d58e62d5bb6069722118568311f58848c57c1d8.tar.gz
MDEV-20384 Assertion `field.is_sane()' failed in Protocol_text::store_field_metadata
-rw-r--r--mysql-test/main/type_year.result26
-rw-r--r--mysql-test/main/type_year.test24
-rw-r--r--sql/sql_type.h1
3 files changed, 51 insertions, 0 deletions
diff --git a/mysql-test/main/type_year.result b/mysql-test/main/type_year.result
index 71285418588..1792cd5b7d4 100644
--- a/mysql-test/main/type_year.result
+++ b/mysql-test/main/type_year.result
@@ -587,3 +587,29 @@ DROP TABLE t1;
#
# End of 10.4 tests
#
+#
+# Start of 10.5 tests
+#
+#
+# MDEV-20384 Assertion `field.is_sane()' failed in Protocol_text::store_field_metadata
+#
+CREATE TABLE t1 (a YEAR);
+INSERT INTO t1 VALUES (2000),(2001);
+SELECT MAX( NULLIF( a, 1970 ) ) AS f FROM t1;
+f
+2001
+SELECT NULLIF(a, 1970) AS f FROM t1 ORDER BY a;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def f 13 4 4 Y 32928 0 63
+f
+2000
+2001
+SELECT MAX(NULLIF(a, 1970)) AS f FROM t1;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def f 8 4 4 Y 32928 0 63
+f
+2001
+DROP TABLE t1;
+#
+# End of 10.5 tests
+#
diff --git a/mysql-test/main/type_year.test b/mysql-test/main/type_year.test
index 3c578b3ab59..6f16610c06f 100644
--- a/mysql-test/main/type_year.test
+++ b/mysql-test/main/type_year.test
@@ -329,3 +329,27 @@ DROP TABLE t1;
--echo #
--echo # End of 10.4 tests
--echo #
+
+--echo #
+--echo # Start of 10.5 tests
+--echo #
+
+--echo #
+--echo # MDEV-20384 Assertion `field.is_sane()' failed in Protocol_text::store_field_metadata
+--echo #
+
+CREATE TABLE t1 (a YEAR);
+INSERT INTO t1 VALUES (2000),(2001);
+SELECT MAX( NULLIF( a, 1970 ) ) AS f FROM t1;
+--disable_ps_protocol
+--enable_metadata
+SELECT NULLIF(a, 1970) AS f FROM t1 ORDER BY a;
+SELECT MAX(NULLIF(a, 1970)) AS f FROM t1;
+--disable_metadata
+--enable_ps_protocol
+DROP TABLE t1;
+
+
+--echo #
+--echo # End of 10.5 tests
+--echo #
diff --git a/sql/sql_type.h b/sql/sql_type.h
index 07cc9db4760..753190d295b 100644
--- a/sql/sql_type.h
+++ b/sql/sql_type.h
@@ -5335,6 +5335,7 @@ public:
virtual ~Type_handler_year() {}
const Name name() const override { return m_name_year; }
enum_field_types field_type() const override { return MYSQL_TYPE_YEAR; }
+ uint flags() const override { return UNSIGNED_FLAG; }
protocol_send_type_t protocol_send_type() const override
{
return PROTOCOL_SEND_SHORT;