summaryrefslogtreecommitdiff
path: root/sql/field.cc
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2020-03-20 22:06:55 +0200
committerMarko Mäkelä <marko.makela@mariadb.com>2020-03-20 22:06:55 +0200
commitbd3c8f47cd16b4795dd073bbd30decd804c76969 (patch)
tree684f91877eb6835e6335d614fafce9841eaf30af /sql/field.cc
parentd529389358fb0c7f3e642d34d7fd84df307b9d29 (diff)
parentfd5c36bed5de65e85900c9fc9f0ed2092c4b38c5 (diff)
downloadmariadb-git-bd3c8f47cd16b4795dd073bbd30decd804c76969.tar.gz
Merge 10.3 into 10.4
Diffstat (limited to 'sql/field.cc')
-rw-r--r--sql/field.cc14
1 files changed, 11 insertions, 3 deletions
diff --git a/sql/field.cc b/sql/field.cc
index 0eb53f40a54..ace70c178bc 100644
--- a/sql/field.cc
+++ b/sql/field.cc
@@ -1,6 +1,6 @@
/*
Copyright (c) 2000, 2017, Oracle and/or its affiliates.
- Copyright (c) 2008, 2019, MariaDB
+ Copyright (c) 2008, 2020, MariaDB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -9084,18 +9084,26 @@ int Field_geom::store(const char *from, size_t length, CHARSET_INFO *cs)
{
const char *db= table->s->db.str;
const char *tab_name= table->s->table_name.str;
+ Geometry_buffer buffer;
+ Geometry *geom= NULL;
+ String wkt;
+ const char *dummy;
if (!db)
db= "";
if (!tab_name)
tab_name= "";
+ wkt.set_charset(&my_charset_latin1);
+ if (!(geom= Geometry::construct(&buffer, from, uint32(length))) ||
+ geom->as_wkt(&wkt, &dummy))
+ goto err;
my_error(ER_TRUNCATED_WRONG_VALUE_FOR_FIELD, MYF(0),
Geometry::ci_collection[geom_type]->m_name.str,
- Geometry::ci_collection[wkb_type]->m_name.str,
- db, tab_name, field_name.str,
+ wkt.c_ptr(), db, tab_name, field_name.str,
(ulong) table->in_use->get_stmt_da()->
current_row_for_warning());
+
goto err_exit;
}