1#ifndef ITEM_GEOFUNC_INCLUDED
2#define ITEM_GEOFUNC_INCLUDED
39#include "mysqld_error.h"
68class Spatial_reference_system;
326 const char *
func_name()
const override {
return "st_astext"; }
336 const char *
func_name()
const override {
return "st_aswkb"; }
352 const char *
func_name()
const override {
return "st_geometrytype"; }
402 const char *
func_name()
const override {
return "st_geomfromgeojson"; }
409 bool is_parent_featurecollection,
Geometry **geometry);
412 bool is_parent_featurecollection,
420 const char *member_name);
517 Item *maxdecimaldigits)
530 const char *
func_name()
const override {
return "st_asgeojson"; }
602 const char *
func_name()
const override {
return "st_geohash"; }
604 void encode_bit(
double *upper_value,
double *lower_value,
double target_value,
605 char *char_value,
int bit_number);
651 bool start_on_even_bit_arg)
664 double *result_longitude);
666 double lower_limit,
double upper_limit);
680 const char *
func_name()
const override {
return "ST_LATFROMGEOHASH"; }
693 const char *
func_name()
const override {
return "ST_LONGFROMGEOHASH"; }
699 template <
typename Coordsys>
704 const char *
func_name()
const override {
return "st_centroid"; }
716 template <
typename Coordsys>
721 const char *
func_name()
const override {
return "st_convexhull"; }
733 const char *
func_name()
const override {
return "st_envelope"; }
746 const char *
func_name()
const override {
return "st_makeenvelope"; }
760 const char *
func_name()
const override {
return "st_validate"; }
781 const char *
func_name()
const override {
return "st_simplify"; }
788 const char *
func_name()
const override {
return "point"; }
826 const char *
func_name()
const override {
return "st_pointfromgeohash"; }
850 return "st_startpoint";
852 return "st_endpoint";
854 return "st_exteriorring";
857 return "spatial_decomp_unknown";
882 return "st_geometryn";
884 return "st_interiorringn";
887 return "spatial_decomp_n_unknown";
910 for (
unsigned int i = 0; i <
arg_count; ++i) {
915 my_error(ER_ILLEGAL_VALUE_FOR_TYPE,
MYF(0),
"non geometric",
str.ptr());
1011 bool *
result,
bool *
null) = 0;
1020 const char *
func_name()
const override {
return "st_contains"; }
1031 const char *
func_name()
const override {
return "st_crosses"; }
1042 const char *
func_name()
const override {
return "st_disjoint"; }
1053 const char *
func_name()
const override {
return "st_equals"; }
1064 const char *
func_name()
const override {
return "st_intersects"; }
1075 const char *
func_name()
const override {
return "mbrcontains"; }
1086 const char *
func_name()
const override {
return "mbrcoveredby"; }
1097 const char *
func_name()
const override {
return "mbrcovers"; }
1108 const char *
func_name()
const override {
return "mbrdisjoint"; }
1119 const char *
func_name()
const override {
return "mbrequals"; }
1130 const char *
func_name()
const override {
return "mbrintersects"; }
1141 const char *
func_name()
const override {
return "mbroverlaps"; }
1152 const char *
func_name()
const override {
return "mbrtouches"; }
1163 const char *
func_name()
const override {
return "mbrwithin"; }
1174 const char *
func_name()
const override {
return "st_overlaps"; }
1185 const char *
func_name()
const override {
return "st_touches"; }
1196 const char *
func_name()
const override {
return "st_within"; }
1221 const char *
func_name()
const override {
return "st_difference"; }
1229 const char *
func_name()
const override {
return "st_intersection"; }
1237 const char *
func_name()
const override {
return "st_symdifference"; }
1245 const char *
func_name()
const override {
return "st_union"; }
1269 const char *
func_name()
const override {
return "st_buffer_strategy"; }
1279 const char *
func_name()
const override {
return "st_isempty"; }
1291 const char *
func_name()
const override {
return "st_issimple"; }
1303 const char *
func_name()
const override {
return "st_isclosed"; }
1316 const char *
func_name()
const override {
return "st_isvalid"; }
1329 const char *
func_name()
const override {
return "st_dimension"; }
1345 bool geographic_only)
1407 const char *
func_name()
const override {
return "st_latitude"; }
1422 const char *
func_name()
const override {
return "st_latitude"; }
1437 const char *
func_name()
const override {
return "st_longitude"; }
1452 const char *
func_name()
const override {
return "st_longitude"; }
1514 const char *
func_name()
const override {
return "st_swapxy"; }
1524 const char *
func_name()
const override {
return "st_numgeometries"; }
1539 const char *
func_name()
const override {
return "st_numinteriorrings"; }
1554 const char *
func_name()
const override {
return "st_numpoints"; }
1567 const char *
func_name()
const override {
return "st_area"; }
1585 const char *
func_name()
const override {
return "st_buffer"; }
1602 const char *
func_name()
const override {
return "st_length"; }
1619 const char *
func_name()
const override {
return "st_srid"; }
1633 const char *
func_name()
const override {
return "st_srid"; }
1645 template <
typename Coordsys,
typename BG_geometry>
1650 template <
typename Coordsys>
1669 const char *
func_name()
const override {
return "st_distance"; }
1677 const char *
func_name()
const override {
return "st_frechetdistance"; }
1691 const char *
func_name()
const override {
return "st_hausdorffdistance"; }
1705 const char *
func_name()
const override {
return "st_distance_sphere"; }
1736 const char *
func_name()
const override {
return "st_lineinterpolatepoint"; }
1747 const char *
func_name()
const override {
return "st_lineinterpolatepoints"; }
1758 const char *
func_name()
const override {
return "st_pointatdistance"; }
1772 const char *
func_name()
const override {
return "st_transform"; }
1802 std::unique_ptr<gis::Geometry> *source_geometry,
1803 std::unique_ptr<gis::Geometry> *target_geometry)
const = 0;
1813 const char *
func_name()
const override {
return "cast_as_point"; }
1816 std::unique_ptr<gis::Geometry> *source_geometry,
1817 std::unique_ptr<gis::Geometry> *target_geometry)
const override;
1827 const char *
func_name()
const override {
return "cast_as_linestring"; }
1830 std::unique_ptr<gis::Geometry> *source_geometry,
1831 std::unique_ptr<gis::Geometry> *target_geometry)
const override;
1841 const char *
func_name()
const override {
return "cast_as_polygon"; }
1844 std::unique_ptr<gis::Geometry> *source_geometry,
1845 std::unique_ptr<gis::Geometry> *target_geometry)
const override;
1855 const char *
func_name()
const override {
return "cast_as_multipoint"; }
1858 std::unique_ptr<gis::Geometry> *source_geometry,
1859 std::unique_ptr<gis::Geometry> *target_geometry)
const override;
1869 const char *
func_name()
const override {
return "cast_as_multilinestring"; }
1872 std::unique_ptr<gis::Geometry> *source_geometry,
1873 std::unique_ptr<gis::Geometry> *target_geometry)
const override;
1883 const char *
func_name()
const override {
return "cast_as_multipolygon"; }
1886 std::unique_ptr<gis::Geometry> *source_geometry,
1887 std::unique_ptr<gis::Geometry> *target_geometry)
const override;
1899 return "cast_as_geometrycollection";
1903 std::unique_ptr<gis::Geometry> *source_geometry,
1904 std::unique_ptr<gis::Geometry> *target_geometry)
const override;
This file implements a struct that is used to hold information that decide how to compute the buffer ...
A utility class to flatten any hierarchy of geometry collection into one with no nested geometry coll...
Definition: item_geofunc.h:141
Geometry_list & get_geometries()
Definition: item_geofunc.h:168
void set_comp_no_overlapped(bool b)
Definition: item_geofunc.h:156
size_t m_num_isolated
Definition: item_geofunc.h:144
std::vector< Geometry * > Geometry_list
Definition: item_geofunc.h:150
gis::srid_t get_srid() const
Definition: item_geofunc.h:158
const Geometry_list & get_geometries() const
Definition: item_geofunc.h:166
gis::srid_t m_srid
Definition: item_geofunc.h:143
Geometry * store(const Geometry *geo)
Store a geometry of GEOMETRY format into this collection.
Definition: item_geofunc.cc:4605
Inplace_vector< String > m_geosdata
Definition: item_geofunc.h:147
bool fill(const Geometry *geo, bool break_multi_geom=false)
Definition: item_geofunc.h:162
bool store_geometry(const Geometry *geo, bool break_multi_geom)
Store a Geometry object into this collection.
Definition: item_geofunc.cc:4547
size_t num_isolated() const
Definition: item_geofunc.h:172
bool comp_no_overlapped
Definition: item_geofunc.h:142
BG_geometry_collection()
Definition: item_geofunc.cc:4530
bool is_comp_no_overlapped() const
Definition: item_geofunc.h:154
std::vector< Geometry * > m_geos
Definition: item_geofunc.h:145
Inplace_vector< Geometry_buffer > m_geobufs
Definition: item_geofunc.h:146
bool all_isolated() const
Definition: item_geofunc.h:170
void set_srid(gis::srid_t srid)
Definition: item_geofunc.h:160
We have to hold result buffers in functions that return a GEOMETRY string, because such a function's ...
Definition: item_geofunc.h:82
~BG_result_buf_mgr()
Definition: item_geofunc.h:88
void add_buffer(void *buf)
Definition: item_geofunc.h:93
void * bg_result_buf
Definition: item_geofunc.h:125
void set_result_buffer(void *buf)
Definition: item_geofunc.h:115
BG_result_buf_mgr()
Definition: item_geofunc.h:86
void free_intermediate_result_buffers()
Definition: item_geofunc.h:101
void forget_buffer(void *buf)
Definition: item_geofunc.h:95
Prealloced_buffers bg_results
Definition: item_geofunc.h:131
void free_result_buffer()
Definition: item_geofunc.h:110
Prealloced_array< void *, 64 > Prealloced_buffers
Definition: item_geofunc.h:83
static constexpr size_t MAX_LONG_BLOB_WIDTH
Definition: field.h:737
geometry_type
Definition: field.h:718
@ GEOM_POINT
Definition: field.h:720
Definition: spatial.h:213
wkbType
Definition: spatial.h:290
Definition: spatial.h:2099
Definition: spatial.h:1152
Definition: spatial.h:2187
Utility container class to store elements stably and scalably.
Definition: inplace_vector.h:60
Base class for functions that usually take two arguments, which are possibly strings,...
Definition: item_cmpfunc.h:624
Definition: item_cmpfunc.h:295
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_cmpfunc.h:329
This class handles the following function:
Definition: item_geofunc.h:491
bool val_json(Json_wrapper *wr) override
Create a GeoJSON object, according to GeoJSON specification revision 1.0.
Definition: item_geofunc.cc:2360
Item_func_as_geojson(THD *thd, const POS &pos, Item *geometry, Item *maxdecimaldigits)
Definition: item_geofunc.h:516
bool m_add_short_crs_urn
If true, the output GeoJSON has a CRS object in the short form (e.g "EPSG:4326").
Definition: item_geofunc.h:501
bool parse_maxdecimaldigits_argument()
Parse the value in maxdecimaldigits argument.
Definition: item_geofunc.cc:2450
Item_func_as_geojson(THD *thd, const POS &pos, Item *geometry, Item *maxdecimaldigits, Item *options)
Definition: item_geofunc.h:522
int m_max_decimal_digits
Maximum number of decimal digits in printed coordinates.
Definition: item_geofunc.h:494
bool m_add_bounding_box
If true, the output GeoJSON has a bounding box for each GEOMETRY.
Definition: item_geofunc.h:496
const char * func_name() const override
Definition: item_geofunc.h:530
Item_func_as_geojson(THD *thd, const POS &pos, Item *geometry)
Definition: item_geofunc.h:511
bool parse_options_argument()
Parse the value in options argument.
Definition: item_geofunc.cc:2413
uint32 m_geometry_srid
The SRID found in the input GEOMETRY.
Definition: item_geofunc.h:508
bool fix_fields(THD *thd, Item **ref) override
Perform type checking on all arguments.
Definition: item_geofunc.cc:2483
bool m_add_long_crs_urn
If true, the output GeoJSON has a CRS object in the long form (e.g "urn:ogc:def:crs:EPSG::4326").
Definition: item_geofunc.h:506
Definition: item_geofunc.h:331
Item_func_as_wkb(const POS &pos, Item *a)
Definition: item_geofunc.h:333
const char * func_name() const override
Definition: item_geofunc.h:336
String * val_str(String *) override
Definition: item_geofunc.cc:3253
Item_func_as_wkb(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:334
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:338
Definition: item_geofunc.h:321
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.cc:3244
String * val_str_ascii(String *) override
Definition: item_geofunc.cc:3134
Item_func_as_wkt(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:324
const char * func_name() const override
Definition: item_geofunc.h:326
Item_func_as_wkt(const POS &pos, Item *a)
Definition: item_geofunc.h:323
Definition: item_geofunc.h:1248
char tmp_buffer[16]
Definition: item_geofunc.h:1266
enum_buffer_strategies
Definition: item_geofunc.h:1250
@ point_circle
Definition: item_geofunc.h:1256
@ point_square
Definition: item_geofunc.h:1257
@ join_miter
Definition: item_geofunc.h:1255
@ max_strategy
Definition: item_geofunc.h:1258
@ end_flat
Definition: item_geofunc.h:1253
@ invalid_strategy
Definition: item_geofunc.h:1251
@ end_round
Definition: item_geofunc.h:1252
@ join_round
Definition: item_geofunc.h:1254
friend class Item_func_buffer
Definition: item_geofunc.h:1264
String tmp_value
Definition: item_geofunc.h:1265
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc_buffer.cc:124
const char * func_name() const override
Definition: item_geofunc.h:1269
String * val_str(String *) override
Definition: item_geofunc_buffer.cc:132
Item_func_buffer_strategy(const POS &pos, PT_item_list *ilist)
Definition: item_geofunc_buffer.cc:116
Definition: item_geofunc.h:696
const char * func_name() const override
Definition: item_geofunc.h:704
bool bg_centroid(const Geometry *geom, String *ptwkb)
Definition: item_geofunc.cc:3824
String * val_str(String *) override
Definition: item_geofunc.cc:3607
Item_func_centroid(const POS &pos, Item *a)
Definition: item_geofunc.h:703
BG_result_buf_mgr bg_resbuf_mgr
Definition: item_geofunc.h:697
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:707
Field::geometry_type get_geometry_type() const override
Definition: item_geofunc.cc:3603
Definition: item_geofunc.h:713
BG_result_buf_mgr bg_resbuf_mgr
Definition: item_geofunc.h:714
bool bg_convex_hull(const Geometry *geom, String *wkb)
Definition: item_geofunc.cc:3930
const char * func_name() const override
Definition: item_geofunc.h:721
String * val_str(String *) override
Definition: item_geofunc.cc:3894
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:724
Field::geometry_type get_geometry_type() const override
Definition: item_geofunc.cc:3890
Item_func_convex_hull(const POS &pos, Item *a)
Definition: item_geofunc.h:720
The abstract superclass for all geometry coordinate mutator functions (ST_X, ST_Y,...
Definition: item_geofunc.h:1342
virtual int coordinate_number(const dd::Spatial_reference_system *srs) const =0
Returns the coordinate number accessed by this item.
Item_func_coordinate_mutator(const POS &pos, Item *a, Item *b, bool geographic_only)
Definition: item_geofunc.h:1344
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1358
const char * func_name() const override=0
bool m_geographic_only
Whether this item will accept only geographic geometries/SRSs.
Definition: item_geofunc.h:1366
String * val_str(String *) override
Definition: item_geofunc.cc:4898
The abstract superclass for all geometry coordinate oberserver functions (ST_X, ST_Y,...
Definition: item_geofunc.h:1373
double val_real() override
Definition: item_geofunc.cc:4970
bool m_geographic_only
Whether this item will accept only geographic geometries/SRSs.
Definition: item_geofunc.h:1395
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1388
Item_func_coordinate_observer(const POS &pos, Item *a, bool geographic_only)
Definition: item_geofunc.h:1375
virtual int coordinate_number(const dd::Spatial_reference_system *srs) const =0
Returns the coordinate number accessed by this item.
const char * func_name() const override=0
Definition: item_geofunc.h:1323
String value
Definition: item_geofunc.h:1324
const char * func_name() const override
Definition: item_geofunc.h:1329
longlong val_int() override
Definition: item_geofunc.cc:4822
Item_func_dimension(const POS &pos, Item *a)
Definition: item_geofunc.h:1327
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1330
Definition: item_geofunc.h:1642
double val_real() override
Definition: item_geofunc.cc:5645
double geometry_collection_distance(const Geometry *g1, const Geometry *g2)
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1662
const char * func_name() const override
Definition: item_geofunc.h:1669
double bg_distance(const Geometry *g1, const Geometry *g2)
double distance_dispatch_second_geometry(const BG_geometry &bg1, const Geometry *g2)
Item_func_distance(const POS &pos, PT_item_list *ilist)
Definition: item_geofunc.h:1653
Definition: item_geofunc.h:730
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:736
const char * func_name() const override
Definition: item_geofunc.h:733
Field::geometry_type get_geometry_type() const override
Definition: item_geofunc.cc:3566
String * val_str(String *) override
Definition: item_geofunc.cc:3570
Item_func_envelope(const POS &pos, Item *a)
Definition: item_geofunc.h:732
This class handles two forms of the same function:
Definition: item_geofunc.h:544
char char_to_base32(char char_input)
Converts a char value to it's base32 representation, where 0 = a, 1 = b, ... , 30 = y,...
Definition: item_geofunc.cc:2861
uint geohash_max_output_length
The maximum output length of the geohash, supplied by the user.
Definition: item_geofunc.h:551
Item_func_geohash(const POS &pos, Item *longitude, Item *latitude, Item *length)
Definition: item_geofunc.h:591
String * val_str_ascii(String *) override
Encodes a pair of longitude and latitude values into a geohash string.
Definition: item_geofunc.cc:2668
double longitude
The longitude argument supplied by the user (directly or by a POINT).
Definition: item_geofunc.h:549
bool fill_and_check_fields()
Populate member variables with values from arguments.
Definition: item_geofunc.cc:2576
const double min_latitude
The minimum input latitude.
Definition: item_geofunc.h:563
bool fix_fields(THD *thd, Item **ref) override
Here we check for valid types.
Definition: item_geofunc.cc:2735
void encode_bit(double *upper_value, double *lower_value, double target_value, char *char_value, int bit_number)
Sets the bit number in char_value, determined by following formula:
Definition: item_geofunc.cc:2836
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.cc:2725
bool check_valid_latlong_type(Item *ref)
Checks if supplied item is a valid latitude or longitude, based on which type it is.
Definition: item_geofunc.cc:2526
const uint upper_limit_output_length
The absolute upper limit of geohash output length.
Definition: item_geofunc.h:581
const double min_longitude
The minimum input longitude.
Definition: item_geofunc.h:575
double latitude
The latitude argument supplied by the user (directly or by a POINT).
Definition: item_geofunc.h:547
const double max_latitude
The maximum input latitude.
Definition: item_geofunc.h:557
const double max_longitude
The maximum input longitude.
Definition: item_geofunc.h:569
const char * func_name() const override
Definition: item_geofunc.h:602
Item_func_geohash(const POS &pos, Item *point, Item *length)
Definition: item_geofunc.h:584
Definition: item_geofunc.h:199
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:252
Item_func_geometry_from_text(const POS &pos, Item *a, Item *srid, Item *option, Functype functype)
Definition: item_geofunc.h:245
Functype
Definition: item_geofunc.h:201
@ MULTILINESTRINGFROMTEXT
@ GEOMETRYCOLLECTIONFROMTEXT
Functype m_functype
Definition: item_geofunc.h:222
Item_func_geometry_from_text(const POS &pos, Item *a, Functype functype)
Definition: item_geofunc.h:240
Geometry::wkbType allowed_wkb_type() const
Get the type of geometry that this Item can return.
Definition: item_geofunc.cc:363
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: item_geofunc.cc:314
String * val_str(String *) override
Parses a WKT string to produce a geometry encoded with an SRID prepending its WKB bytes,...
Definition: item_geofunc.cc:421
const char * func_name() const override
Definition: item_geofunc.cc:323
Item_geometry_func super
Definition: item_geofunc.h:221
bool is_allowed_wkb_type(Geometry::wkbType type) const
Check if a geometry type is a valid return type for this Item.
Definition: item_geofunc.cc:395
Item_func_geometry_from_text(const POS &pos, Item *a, Item *srid, Functype functype)
Definition: item_geofunc.h:242
Definition: item_geofunc.h:260
Item_geometry_func super
Definition: item_geofunc.h:281
Functype
Definition: item_geofunc.h:262
@ GEOMETRYCOLLECTIONFROMWKB
Item_func_geometry_from_wkb(const POS &pos, Item *a, Item *srid, Item *option, Functype functype)
Definition: item_geofunc.h:312
Item_func_geometry_from_wkb(const POS &pos, Item *a, Item *srid, Functype functype)
Definition: item_geofunc.h:309
String tmp_value
Definition: item_geofunc.h:282
Functype m_functype
Definition: item_geofunc.h:283
String * val_str(String *) override
Parses a WKB string to produce a geometry encoded with an SRID prepending its WKB bytes,...
Definition: item_geofunc.cc:678
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: item_geofunc.cc:574
Item_func_geometry_from_wkb(const POS &pos, Item *a, Functype functype)
Definition: item_geofunc.h:307
const char * func_name() const override
Definition: item_geofunc.cc:583
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:299
Geometry::wkbType allowed_wkb_type() const
Get the type of geometry that this Item can return.
Definition: item_geofunc.cc:621
bool is_allowed_wkb_type(Geometry::wkbType type) const
Check if a geometry type is a valid return type for this Item.
Definition: item_geofunc.cc:652
Definition: item_geofunc.h:347
Item_func_geometry_type(const POS &pos, Item *a)
Definition: item_geofunc.h:349
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:353
const char * func_name() const override
Definition: item_geofunc.h:352
String * val_str_ascii(String *) override
Definition: item_geofunc.cc:3360
This handles one function:
Definition: item_geofunc.h:375
bool m_toplevel
True if we're currently parsing the top-level object.
Definition: item_geofunc.h:467
static const char * TYPE_MEMBER
Definition of various string constants used for writing and reading GeoJSON data.
Definition: item_geofunc.h:422
static const char * FEATURECOLLECTION_TYPE
Definition: item_geofunc.h:442
bool parse_object(const Json_object *object, bool *rollback, String *buffer, bool is_parent_featurecollection, Geometry **geometry)
Takes a JSON object as input, and parses the data to a Geometry object.
Definition: item_geofunc.cc:1064
static const char * SHORT_EPSG_PREFIX
Definition: item_geofunc.h:431
static const char * CRS_NAME_MEMBER
Definition: item_geofunc.h:429
bool is_member_valid(const Json_dom *member, const char *member_name, enum_json_type expected_type, bool allow_null, bool *was_null)
Checks if a JSON member is valid based on input criteria.
Definition: item_geofunc.cc:1780
static const char * LINESTRING_TYPE
Definition: item_geofunc.h:436
bool parse_object_array(const Json_array *points, Geometry::wkbType type, bool *rollback, String *buffer, bool is_parent_featurecollection, Geometry **geometry)
Takes a JSON array as input, does a recursive parsing and returns a Geometry object.
Definition: item_geofunc.cc:1351
longlong m_srid_found_in_document
The SRID value of the document CRS, if one is found.
Definition: item_geofunc.h:457
double m_min_latitude
The minimum allowed latitude value (inclusive).
Definition: item_geofunc.h:463
static const char * MULTIPOLYGON_TYPE
Definition: item_geofunc.h:439
bool parse_crs_object(const Json_object *crs_object)
Takes a GeoJSON CRS object as input and parses it into a SRID.
Definition: item_geofunc.cc:1660
const Json_dom * my_find_member_ncase(const Json_object *object, const char *member_name)
Case insensitive lookup of a member in a JSON object.
Definition: item_geofunc.cc:1035
bool m_user_provided_srid
Is set to true if user provided a SRID as an argument.
Definition: item_geofunc.h:450
static const char * GEOMETRIES_MEMBER
Definition: item_geofunc.h:427
double m_min_longitude
The minimum allowed longitude value (non-inclusive).
Definition: item_geofunc.h:459
static const char * LONG_EPSG_PREFIX
Definition: item_geofunc.h:432
enum_handle_coordinate_dimension m_handle_coordinate_dimension
How higher coordinate dimensions than currently supported should be handled.
Definition: item_geofunc.h:448
static const char * COORDINATES_MEMBER
Definition: item_geofunc.h:428
static const char * FEATURE_TYPE
Definition: item_geofunc.h:441
String * val_str(String *) override
<geometry> = ST_GEOMFROMGEOJSON(<string>[, <options>[, <srid>]])
Definition: item_geofunc.cc:863
gis::srid_t m_user_srid
The SRID user provided as an argument.
Definition: item_geofunc.h:452
bool get_linestring(const Json_array *data_array, Gis_line_string *linestring)
Create a Gis_line_string from a JSON array.
Definition: item_geofunc.cc:1513
bool get_positions(const Json_array *coordinates, Gis_point *point)
Parse an array of coordinates to a Gis_point.
Definition: item_geofunc.cc:1251
const char * func_name() const override
Definition: item_geofunc.h:402
double m_max_longitude
The maximum allowed longitude (inclusive).
Definition: item_geofunc.h:461
double m_max_latitude
The maximum allowed latitude (inclusive).
Definition: item_geofunc.h:465
Item_func_geomfromgeojson(const POS &pos, Item *json_string, Item *options)
Definition: item_geofunc.h:392
static const char * CRS84_URN
Definition: item_geofunc.h:433
Geometry::wkbType get_wkbtype(const char *typestring)
Converts GeoJSON type string to a wkbType.
Definition: item_geofunc.cc:1623
static bool check_argument_valid_integer(Item *argument)
Checks if the supplied argument is a valid integer type.
Definition: item_geofunc.cc:1833
bool get_polygon(const Json_array *data_array, Gis_polygon *polygon)
Create a Gis_polygon from a JSON array.
Definition: item_geofunc.cc:1545
static const char * MULTIPOINT_TYPE
Definition: item_geofunc.h:435
Item_func_geomfromgeojson(const POS &pos, Item *json_string, Item *options, Item *srid)
Definition: item_geofunc.h:396
static const char * POINT_TYPE
Definition: item_geofunc.h:434
static const char * CRS_MEMBER
Definition: item_geofunc.h:423
bool fix_fields(THD *, Item **ref) override
Do type checking on all provided arguments.
Definition: item_geofunc.cc:1855
static const char * NAMED_CRS
Definition: item_geofunc.h:430
static const char * PROPERTIES_MEMBER
Definition: item_geofunc.h:425
Item_func_geomfromgeojson(const POS &pos, Item *json_string)
Definition: item_geofunc.h:387
static const char * GEOMETRYCOLLECTION_TYPE
Definition: item_geofunc.h:440
enum_handle_coordinate_dimension
Describing how coordinate dimensions higher than supported in MySQL should be handled.
Definition: item_geofunc.h:381
@ strip_now_reject_future
Definition: item_geofunc.h:384
@ reject_document
Definition: item_geofunc.h:382
@ strip_now_accept_future
Definition: item_geofunc.h:383
@ strip_now_strip_future
Definition: item_geofunc.h:385
static const char * FEATURES_MEMBER
Definition: item_geofunc.h:426
static const char * POLYGON_TYPE
Definition: item_geofunc.h:438
static const char * MULTILINESTRING_TYPE
Definition: item_geofunc.h:437
static const char * GEOMETRY_MEMBER
Definition: item_geofunc.h:424
Definition: item_geofunc.h:1298
longlong val_int() override
Definition: item_geofunc.cc:4759
Item_func_isclosed(const POS &pos, Item *a)
Definition: item_geofunc.h:1300
optimize_type select_optimize(const THD *) override
Definition: item_geofunc.h:1302
const char * func_name() const override
Definition: item_geofunc.h:1303
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1304
Definition: item_geofunc.h:1274
Item_func_isempty(const POS &pos, Item *a)
Definition: item_geofunc.h:1276
optimize_type select_optimize(const THD *) override
Definition: item_geofunc.h:1278
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1280
longlong val_int() override
Definition: item_geofunc.cc:4695
const char * func_name() const override
Definition: item_geofunc.h:1279
Definition: item_geofunc.h:1311
Item_func_isvalid(const POS &pos, Item *a)
Definition: item_geofunc.h:1313
optimize_type select_optimize(const THD *) override
Definition: item_geofunc.h:1315
const char * func_name() const override
Definition: item_geofunc.h:1316
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1317
longlong val_int() override
Definition: item_geofunc.cc:4781
This handles the <double> = ST_LATFROMGEOHASH(<string>) function.
Definition: item_geofunc.h:674
const char * func_name() const override
Definition: item_geofunc.h:680
Item_func_latfromgeohash(const POS &pos, Item *a)
Definition: item_geofunc.h:676
This is a superclass for Item_func_longfromgeohash and Item_func_latfromgeohash, since they share alm...
Definition: item_geofunc.h:614
const double lower_latitude
The lower limit for latitude output value.
Definition: item_geofunc.h:620
bool fix_fields(THD *thd, Item **ref) override
Definition: item_geofunc.cc:2882
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.cc:2876
Item_func_latlongfromgeohash(const POS &pos, Item *a, double lower_latitude, double upper_latitude, double lower_longitude, double upper_longitude, bool start_on_even_bit_arg)
Definition: item_geofunc.h:648
const bool start_on_even_bit
If this is set to true the algorithm will start decoding on the first bit, which decodes a longitude ...
Definition: item_geofunc.h:645
static bool decode_geohash(String *geohash, double upper_latitude, double lower_latitude, double upper_longitude, double lower_longitude, double *result_latitude, double *result_longitude)
Decodes a geohash string into longitude and latitude.
Definition: item_geofunc.cc:2947
const double upper_longitude
The upper limit for longitude output value.
Definition: item_geofunc.h:638
static double round_latlongitude(double latlongitude, double error_range, double lower_limit, double upper_limit)
Rounds a latitude or longitude value.
Definition: item_geofunc.cc:3061
static bool check_geohash_argument_valid_type(Item *item)
Checks if geohash arguments is of valid type.
Definition: item_geofunc.cc:2906
const double upper_latitude
The upper limit for latitude output value.
Definition: item_geofunc.h:626
const double lower_longitude
The lower limit for longitude output value.
Definition: item_geofunc.h:632
double val_real() override
Decodes a geohash into longitude if start_on_even_bit == true, or latitude if start_on_even_bit == fa...
Definition: item_geofunc.cc:3104
Definition: item_geofunc.h:1714
Item_func_lineinterpolate(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1716
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1723
String * val_str(String *str) override
Definition: item_geofunc.cc:5865
virtual bool returnMultiplePoints() const =0
virtual bool isFractionalDistance() const =0
Definition: item_geofunc.h:1730
bool isFractionalDistance() const override
Definition: item_geofunc.h:1737
Item_func_lineinterpolatepoint(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1732
const char * func_name() const override
Definition: item_geofunc.h:1736
bool returnMultiplePoints() const override
Definition: item_geofunc.h:1738
Definition: item_geofunc.h:1741
bool isFractionalDistance() const override
Definition: item_geofunc.h:1748
const char * func_name() const override
Definition: item_geofunc.h:1747
Item_func_lineinterpolatepoints(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1743
bool returnMultiplePoints() const override
Definition: item_geofunc.h:1749
This handles the <double> = ST_LONGFROMGEOHASH(<string>) function.
Definition: item_geofunc.h:687
Item_func_longfromgeohash(const POS &pos, Item *a)
Definition: item_geofunc.h:689
const char * func_name() const override
Definition: item_geofunc.h:693
Definition: item_geofunc.h:742
String * val_str(String *) override
Definition: item_geofunc.cc:3425
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:749
Field::geometry_type get_geometry_type() const override
Definition: item_geofunc.cc:3421
Item_func_make_envelope(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:744
const char * func_name() const override
Definition: item_geofunc.h:746
Definition: item_geofunc.h:1069
Item_func_mbrcontains(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1071
enum Functype functype() const override
Definition: item_geofunc.h:1073
bool eval(const dd::Spatial_reference_system *srs, const gis::Geometry *g1, const gis::Geometry *g2, bool *result, bool *null) override
Evaluate the spatial relation function.
Definition: item_geofunc_relchecks.cc:159
enum Functype rev_functype() const override
Definition: item_geofunc.h:1074
const char * func_name() const override
Definition: item_geofunc.h:1075
Definition: item_geofunc.h:1080
bool eval(const dd::Spatial_reference_system *srs, const gis::Geometry *g1, const gis::Geometry *g2, bool *result, bool *null) override
Evaluate the spatial relation function.
Definition: item_geofunc_relchecks.cc:166
enum Functype rev_functype() const override
Definition: item_geofunc.h:1085
Item_func_mbrcoveredby(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1082
enum Functype functype() const override
Definition: item_geofunc.h:1084
const char * func_name() const override
Definition: item_geofunc.h:1086
Definition: item_geofunc.h:1091
enum Functype rev_functype() const override
Definition: item_geofunc.h:1096
bool eval(const dd::Spatial_reference_system *srs, const gis::Geometry *g1, const gis::Geometry *g2, bool *result, bool *null) override
Evaluate the spatial relation function.
Definition: item_geofunc_relchecks.cc:173
Item_func_mbrcovers(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1093
enum Functype functype() const override
Definition: item_geofunc.h:1095
const char * func_name() const override
Definition: item_geofunc.h:1097
Definition: item_geofunc.h:1102
enum Functype functype() const override
Definition: item_geofunc.h:1106
bool eval(const dd::Spatial_reference_system *srs, const gis::Geometry *g1, const gis::Geometry *g2, bool *result, bool *null) override
Evaluate the spatial relation function.
Definition: item_geofunc_relchecks.cc:179
const char * func_name() const override
Definition: item_geofunc.h:1108
Item_func_mbrdisjoint(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1104
enum Functype rev_functype() const override
Definition: item_geofunc.h:1107
Definition: item_geofunc.h:1113
Item_func_mbrequals(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1115
enum Functype functype() const override
Definition: item_geofunc.h:1117
const char * func_name() const override
Definition: item_geofunc.h:1119
enum Functype rev_functype() const override
Definition: item_geofunc.h:1118
bool eval(const dd::Spatial_reference_system *srs, const gis::Geometry *g1, const gis::Geometry *g2, bool *result, bool *null) override
Evaluate the spatial relation function.
Definition: item_geofunc_relchecks.cc:186
Definition: item_geofunc.h:1124
enum Functype functype() const override
Definition: item_geofunc.h:1128
bool eval(const dd::Spatial_reference_system *srs, const gis::Geometry *g1, const gis::Geometry *g2, bool *result, bool *null) override
Evaluate the spatial relation function.
Definition: item_geofunc_relchecks.cc:192
enum Functype rev_functype() const override
Definition: item_geofunc.h:1129
Item_func_mbrintersects(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1126
const char * func_name() const override
Definition: item_geofunc.h:1130
Definition: item_geofunc.h:1135
enum Functype functype() const override
Definition: item_geofunc.h:1139
Item_func_mbroverlaps(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1137
bool eval(const dd::Spatial_reference_system *srs, const gis::Geometry *g1, const gis::Geometry *g2, bool *result, bool *null) override
Evaluate the spatial relation function.
Definition: item_geofunc_relchecks.cc:199
const char * func_name() const override
Definition: item_geofunc.h:1141
enum Functype rev_functype() const override
Definition: item_geofunc.h:1140
Definition: item_geofunc.h:1146
const char * func_name() const override
Definition: item_geofunc.h:1152
bool eval(const dd::Spatial_reference_system *srs, const gis::Geometry *g1, const gis::Geometry *g2, bool *result, bool *null) override
Evaluate the spatial relation function.
Definition: item_geofunc_relchecks.cc:206
Item_func_mbrtouches(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1148
enum Functype functype() const override
Definition: item_geofunc.h:1150
enum Functype rev_functype() const override
Definition: item_geofunc.h:1151
Definition: item_geofunc.h:1157
const char * func_name() const override
Definition: item_geofunc.h:1163
Item_func_mbrwithin(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1159
enum Functype functype() const override
Definition: item_geofunc.h:1161
enum Functype rev_functype() const override
Definition: item_geofunc.h:1162
bool eval(const dd::Spatial_reference_system *srs, const gis::Geometry *g1, const gis::Geometry *g2, bool *result, bool *null) override
Evaluate the spatial relation function.
Definition: item_geofunc_relchecks.cc:213
Definition: item_geofunc.h:1518
longlong val_int() override
Definition: item_geofunc.cc:4860
String value
Definition: item_geofunc.h:1519
const char * func_name() const override
Definition: item_geofunc.h:1524
Item_func_numgeometries(const POS &pos, Item *a)
Definition: item_geofunc.h:1522
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1525
Definition: item_geofunc.h:1533
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1540
Item_func_numinteriorring(const POS &pos, Item *a)
Definition: item_geofunc.h:1537
const char * func_name() const override
Definition: item_geofunc.h:1539
String value
Definition: item_geofunc.h:1534
longlong val_int() override
Definition: item_geofunc.cc:4841
Definition: item_geofunc.h:1548
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1555
longlong val_int() override
Definition: item_geofunc.cc:4879
String value
Definition: item_geofunc.h:1549
const char * func_name() const override
Definition: item_geofunc.h:1554
Item_func_numpoints(const POS &pos, Item *a)
Definition: item_geofunc.h:1552
Definition: item_geofunc.h:784
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:791
Field::geometry_type get_geometry_type() const override
Definition: item_geofunc.cc:4212
String * val_str(String *) override
Definition: item_geofunc.cc:4216
const char * func_name() const override
Definition: item_geofunc.h:788
Item_func_point(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:786
This handles the <point> = ST_POINTFROMGEOHASH(<string>, <srid>) function.
Definition: item_geofunc.h:805
const double upper_latitude
The maximum output latitude value when decoding the geohash value.
Definition: item_geofunc.h:808
const double lower_longitude
The minimum output longitude value when decoding the geohash value.
Definition: item_geofunc.h:817
const double lower_latitude
The minimum output latitude value when decoding the geohash value.
Definition: item_geofunc.h:811
String * val_str(String *) override
Definition: item_geofunc.cc:4301
Item_func_pointfromgeohash(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:820
const char * func_name() const override
Definition: item_geofunc.h:826
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.cc:4295
const double upper_longitude
The maximum output longitude value when decoding the geohash value.
Definition: item_geofunc.h:814
bool fix_fields(THD *thd, Item **ref) override
This will check if arguments passed (geohash and SRID) are of valid types.
Definition: item_geofunc.cc:4249
Field::geometry_type get_geometry_type() const override
Definition: item_geofunc.h:830
Definition: item_geofunc.h:893
Item_func_spatial_collection(const POS &pos, PT_item_list *list, enum Geometry::wkbType ct, enum Geometry::wkbType it)
Definition: item_geofunc.h:899
enum Geometry::wkbType item_type
Definition: item_geofunc.h:896
String tmp_value
Definition: item_geofunc.h:894
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:907
enum Geometry::wkbType coll_type
Definition: item_geofunc.h:895
String * val_str(String *) override
Concatenates various items into various collections with checkings for valid wkb type of items.
Definition: item_geofunc.cc:4384
const char * func_name() const override
Definition: item_geofunc.cc:4344
Definition: item_geofunc.h:863
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:865
const char * func_name() const override
Definition: item_geofunc.h:877
String * val_str(String *) override
Definition: item_geofunc.cc:4155
Item_func_spatial_decomp_n(const POS &pos, Item *a, Item *b, Item_func::Functype ft)
Definition: item_geofunc.h:872
enum Functype decomp_func_n
Definition: item_geofunc.h:864
Definition: item_geofunc.h:835
enum Functype decomp_func
Definition: item_geofunc.h:836
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:837
Item_func_spatial_decomp(const POS &pos, Item *a, Item_func::Functype ft)
Definition: item_geofunc.h:843
String * val_str(String *) override
Definition: item_geofunc.cc:4111
const char * func_name() const override
Definition: item_geofunc.h:847
Definition: item_geofunc.h:929
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_geofunc.h:956
enum Functype rev_functype() const override
Definition: item_geofunc.h:944
enum Functype spatial_rel
Definition: item_geofunc.h:930
enum Functype functype() const override
Definition: item_geofunc.h:943
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:960
Item_func_spatial_mbr_rel(Item *a, Item *b, enum Functype sp_rel)
Definition: item_geofunc.h:933
Item_func_spatial_mbr_rel(const POS &pos, Item *a, Item *b, enum Functype sp_rel)
Definition: item_geofunc.h:937
const char * func_name() const override
longlong val_int() override
bool is_null() override
The method allows to determine nullness of a complex expression without fully evaluating it,...
Definition: item_geofunc.h:964
Spatial operations.
Definition: item_geofunc.h:1204
Item_func_spatial_operation(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1206
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1210
Definition: item_geofunc.h:970
bool is_null() override
The method allows to determine nullness of a complex expression without fully evaluating it,...
Definition: item_geofunc.h:987
longlong val_int() override
Definition: item_geofunc_relchecks.cc:68
virtual bool eval(const dd::Spatial_reference_system *srs, const gis::Geometry *g1, const gis::Geometry *g2, bool *result, bool *null)=0
Evaluate the spatial relation function.
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_geofunc.h:982
Item_func_spatial_relation(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:972
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:974
Definition: item_geofunc.h:1563
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1568
double val_real() override
Definition: item_geofunc.cc:5081
const char * func_name() const override
Definition: item_geofunc.h:1567
Item_func_st_area(const POS &pos, Item *a)
Definition: item_geofunc.h:1565
Definition: item_geofunc.h:1576
Item_func_st_buffer(const POS &pos, PT_item_list *ilist)
Definition: item_geofunc.h:1581
String * val_str(String *) override
Definition: item_geofunc.cc:5132
const char * func_name() const override
Definition: item_geofunc.h:1585
bool parse_strategy(String *arg, gis::BufferStrategies &strats)
Parses strategy stored in String object, and sets values in strats.
Definition: item_geofunc.cc:5190
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1586
Definition: item_geofunc.h:1014
bool eval(const dd::Spatial_reference_system *srs, const gis::Geometry *g1, const gis::Geometry *g2, bool *result, bool *null) override
Evaluate the spatial relation function.
Definition: item_geofunc_relchecks.cc:125
const char * func_name() const override
Definition: item_geofunc.h:1020
enum Functype rev_functype() const override
Definition: item_geofunc.h:1019
Item_func_st_contains(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1016
enum Functype functype() const override
Definition: item_geofunc.h:1018
Definition: item_geofunc.h:1025
bool eval(const dd::Spatial_reference_system *srs, const gis::Geometry *g1, const gis::Geometry *g2, bool *result, bool *null) override
Evaluate the spatial relation function.
Definition: item_geofunc_relchecks.cc:132
enum Functype rev_functype() const override
Definition: item_geofunc.h:1030
enum Functype functype() const override
Definition: item_geofunc.h:1029
const char * func_name() const override
Definition: item_geofunc.h:1031
Item_func_st_crosses(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1027
Definition: item_geofunc.h:1216
String * val_str(String *) override
Definition: item_geofunc.cc:5580
Item_func_st_difference(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1218
const char * func_name() const override
Definition: item_geofunc.h:1221
Definition: item_geofunc.h:1036
bool eval(const dd::Spatial_reference_system *srs, const gis::Geometry *g1, const gis::Geometry *g2, bool *result, bool *null) override
Evaluate the spatial relation function.
Definition: item_geofunc_relchecks.cc:139
enum Functype functype() const override
Definition: item_geofunc.h:1040
Item_func_st_disjoint(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1038
enum Functype rev_functype() const override
Definition: item_geofunc.h:1041
const char * func_name() const override
Definition: item_geofunc.h:1042
Definition: item_geofunc.h:1700
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1706
Item_func_st_distance_sphere(const POS &pos, PT_item_list *ilist)
Definition: item_geofunc.h:1702
const char * func_name() const override
Definition: item_geofunc.h:1705
double val_real() override
Definition: item_geofunc.cc:5712
Definition: item_geofunc.h:1047
enum Functype rev_functype() const override
Definition: item_geofunc.h:1052
enum Functype functype() const override
Definition: item_geofunc.h:1051
const char * func_name() const override
Definition: item_geofunc.h:1053
bool eval(const dd::Spatial_reference_system *srs, const gis::Geometry *g1, const gis::Geometry *g2, bool *result, bool *null) override
Evaluate the spatial relation function.
Definition: item_geofunc_relchecks.cc:146
Item_func_st_equals(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1049
Definition: item_geofunc.h:1672
Item_func_st_frechet_distance(const POS &pos, PT_item_list *ilist)
Definition: item_geofunc.h:1674
const char * func_name() const override
Definition: item_geofunc.h:1677
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1678
double val_real() override
Definition: item_geofunc.cc:5452
Definition: item_geofunc.h:1686
Item_func_st_hausdorff_distance(const POS &pos, PT_item_list *ilist)
Definition: item_geofunc.h:1688
const char * func_name() const override
Definition: item_geofunc.h:1691
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1692
double val_real() override
Definition: item_geofunc.cc:5516
Definition: item_geofunc.h:1224
String * val_str(String *) override
Definition: item_geofunc.cc:5809
const char * func_name() const override
Definition: item_geofunc.h:1229
Item_func_st_intersection(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1226
Definition: item_geofunc.h:1058
enum Functype functype() const override
Definition: item_geofunc.h:1062
enum Functype rev_functype() const override
Definition: item_geofunc.h:1063
Item_func_st_intersects(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1060
bool eval(const dd::Spatial_reference_system *srs, const gis::Geometry *g1, const gis::Geometry *g2, bool *result, bool *null) override
Evaluate the spatial relation function.
Definition: item_geofunc_relchecks.cc:152
const char * func_name() const override
Definition: item_geofunc.h:1064
Definition: item_geofunc.h:1287
longlong val_int() override
Definition: item_geofunc.cc:4713
const char * func_name() const override
Definition: item_geofunc.h:1291
Item_func_st_issimple(const POS &pos, Item *a)
Definition: item_geofunc.h:1289
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1292
This class implements the two-parameter ST_Latitude function which sets the latitude of a geographic ...
Definition: item_geofunc.h:1401
Item_func_st_latitude_mutator(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1403
const char * func_name() const override
Definition: item_geofunc.h:1407
int coordinate_number(const dd::Spatial_reference_system *) const override
Returns the coordinate number accessed by this item.
Definition: item_geofunc.h:1408
This class implements the one-parameter ST_Latitude function which returns the latitude coordinate of...
Definition: item_geofunc.h:1416
Item_func_st_latitude_observer(const POS &pos, Item *a)
Definition: item_geofunc.h:1418
const char * func_name() const override
Definition: item_geofunc.h:1422
int coordinate_number(const dd::Spatial_reference_system *) const override
Returns the coordinate number accessed by this item.
Definition: item_geofunc.h:1423
Definition: item_geofunc.h:1595
const char * func_name() const override
Definition: item_geofunc.h:1602
String value
Definition: item_geofunc.h:1596
Item_func_st_length(const POS &pos, PT_item_list *ilist)
Definition: item_geofunc.h:1599
double val_real() override
Definition: item_geofunc.cc:5311
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1603
This class implements the two-parameter ST_Longitude function which sets the longitude coordinate of ...
Definition: item_geofunc.h:1431
Item_func_st_longitude_mutator(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1433
const char * func_name() const override
Definition: item_geofunc.h:1437
int coordinate_number(const dd::Spatial_reference_system *) const override
Returns the coordinate number accessed by this item.
Definition: item_geofunc.h:1438
This class implements the one-parameter ST_Longitude function which returns the longitude coordinate ...
Definition: item_geofunc.h:1446
int coordinate_number(const dd::Spatial_reference_system *) const override
Returns the coordinate number accessed by this item.
Definition: item_geofunc.h:1453
Item_func_st_longitude_observer(const POS &pos, Item *a)
Definition: item_geofunc.h:1448
const char * func_name() const override
Definition: item_geofunc.h:1452
Definition: item_geofunc.h:1168
Item_func_st_overlaps(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1170
enum Functype functype() const override
Definition: item_geofunc.h:1172
enum Functype rev_functype() const override
Definition: item_geofunc.h:1173
bool eval(const dd::Spatial_reference_system *srs, const gis::Geometry *g1, const gis::Geometry *g2, bool *result, bool *null) override
Evaluate the spatial relation function.
Definition: item_geofunc_relchecks.cc:219
const char * func_name() const override
Definition: item_geofunc.h:1174
Definition: item_geofunc.h:1752
Item_func_st_pointatdistance(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1754
bool returnMultiplePoints() const override
Definition: item_geofunc.h:1760
bool isFractionalDistance() const override
Definition: item_geofunc.h:1759
const char * func_name() const override
Definition: item_geofunc.h:1758
Item that implements function ST_Simplify, which simplifies a geometry using the Douglas-Peucker algo...
Definition: item_geofunc.h:770
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:774
String * val_str(String *) override
Definition: item_geofunc.cc:4064
Item_func_st_simplify(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:772
const char * func_name() const override
Definition: item_geofunc.h:781
This class implements the two-parameter ST_SRID function which sets the SRID of a geometry.
Definition: item_geofunc.h:1614
String * val_str(String *) override
Definition: item_geofunc.cc:5406
const char * func_name() const override
Definition: item_geofunc.h:1619
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1620
Item_func_st_srid_mutator(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1616
This class implements the one-parameter ST_SRID function which returns the SRID of a geometry.
Definition: item_geofunc.h:1629
Item_func_st_srid_observer(const POS &pos, Item *a)
Definition: item_geofunc.h:1631
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1634
const char * func_name() const override
Definition: item_geofunc.h:1633
longlong val_int() override
Definition: item_geofunc.cc:5366
Definition: item_geofunc.h:1232
String * val_str(String *) override
Definition: item_geofunc.cc:5936
Item_func_st_symdifference(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1234
const char * func_name() const override
Definition: item_geofunc.h:1237
Definition: item_geofunc.h:1179
enum Functype functype() const override
Definition: item_geofunc.h:1183
Item_func_st_touches(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1181
enum Functype rev_functype() const override
Definition: item_geofunc.h:1184
const char * func_name() const override
Definition: item_geofunc.h:1185
bool eval(const dd::Spatial_reference_system *srs, const gis::Geometry *g1, const gis::Geometry *g2, bool *result, bool *null) override
Evaluate the spatial relation function.
Definition: item_geofunc_relchecks.cc:226
Definition: item_geofunc.h:1240
Item_func_st_union(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1242
String * val_str(String *) override
Definition: item_geofunc.cc:4630
const char * func_name() const override
Definition: item_geofunc.h:1245
Definition: item_geofunc.h:1190
bool eval(const dd::Spatial_reference_system *srs, const gis::Geometry *g1, const gis::Geometry *g2, bool *result, bool *null) override
Evaluate the spatial relation function.
Definition: item_geofunc_relchecks.cc:233
enum Functype rev_functype() const override
Definition: item_geofunc.h:1195
enum Functype functype() const override
Definition: item_geofunc.h:1194
Item_func_st_within(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1192
const char * func_name() const override
Definition: item_geofunc.h:1196
This class implements the two-parameter ST_X function which sets the X coordinate of a point.
Definition: item_geofunc.h:1460
int coordinate_number(const dd::Spatial_reference_system *srs) const override
Returns the coordinate number accessed by this item.
Definition: item_geofunc.cc:5024
Item_func_st_x_mutator(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1462
const char * func_name() const override
Definition: item_geofunc.h:1466
This class implements the one-parameter ST_X function which returns the X coordinate of a point.
Definition: item_geofunc.h:1472
int coordinate_number(const dd::Spatial_reference_system *srs) const override
Returns the coordinate number accessed by this item.
Definition: item_geofunc.cc:5030
Item_func_st_x_observer(const POS &pos, Item *a)
Definition: item_geofunc.h:1474
const char * func_name() const override
Definition: item_geofunc.h:1478
This class implements the two-parameter ST_Y function which sets the Y coordinate of a point.
Definition: item_geofunc.h:1484
int coordinate_number(const dd::Spatial_reference_system *srs) const override
Returns the coordinate number accessed by this item.
Definition: item_geofunc.cc:5036
const char * func_name() const override
Definition: item_geofunc.h:1490
Item_func_st_y_mutator(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1486
This class implements the one-parameter ST_Y function which returns the Y coordinate of a point.
Definition: item_geofunc.h:1496
int coordinate_number(const dd::Spatial_reference_system *srs) const override
Returns the coordinate number accessed by this item.
Definition: item_geofunc.cc:5042
const char * func_name() const override
Definition: item_geofunc.h:1502
Item_func_st_y_observer(const POS &pos, Item *a)
Definition: item_geofunc.h:1498
Definition: item_geofunc.h:1506
const char * func_name() const override
Definition: item_geofunc.h:1514
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1507
String * val_str(String *) override
Definition: item_geofunc.cc:5048
Item_func_swap_xy(const POS &pos, Item *a)
Definition: item_geofunc.h:1513
Definition: item_geofunc.h:755
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:761
String * val_str(String *) override
Definition: item_geofunc.cc:3381
const char * func_name() const override
Definition: item_geofunc.h:760
Item_func_validate(const POS &pos, Item *a)
Definition: item_geofunc.h:759
String arg_val
Definition: item_geofunc.h:756
Item ** args
Array of pointers to arguments.
Definition: item_func.h:109
virtual enum Functype functype() const
Definition: item_func.h:317
Functype
Definition: item_func.h:185
@ SP_CROSSES_FUNC
Definition: item_func.h:212
@ SP_EXTERIORRING
Definition: item_func.h:220
@ SP_EQUALS_FUNC
Definition: item_func.h:208
@ SP_COVEREDBY_FUNC
Definition: item_func.h:215
@ SP_TOUCHES_FUNC
Definition: item_func.h:211
@ SP_DISJOINT_FUNC
Definition: item_func.h:209
@ SP_STARTPOINT
Definition: item_func.h:218
@ SP_POINTN
Definition: item_func.h:221
@ SP_GEOMETRYN
Definition: item_func.h:222
@ TYPECAST_FUNC
Definition: item_func.h:233
@ SP_WITHIN_FUNC
Definition: item_func.h:213
@ SP_INTERIORRINGN
Definition: item_func.h:223
@ SP_INTERSECTS_FUNC
Definition: item_func.h:210
@ SP_COVERS_FUNC
Definition: item_func.h:216
@ SP_CONTAINS_FUNC
Definition: item_func.h:214
@ SP_ENDPOINT
Definition: item_func.h:219
@ SP_OVERLAPS_FUNC
Definition: item_func.h:217
optimize_type
Definition: item_func.h:309
@ OPTIMIZE_NONE
Definition: item_func.h:310
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:633
enum Type type() const override
Definition: item_func.h:316
bool param_type_is_default(THD *thd, uint start, uint end, uint step, enum_field_types def)
For arguments of this Item_func ("args" array), in range [start, start+step, start+2*step,...
Definition: item_func.cc:519
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_func.cc:724
uint arg_count
How many arguments in 'args'.
Definition: item_func.h:132
Definition: item_geofunc.h:179
Field * tmp_table_field(TABLE *t_arg) override
Definition: item_geofunc.cc:297
Item_geometry_func(Item *a, Item *b)
Definition: item_geofunc.h:186
Item_geometry_func(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_geofunc.h:191
Item_geometry_func(Item *a)
Definition: item_geofunc.h:183
Item_geometry_func(Item *a, Item *b, Item *c)
Definition: item_geofunc.h:190
Item_geometry_func(const POS &pos, Item *a)
Definition: item_geofunc.h:184
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.cc:306
Item_geometry_func()
Definition: item_geofunc.h:181
Item_geometry_func(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:187
Definition: item_func.h:935
Base class for all item functions that a return JSON value.
Definition: item_json_func.h:151
Definition: item_func.h:747
Definition: item_strfunc.h:144
Definition: item_strfunc.h:76
Definition: item_geofunc.h:1776
const char * func_name() const override=0
enum Functype functype() const override
Definition: item_geofunc.h:1784
Item_typecast_geometry(const POS &pos, Item *a)
Definition: item_geofunc.h:1778
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1786
String * val_str(String *str) override
Definition: item_geofunc.cc:6069
virtual bool cast(const dd::Spatial_reference_system *srs, std::unique_ptr< gis::Geometry > *source_geometry, std::unique_ptr< gis::Geometry > *target_geometry) const =0
Casts certain geometry types to certain target geometry types.
void print(const THD *thd, String *str, enum_query_type query_type) const override=0
This method is used for to:
Field::geometry_type get_geometry_type() const override=0
Definition: item_geofunc.h:1892
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_geofunc.cc:7008
bool cast(const dd::Spatial_reference_system *, std::unique_ptr< gis::Geometry > *source_geometry, std::unique_ptr< gis::Geometry > *target_geometry) const override
Casts certain geometry types to certain target geometry types.
Definition: item_geofunc.cc:6953
const char * func_name() const override
Definition: item_geofunc.h:1898
Item_typecast_geometrycollection(const POS &pos, Item *a)
Definition: item_geofunc.h:1894
Field::geometry_type get_geometry_type() const override
Definition: item_geofunc.cc:7003
Definition: item_geofunc.h:1821
Item_typecast_linestring(const POS &pos, Item *a)
Definition: item_geofunc.h:1823
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_geofunc.cc:6311
bool cast(const dd::Spatial_reference_system *, std::unique_ptr< gis::Geometry > *source_geometry, std::unique_ptr< gis::Geometry > *target_geometry) const override
Casts certain geometry types to certain target geometry types.
Definition: item_geofunc.cc:6190
Field::geometry_type get_geometry_type() const override
Definition: item_geofunc.cc:6307
const char * func_name() const override
Definition: item_geofunc.h:1827
Definition: item_geofunc.h:1863
Item_typecast_multilinestring(const POS &pos, Item *a)
Definition: item_geofunc.h:1865
bool cast(const dd::Spatial_reference_system *, std::unique_ptr< gis::Geometry > *source_geometry, std::unique_ptr< gis::Geometry > *target_geometry) const override
Casts certain geometry types to certain target geometry types.
Definition: item_geofunc.cc:6644
const char * func_name() const override
Definition: item_geofunc.h:1869
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_geofunc.cc:6781
Field::geometry_type get_geometry_type() const override
Definition: item_geofunc.cc:6777
Definition: item_geofunc.h:1849
Item_typecast_multipoint(const POS &pos, Item *a)
Definition: item_geofunc.h:1851
const char * func_name() const override
Definition: item_geofunc.h:1855
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_geofunc.cc:6637
Field::geometry_type get_geometry_type() const override
Definition: item_geofunc.cc:6633
bool cast(const dd::Spatial_reference_system *, std::unique_ptr< gis::Geometry > *source_geometry, std::unique_ptr< gis::Geometry > *target_geometry) const override
Casts certain geometry types to certain target geometry types.
Definition: item_geofunc.cc:6543
Definition: item_geofunc.h:1877
Item_typecast_multipolygon(const POS &pos, Item *a)
Definition: item_geofunc.h:1879
const char * func_name() const override
Definition: item_geofunc.h:1883
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_geofunc.cc:6946
bool cast(const dd::Spatial_reference_system *srs, std::unique_ptr< gis::Geometry > *source_geometry, std::unique_ptr< gis::Geometry > *target_geometry) const override
Casts certain geometry types to certain target geometry types.
Definition: item_geofunc.cc:6788
Field::geometry_type get_geometry_type() const override
Definition: item_geofunc.cc:6942
Definition: item_geofunc.h:1807
bool cast(const dd::Spatial_reference_system *, std::unique_ptr< gis::Geometry > *source_geometry, std::unique_ptr< gis::Geometry > *target_geometry) const override
Casts certain geometry types to certain target geometry types.
Definition: item_geofunc.cc:6117
const char * func_name() const override
Definition: item_geofunc.h:1813
Item_typecast_point(const POS &pos, Item *a)
Definition: item_geofunc.h:1809
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_geofunc.cc:6183
Field::geometry_type get_geometry_type() const override
Definition: item_geofunc.cc:6179
Definition: item_geofunc.h:1835
Field::geometry_type get_geometry_type() const override
Definition: item_geofunc.cc:6532
const char * func_name() const override
Definition: item_geofunc.h:1841
Item_typecast_polygon(const POS &pos, Item *a)
Definition: item_geofunc.h:1837
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_geofunc.cc:6536
bool cast(const dd::Spatial_reference_system *srs, std::unique_ptr< gis::Geometry > *source_geometry, std::unique_ptr< gis::Geometry > *target_geometry) const override
Casts certain geometry types to certain target geometry types.
Definition: item_geofunc.cc:6318
Base class that is used to represent any kind of expression in a relational query.
Definition: item.h:853
void set_nullable(bool nullable)
Definition: item.h:3472
static const CHARSET_INFO * default_charset()
Definition: item.cc:1652
void set_data_type_blob(uint32 max_l)
Set the Item to be of BLOB type.
Definition: item.h:1541
virtual void print(const THD *, String *str, enum_query_type) const
This method is used for to:
Definition: item.h:2323
enum_field_types data_type() const
Retrieve the derived data type of the Item.
Definition: item.h:1362
bool fixed
True if item has been resolved.
Definition: item.h:3460
bool null_value
True if item is null.
Definition: item.h:3497
void set_data_type_string(uint32 max_l)
Set the Item to be variable length string.
Definition: item.h:1459
uint32 max_length
Maximum length of result of evaluating this item, in number of bytes.
Definition: item.h:3392
Represents a JSON array container, i.e.
Definition: json_dom.h:520
JSON DOM abstract base class.
Definition: json_dom.h:173
Represents a JSON container value of type "object" (ECMA), type J_OBJECT here.
Definition: json_dom.h:373
Abstraction for accessing JSON values irrespective of whether they are (started out as) binary JSON v...
Definition: json_dom.h:1161
Wrapper class for an Item list head, used to allocate Item lists in the parser in a context-independe...
Definition: parse_tree_helpers.h:105
void error(Context *pc, const POS &pos) const
syntax_error() function replacement for deferred reporting of syntax errors
Definition: parse_tree_node_base.h:206
size_type erase_unique(const value_type &val)
Similar to std::set<>::erase() Removes a single element from the array by value.
Definition: prealloced_array.h:450
void clear()
Removes (and destroys) all elements.
Definition: prealloced_array.h:610
void * * iterator
Definition: prealloced_array.h:116
iterator begin()
begin : Returns a pointer to the first element in the array.
Definition: prealloced_array.h:254
std::pair< iterator, bool > insert_unique(const value_type &val)
Similar to std::set<>::insert() Extends the array by inserting a new element, but only if it cannot b...
Definition: prealloced_array.h:430
iterator end()
Definition: prealloced_array.h:255
Using this class is fraught with peril, and you need to be very careful when doing so.
Definition: sql_string.h:168
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:34
Definition: spatial_reference_system.h:53
Abstract superclass for all geometric objects.
Definition: geometries.h:100
enum_query_type
Query type constants (usable as bitmap flags).
Definition: enum_query_type.h:31
@ QT_NO_DATA_EXPANSION
If an expression is constant, print the expression, not the value it evaluates to.
Definition: enum_query_type.h:76
Fido Client Authentication nullptr
Definition: fido_client_plugin.cc:222
This file contains the field type.
@ MYSQL_TYPE_LONGLONG
Definition: field_types.h:62
@ MYSQL_TYPE_GEOMETRY
Definition: field_types.h:87
@ MYSQL_TYPE_DOUBLE
Definition: field_types.h:59
void my_error(int nr, myf MyFlags,...)
Fill in and print a previously registered error message.
Definition: my_error.cc:216
static constexpr unsigned PSI_INSTRUMENT_ME
Definition: psi_bits.h:43
static const int MAX_CRS_WIDTH
Max width of long CRS URN supported + max width of SRID + '\0'.
Definition: item_geofunc.h:471
enum_json_type
Json values in MySQL comprises the stand set of JSON values plus a MySQL specific set.
Definition: json_dom.h:109
Some integer typedefs for easier portability.
long long int longlong
Definition: my_inttypes.h:55
#define MYF(v)
Definition: my_inttypes.h:97
uint32_t uint32
Definition: my_inttypes.h:67
Common header for many mysys elements.
Common definition between mysql server & client.
#define MAX_INT_WIDTH
Max width for a LONG w.o.
Definition: mysql_com.h:900
std::string str(const mysqlrouter::ConfigGenerator::Options::Endpoint &ep)
Definition: config_generator.cc:1052
Definition: buf0block_hint.cc:30
PT & ref(PT *tp)
Definition: tablespace_impl.cc:359
The version of the current data dictionary table definitions.
Definition: dictionary_client.h:43
bool length(const dd::Spatial_reference_system *srs, const Geometry *g1, double *length, bool *null) noexcept
Computes the length of linestrings and multilinestrings.
Definition: length.cc:76
std::uint32_t srid_t
A spatial reference system ID (SRID).
Definition: srid.h:33
mutable_buffer buffer(void *p, size_t n) noexcept
Definition: buffer.h:420
Definition: options.cc:49
std::list< T, ut::allocator< T > > list
Specialization of list which uses ut_allocator.
Definition: ut0new.h:2879
Performance schema instrumentation interface.
void gis_wkb_raw_free(void *p)
Definition: spatial.h:211
static bool rollback(THD *thd)
Abort the current statement and transaction.
Definition: sql_cmd_srs.cc:140
Our own string classes, used pervasively throughout the executor.
Environment data for the contextualization phase.
Definition: parse_tree_node_base.h:121
Bison "location" class.
Definition: parse_location.h:43
Definition: buffer_strategies.h:45
unsigned int uint
Definition: uca9-dump.cc:75