Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
d8c626eb
Commit
d8c626eb
authored
Sep 22, 2004
by
hf@deer.(none)
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Additional fix for bug #5136 (Geometry object is corrupted when queried)
CREATE TABLE t1 SELECT POINT(1,2); fixed
parent
b40ca996
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
50 additions
and
48 deletions
+50
-48
mysql-test/r/gis.result
mysql-test/r/gis.result
+7
-0
mysql-test/t/gis.test
mysql-test/t/gis.test
+4
-0
sql/item_geofunc.cc
sql/item_geofunc.cc
+7
-18
sql/item_geofunc.h
sql/item_geofunc.h
+32
-30
No files found.
mysql-test/r/gis.result
View file @
d8c626eb
...
...
@@ -485,3 +485,10 @@ MBRContains(GeomFromText('Polygon((0 0, 0 7, 7 7, 7 0, 0 0))'), a);
AsText(a)
POINT(1 1)
drop table t1;
create table t1 select POINT(1,3);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`POINT(1,3)` longblob NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
mysql-test/t/gis.test
View file @
d8c626eb
...
...
@@ -190,3 +190,7 @@ select AsText(a) from t1 where
and
MBRContains
(
GeomFromText
(
'Polygon((0 0, 0 7, 7 7, 7 0, 0 0))'
),
a
);
drop
table
t1
;
create
table
t1
select
POINT
(
1
,
3
);
show
create
table
t1
;
drop
table
t1
;
sql/item_geofunc.cc
View file @
d8c626eb
...
...
@@ -27,6 +27,13 @@
#include "sql_acl.h"
#include <m_ctype.h>
void
Item_geometry_func
::
fix_length_and_dec
()
{
collation
.
set
(
&
my_charset_bin
);
decimals
=
0
;
max_length
=
MAX_BLOB_WIDTH
;
}
String
*
Item_func_geometry_from_text
::
val_str
(
String
*
str
)
{
...
...
@@ -55,12 +62,6 @@ String *Item_func_geometry_from_text::val_str(String *str)
}
void
Item_func_geometry_from_text
::
fix_length_and_dec
()
{
max_length
=
MAX_BLOB_WIDTH
;
}
String
*
Item_func_geometry_from_wkb
::
val_str
(
String
*
str
)
{
DBUG_ASSERT
(
fixed
==
1
);
...
...
@@ -86,12 +87,6 @@ String *Item_func_geometry_from_wkb::val_str(String *str)
}
void
Item_func_geometry_from_wkb
::
fix_length_and_dec
()
{
max_length
=
MAX_BLOB_WIDTH
;
}
String
*
Item_func_as_wkt
::
val_str
(
String
*
str
)
{
DBUG_ASSERT
(
fixed
==
1
);
...
...
@@ -140,12 +135,6 @@ String *Item_func_as_wkb::val_str(String *str)
}
void
Item_func_as_wkb
::
fix_length_and_dec
()
{
max_length
=
MAX_BLOB_WIDTH
;
}
String
*
Item_func_geometry_type
::
val_str
(
String
*
str
)
{
DBUG_ASSERT
(
fixed
==
1
);
...
...
sql/item_geofunc.h
View file @
d8c626eb
...
...
@@ -23,24 +23,33 @@
#pragma interface
/* gcc class implementation */
#endif
class
Item_
func_geometry_from_text
:
public
Item_str_func
class
Item_
geometry_func
:
public
Item_str_func
{
public:
Item_func_geometry_from_text
(
Item
*
a
)
:
Item_str_func
(
a
)
{}
Item_func_geometry_from_text
(
Item
*
a
,
Item
*
srid
)
:
Item_str_func
(
a
,
srid
)
{}
Item_geometry_func
()
:
Item_str_func
()
{}
Item_geometry_func
(
Item
*
a
)
:
Item_str_func
(
a
)
{}
Item_geometry_func
(
Item
*
a
,
Item
*
b
)
:
Item_str_func
(
a
,
b
)
{}
Item_geometry_func
(
Item
*
a
,
Item
*
b
,
Item
*
c
)
:
Item_str_func
(
a
,
b
,
c
)
{}
Item_geometry_func
(
List
<
Item
>
&
list
)
:
Item_str_func
(
list
)
{}
void
fix_length_and_dec
();
};
class
Item_func_geometry_from_text
:
public
Item_geometry_func
{
public:
Item_func_geometry_from_text
(
Item
*
a
)
:
Item_geometry_func
(
a
)
{}
Item_func_geometry_from_text
(
Item
*
a
,
Item
*
srid
)
:
Item_geometry_func
(
a
,
srid
)
{}
const
char
*
func_name
()
const
{
return
"geometryfromtext"
;
}
String
*
val_str
(
String
*
);
void
fix_length_and_dec
();
};
class
Item_func_geometry_from_wkb
:
public
Item_
str
_func
class
Item_func_geometry_from_wkb
:
public
Item_
geometry
_func
{
public:
Item_func_geometry_from_wkb
(
Item
*
a
)
:
Item_
str
_func
(
a
)
{}
Item_func_geometry_from_wkb
(
Item
*
a
,
Item
*
srid
)
:
Item_
str
_func
(
a
,
srid
)
{}
Item_func_geometry_from_wkb
(
Item
*
a
)
:
Item_
geometry
_func
(
a
)
{}
Item_func_geometry_from_wkb
(
Item
*
a
,
Item
*
srid
)
:
Item_
geometry
_func
(
a
,
srid
)
{}
const
char
*
func_name
()
const
{
return
"geometryfromwkb"
;
}
String
*
val_str
(
String
*
);
void
fix_length_and_dec
();
};
class
Item_func_as_wkt
:
public
Item_str_func
...
...
@@ -52,13 +61,12 @@ public:
void
fix_length_and_dec
();
};
class
Item_func_as_wkb
:
public
Item_
str
_func
class
Item_func_as_wkb
:
public
Item_
geometry
_func
{
public:
Item_func_as_wkb
(
Item
*
a
)
:
Item_
str
_func
(
a
)
{}
Item_func_as_wkb
(
Item
*
a
)
:
Item_
geometry
_func
(
a
)
{}
const
char
*
func_name
()
const
{
return
"aswkb"
;
}
String
*
val_str
(
String
*
);
void
fix_length_and_dec
();
};
class
Item_func_geometry_type
:
public
Item_str_func
...
...
@@ -73,40 +81,37 @@ public:
};
};
class
Item_func_centroid
:
public
Item_
str
_func
class
Item_func_centroid
:
public
Item_
geometry
_func
{
public:
Item_func_centroid
(
Item
*
a
)
:
Item_
str
_func
(
a
)
{}
Item_func_centroid
(
Item
*
a
)
:
Item_
geometry
_func
(
a
)
{}
const
char
*
func_name
()
const
{
return
"centroid"
;
}
String
*
val_str
(
String
*
);
void
fix_length_and_dec
(){
max_length
=
MAX_BLOB_WIDTH
;}
};
class
Item_func_envelope
:
public
Item_
str
_func
class
Item_func_envelope
:
public
Item_
geometry
_func
{
public:
Item_func_envelope
(
Item
*
a
)
:
Item_
str
_func
(
a
)
{}
Item_func_envelope
(
Item
*
a
)
:
Item_
geometry
_func
(
a
)
{}
const
char
*
func_name
()
const
{
return
"envelope"
;
}
String
*
val_str
(
String
*
);
void
fix_length_and_dec
(){
max_length
=
MAX_BLOB_WIDTH
;}
};
class
Item_func_point
:
public
Item_
str
_func
class
Item_func_point
:
public
Item_
geometry
_func
{
public:
Item_func_point
(
Item
*
a
,
Item
*
b
)
:
Item_
str
_func
(
a
,
b
)
{}
Item_func_point
(
Item
*
a
,
Item
*
b
,
Item
*
srid
)
:
Item_
str
_func
(
a
,
b
,
srid
)
{}
Item_func_point
(
Item
*
a
,
Item
*
b
)
:
Item_
geometry
_func
(
a
,
b
)
{}
Item_func_point
(
Item
*
a
,
Item
*
b
,
Item
*
srid
)
:
Item_
geometry
_func
(
a
,
b
,
srid
)
{}
const
char
*
func_name
()
const
{
return
"point"
;
}
String
*
val_str
(
String
*
);
void
fix_length_and_dec
(){
max_length
=
MAX_BLOB_WIDTH
;}
};
class
Item_func_spatial_decomp
:
public
Item_
str
_func
class
Item_func_spatial_decomp
:
public
Item_
geometry
_func
{
enum
Functype
decomp_func
;
public:
Item_func_spatial_decomp
(
Item
*
a
,
Item_func
::
Functype
ft
)
:
Item_
str
_func
(
a
)
{
decomp_func
=
ft
;
}
Item_
geometry
_func
(
a
)
{
decomp_func
=
ft
;
}
const
char
*
func_name
()
const
{
switch
(
decomp_func
)
...
...
@@ -123,15 +128,14 @@ public:
}
}
String
*
val_str
(
String
*
);
void
fix_length_and_dec
(){
max_length
=
MAX_BLOB_WIDTH
;}
};
class
Item_func_spatial_decomp_n
:
public
Item_
str
_func
class
Item_func_spatial_decomp_n
:
public
Item_
geometry
_func
{
enum
Functype
decomp_func_n
;
public:
Item_func_spatial_decomp_n
(
Item
*
a
,
Item
*
b
,
Item_func
::
Functype
ft
)
:
Item_
str
_func
(
a
,
b
)
{
decomp_func_n
=
ft
;
}
Item_
geometry
_func
(
a
,
b
)
{
decomp_func_n
=
ft
;
}
const
char
*
func_name
()
const
{
switch
(
decomp_func_n
)
...
...
@@ -148,10 +152,9 @@ public:
}
}
String
*
val_str
(
String
*
);
void
fix_length_and_dec
(){
max_length
=
MAX_BLOB_WIDTH
;}
};
class
Item_func_spatial_collection
:
public
Item_
str
_func
class
Item_func_spatial_collection
:
public
Item_
geometry
_func
{
String
tmp_value
;
enum
Geometry
::
wkbType
coll_type
;
...
...
@@ -159,13 +162,12 @@ class Item_func_spatial_collection: public Item_str_func
public:
Item_func_spatial_collection
(
List
<
Item
>
&
list
,
enum
Geometry
::
wkbType
ct
,
enum
Geometry
::
wkbType
it
)
:
Item_
str
_func
(
list
)
Item_
geometry
_func
(
list
)
{
coll_type
=
ct
;
item_type
=
it
;
}
String
*
val_str
(
String
*
);
void
fix_length_and_dec
(){
max_length
=
MAX_BLOB_WIDTH
;}
const
char
*
func_name
()
const
{
return
"multipoint"
;
}
};
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment