mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Fix for bug #10499 (Function creation with GEOMETRY return)
mysql-test/r/gis.result: test result fixed mysql-test/t/gis.test: test case sql/sp_head.cc: m_geom_returns is sent to make_field sql/sp_head.h: m_geom_returns declared sql/sql_yacc.yy: m_geom_returns initializing added
This commit is contained in:
@ -670,3 +670,12 @@ create trigger t1_bu before update on t1 for each row set new.s1 = null;
|
||||
insert into t1 values (null,null);
|
||||
ERROR 23000: Column 's1' cannot be null
|
||||
drop table t1;
|
||||
create function fn3 () returns point return GeomFromText("point(1 1)");
|
||||
show create function fn3;
|
||||
Function sql_mode Create Function
|
||||
fn3 CREATE FUNCTION `test`.`fn3`() RETURNS point
|
||||
return GeomFromText("point(1 1)")
|
||||
select astext(fn3());
|
||||
astext(fn3())
|
||||
POINT(1 1)
|
||||
drop function fn3;
|
||||
|
@ -383,3 +383,12 @@ create trigger t1_bu before update on t1 for each row set new.s1 = null;
|
||||
--error 1048
|
||||
insert into t1 values (null,null);
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug #10499 (function creation with GEOMETRY datatype)
|
||||
#
|
||||
create function fn3 () returns point return GeomFromText("point(1 1)");
|
||||
show create function fn3;
|
||||
select astext(fn3());
|
||||
drop function fn3;
|
||||
|
||||
|
@ -558,7 +558,7 @@ sp_head::make_field(uint max_length, const char *name, TABLE *dummy)
|
||||
field= ::make_field((char *)0,
|
||||
!m_returns_len ? max_length : m_returns_len,
|
||||
(uchar *)"", 0, m_returns_pack, m_returns, m_returns_cs,
|
||||
(enum Field::geometry_type)0, Field::NONE,
|
||||
m_geom_returns, Field::NONE,
|
||||
m_returns_typelib,
|
||||
name ? name : (const char *)m_name.str, dummy);
|
||||
thd->mem_root= tmp_mem_root;
|
||||
|
@ -110,6 +110,7 @@ public:
|
||||
|
||||
int m_type; // TYPE_ENUM_FUNCTION or TYPE_ENUM_PROCEDURE
|
||||
enum enum_field_types m_returns; // For FUNCTIONs only
|
||||
Field::geometry_type m_geom_returns;
|
||||
CHARSET_INFO *m_returns_cs; // For FUNCTIONs only
|
||||
TYPELIB *m_returns_typelib; // For FUNCTIONs only
|
||||
uint m_returns_len; // For FUNCTIONs only
|
||||
|
@ -1437,7 +1437,7 @@ create_function_tail:
|
||||
sp_prepare_create_field(YYTHD, new_field);
|
||||
|
||||
if (prepare_create_field(new_field, &unused1, &unused2, &unused2,
|
||||
0))
|
||||
HA_CAN_GEOMETRY))
|
||||
YYABORT;
|
||||
|
||||
sp->m_returns= new_field->sql_type;
|
||||
@ -1445,6 +1445,7 @@ create_function_tail:
|
||||
sp->m_returns_len= new_field->length;
|
||||
sp->m_returns_pack= new_field->pack_flag;
|
||||
sp->m_returns_typelib= new_field->interval;
|
||||
sp->m_geom_returns= new_field->geom_type;
|
||||
new_field->interval= NULL;
|
||||
|
||||
bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
|
||||
|
Reference in New Issue
Block a user