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>
1670 const char *
func_name()
const override {
return "st_distance"; }
1678 const char *
func_name()
const override {
return "st_frechetdistance"; }
1692 const char *
func_name()
const override {
return "st_hausdorffdistance"; }
1706 const char *
func_name()
const override {
return "st_distance_sphere"; }
1737 const char *
func_name()
const override {
return "st_lineinterpolatepoint"; }
1748 const char *
func_name()
const override {
return "st_lineinterpolatepoints"; }
1759 const char *
func_name()
const override {
return "st_pointatdistance"; }
1773 const char *
func_name()
const override {
return "st_transform"; }
1803 std::unique_ptr<gis::Geometry> *source_geometry,
1804 std::unique_ptr<gis::Geometry> *target_geometry)
const = 0;
1814 const char *
func_name()
const override {
return "cast_as_point"; }
1817 std::unique_ptr<gis::Geometry> *source_geometry,
1818 std::unique_ptr<gis::Geometry> *target_geometry)
const override;
1828 const char *
func_name()
const override {
return "cast_as_linestring"; }
1831 std::unique_ptr<gis::Geometry> *source_geometry,
1832 std::unique_ptr<gis::Geometry> *target_geometry)
const override;
1842 const char *
func_name()
const override {
return "cast_as_polygon"; }
1845 std::unique_ptr<gis::Geometry> *source_geometry,
1846 std::unique_ptr<gis::Geometry> *target_geometry)
const override;
1856 const char *
func_name()
const override {
return "cast_as_multipoint"; }
1859 std::unique_ptr<gis::Geometry> *source_geometry,
1860 std::unique_ptr<gis::Geometry> *target_geometry)
const override;
1870 const char *
func_name()
const override {
return "cast_as_multilinestring"; }
1873 std::unique_ptr<gis::Geometry> *source_geometry,
1874 std::unique_ptr<gis::Geometry> *target_geometry)
const override;
1884 const char *
func_name()
const override {
return "cast_as_multipolygon"; }
1887 std::unique_ptr<gis::Geometry> *source_geometry,
1888 std::unique_ptr<gis::Geometry> *target_geometry)
const override;
1900 return "cast_as_geometrycollection";
1904 std::unique_ptr<gis::Geometry> *source_geometry,
1905 std::unique_ptr<gis::Geometry> *target_geometry)
const override;
Kerberos Client Authentication nullptr
Definition: auth_kerberos_client_plugin.cc:251
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:4611
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:4553
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:4536
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:739
geometry_type
Definition: field.h:720
@ GEOM_POINT
Definition: field.h:722
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:623
Definition: item_cmpfunc.h:294
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_cmpfunc.h:328
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:2365
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:2455
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:2418
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:2488
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:3259
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:3250
String * val_str_ascii(String *) override
Definition: item_geofunc.cc:3140
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:125
const char * func_name() const override
Definition: item_geofunc.h:1269
String * val_str(String *) override
Definition: item_geofunc_buffer.cc:133
Item_func_buffer_strategy(const POS &pos, PT_item_list *ilist)
Definition: item_geofunc_buffer.cc:117
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:3830
String * val_str(String *) override
Definition: item_geofunc.cc:3613
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:3609
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:3936
const char * func_name() const override
Definition: item_geofunc.h:721
String * val_str(String *) override
Definition: item_geofunc.cc:3900
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:3896
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:4904
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:4976
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:4828
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:5652
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:1670
double bg_distance(const Geometry *g1, const Geometry *g2)
enum Functype functype() const override
Definition: item_geofunc.h:1669
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:3572
String * val_str(String *) override
Definition: item_geofunc.cc:3576
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:2867
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:2673
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:2581
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:2740
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:2842
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.cc:2730
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:2531
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 do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_geofunc.cc:316
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:365
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:423
const char * func_name() const override
Definition: item_geofunc.cc:325
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:397
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
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_geofunc.cc:576
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:680
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:585
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:623
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:654
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:3366
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:1066
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:1784
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:1354
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:1663
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:1037
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:865
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:1516
bool get_positions(const Json_array *coordinates, Gis_point *point)
Parse an array of coordinates to a Gis_point.
Definition: item_geofunc.cc:1254
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:1626
static bool check_argument_valid_integer(Item *argument)
Checks if the supplied argument is a valid integer type.
Definition: item_geofunc.cc:1837
bool get_polygon(const Json_array *data_array, Gis_polygon *polygon)
Create a Gis_polygon from a JSON array.
Definition: item_geofunc.cc:1548
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:1860
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:4765
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:4701
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:4787
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:2888
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.cc:2882
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:2953
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:3067
static bool check_geohash_argument_valid_type(Item *item)
Checks if geohash arguments is of valid type.
Definition: item_geofunc.cc:2912
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:3110
Definition: item_geofunc.h:1715
Item_func_lineinterpolate(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1717
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1724
String * val_str(String *str) override
Definition: item_geofunc.cc:5872
virtual bool returnMultiplePoints() const =0
virtual bool isFractionalDistance() const =0
Definition: item_geofunc.h:1731
bool isFractionalDistance() const override
Definition: item_geofunc.h:1738
Item_func_lineinterpolatepoint(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1733
const char * func_name() const override
Definition: item_geofunc.h:1737
bool returnMultiplePoints() const override
Definition: item_geofunc.h:1739
Definition: item_geofunc.h:1742
bool isFractionalDistance() const override
Definition: item_geofunc.h:1749
const char * func_name() const override
Definition: item_geofunc.h:1748
Item_func_lineinterpolatepoints(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1744
bool returnMultiplePoints() const override
Definition: item_geofunc.h:1750
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:3431
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:3427
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:4866
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:4847
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:4885
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:4218
String * val_str(String *) override
Definition: item_geofunc.cc:4222
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:4307
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:4301
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:4255
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:4390
const char * func_name() const override
Definition: item_geofunc.cc:4350
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:4161
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:4117
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:5087
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:5138
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:5196
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:5587
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:1701
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1707
Item_func_st_distance_sphere(const POS &pos, PT_item_list *ilist)
Definition: item_geofunc.h:1703
const char * func_name() const override
Definition: item_geofunc.h:1706
double val_real() override
Definition: item_geofunc.cc:5719
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:1673
Item_func_st_frechet_distance(const POS &pos, PT_item_list *ilist)
Definition: item_geofunc.h:1675
const char * func_name() const override
Definition: item_geofunc.h:1678
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1679
double val_real() override
Definition: item_geofunc.cc:5459
Definition: item_geofunc.h:1687
Item_func_st_hausdorff_distance(const POS &pos, PT_item_list *ilist)
Definition: item_geofunc.h:1689
const char * func_name() const override
Definition: item_geofunc.h:1692
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1693
double val_real() override
Definition: item_geofunc.cc:5523
Definition: item_geofunc.h:1224
String * val_str(String *) override
Definition: item_geofunc.cc:5816
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:4719
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:5318
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:1753
Item_func_st_pointatdistance(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1755
bool returnMultiplePoints() const override
Definition: item_geofunc.h:1761
bool isFractionalDistance() const override
Definition: item_geofunc.h:1760
const char * func_name() const override
Definition: item_geofunc.h:1759
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:4070
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:5413
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:5373
Definition: item_geofunc.h:1232
String * val_str(String *) override
Definition: item_geofunc.cc:5943
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:4636
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:5030
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:5036
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:5042
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:5048
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:5054
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:3387
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:107
virtual enum Functype functype() const
Definition: item_func.h:366
Functype
Definition: item_func.h:209
@ SP_CROSSES_FUNC
Definition: item_func.h:237
@ SP_EXTERIORRING
Definition: item_func.h:245
@ SP_EQUALS_FUNC
Definition: item_func.h:232
@ SP_COVEREDBY_FUNC
Definition: item_func.h:240
@ SP_TOUCHES_FUNC
Definition: item_func.h:236
@ SP_DISJOINT_FUNC
Definition: item_func.h:233
@ SP_STARTPOINT
Definition: item_func.h:243
@ SP_POINTN
Definition: item_func.h:246
@ SP_GEOMETRYN
Definition: item_func.h:247
@ TYPECAST_FUNC
Definition: item_func.h:258
@ SP_DISTANCE_FUNC
Definition: item_func.h:234
@ SP_WITHIN_FUNC
Definition: item_func.h:238
@ SP_INTERIORRINGN
Definition: item_func.h:248
@ SP_INTERSECTS_FUNC
Definition: item_func.h:235
@ SP_COVERS_FUNC
Definition: item_func.h:241
@ SP_CONTAINS_FUNC
Definition: item_func.h:239
@ SP_ENDPOINT
Definition: item_func.h:244
@ SP_OVERLAPS_FUNC
Definition: item_func.h:242
optimize_type
Definition: item_func.h:358
@ OPTIMIZE_NONE
Definition: item_func.h:359
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:717
enum Type type() const override
Definition: item_func.h:365
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:528
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_func.cc:748
uint arg_count
How many arguments in 'args'.
Definition: item_func.h:130
Definition: item_geofunc.h:179
Field * tmp_table_field(TABLE *t_arg) override
Definition: item_geofunc.cc:299
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:308
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:1020
Base class for all item functions that a return JSON value.
Definition: item_json_func.h:158
Definition: item_func.h:832
Definition: item_strfunc.h:148
Definition: item_strfunc.h:76
Definition: item_geofunc.h:1777
const char * func_name() const override=0
enum Functype functype() const override
Definition: item_geofunc.h:1785
Item_typecast_geometry(const POS &pos, Item *a)
Definition: item_geofunc.h:1779
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1787
String * val_str(String *str) override
Definition: item_geofunc.cc:6076
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:1893
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_geofunc.cc:7015
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:6960
const char * func_name() const override
Definition: item_geofunc.h:1899
Item_typecast_geometrycollection(const POS &pos, Item *a)
Definition: item_geofunc.h:1895
Field::geometry_type get_geometry_type() const override
Definition: item_geofunc.cc:7010
Definition: item_geofunc.h:1822
Item_typecast_linestring(const POS &pos, Item *a)
Definition: item_geofunc.h:1824
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_geofunc.cc:6318
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:6197
Field::geometry_type get_geometry_type() const override
Definition: item_geofunc.cc:6314
const char * func_name() const override
Definition: item_geofunc.h:1828
Definition: item_geofunc.h:1864
Item_typecast_multilinestring(const POS &pos, Item *a)
Definition: item_geofunc.h:1866
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:6651
const char * func_name() const override
Definition: item_geofunc.h:1870
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_geofunc.cc:6788
Field::geometry_type get_geometry_type() const override
Definition: item_geofunc.cc:6784
Definition: item_geofunc.h:1850
Item_typecast_multipoint(const POS &pos, Item *a)
Definition: item_geofunc.h:1852
const char * func_name() const override
Definition: item_geofunc.h:1856
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_geofunc.cc:6644
Field::geometry_type get_geometry_type() const override
Definition: item_geofunc.cc:6640
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:6550
Definition: item_geofunc.h:1878
Item_typecast_multipolygon(const POS &pos, Item *a)
Definition: item_geofunc.h:1880
const char * func_name() const override
Definition: item_geofunc.h:1884
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_geofunc.cc:6953
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:6795
Field::geometry_type get_geometry_type() const override
Definition: item_geofunc.cc:6949
Definition: item_geofunc.h:1808
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:6124
const char * func_name() const override
Definition: item_geofunc.h:1814
Item_typecast_point(const POS &pos, Item *a)
Definition: item_geofunc.h:1810
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_geofunc.cc:6190
Field::geometry_type get_geometry_type() const override
Definition: item_geofunc.cc:6186
Definition: item_geofunc.h:1836
Field::geometry_type get_geometry_type() const override
Definition: item_geofunc.cc:6539
const char * func_name() const override
Definition: item_geofunc.h:1842
Item_typecast_polygon(const POS &pos, Item *a)
Definition: item_geofunc.h:1838
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_geofunc.cc:6543
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:6325
Base class that is used to represent any kind of expression in a relational query.
Definition: item.h:930
void set_nullable(bool nullable)
Definition: item.h:3687
void set_data_type_blob(enum_field_types type, uint32 max_l)
Set the Item to be of BLOB type.
Definition: item.h:1683
static const CHARSET_INFO * default_charset()
Definition: item.cc:1760
virtual void print(const THD *, String *str, enum_query_type) const
This method is used for to:
Definition: item.h:2488
enum_field_types data_type() const
Retrieve the derived data type of the Item.
Definition: item.h:1481
bool fixed
True if item has been resolved.
Definition: item.h:3675
bool null_value
True if item is null.
Definition: item.h:3712
void set_data_type_string(uint32 max_l)
Set the Item to be variable length string.
Definition: item.h:1600
uint32 max_length
Maximum length of result of evaluating this item, in number of bytes.
Definition: item.h:3601
Represents a JSON array container, i.e.
Definition: json_dom.h:513
JSON DOM abstract base class.
Definition: json_dom.h:172
Represents a JSON container value of type "object" (ECMA), type J_OBJECT here.
Definition: json_dom.h:367
Abstraction for accessing JSON values irrespective of whether they are (started out as) binary JSON v...
Definition: json_dom.h:1150
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:344
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:167
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:36
Definition: spatial_reference_system.h:53
Abstract superclass for all geometric objects.
Definition: geometries.h:100
static char buf[MAX_BUF]
Definition: conf_to_src.cc:73
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
This file contains the field type.
@ MYSQL_TYPE_LONGLONG
Definition: field_types.h:64
@ MYSQL_TYPE_LONG_BLOB
Definition: field_types.h:86
@ MYSQL_TYPE_GEOMETRY
Definition: field_types.h:90
@ MYSQL_TYPE_DOUBLE
Definition: field_types.h:61
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:108
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:901
std::string str(const mysqlrouter::ConfigGenerator::Options::Endpoint &ep)
Definition: config_generator.cc:1105
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:418
Definition: options.cc:57
std::list< T, ut::allocator< T > > list
Specialization of list which uses ut_allocator.
Definition: ut0new.h:2880
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.
Bison "location" class.
Definition: parse_location.h:43
Environment data for the contextualization phase.
Definition: parse_tree_node_base.h:420
Definition: buffer_strategies.h:45