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"; }
717 template <
typename Coordsys>
722 const char *
func_name()
const override {
return "st_convexhull"; }
734 const char *
func_name()
const override {
return "st_envelope"; }
747 const char *
func_name()
const override {
return "st_makeenvelope"; }
761 const char *
func_name()
const override {
return "st_validate"; }
782 const char *
func_name()
const override {
return "st_simplify"; }
789 const char *
func_name()
const override {
return "point"; }
827 const char *
func_name()
const override {
return "st_pointfromgeohash"; }
851 return "st_startpoint";
853 return "st_endpoint";
855 return "st_exteriorring";
858 return "spatial_decomp_unknown";
883 return "st_geometryn";
885 return "st_interiorringn";
888 return "spatial_decomp_n_unknown";
911 for (
unsigned int i = 0; i <
arg_count; ++i) {
916 my_error(ER_ILLEGAL_VALUE_FOR_TYPE,
MYF(0),
"non geometric",
str.ptr());
1012 bool *
result,
bool *
null) = 0;
1021 const char *
func_name()
const override {
return "st_contains"; }
1032 const char *
func_name()
const override {
return "st_crosses"; }
1043 const char *
func_name()
const override {
return "st_disjoint"; }
1054 const char *
func_name()
const override {
return "st_equals"; }
1065 const char *
func_name()
const override {
return "st_intersects"; }
1076 const char *
func_name()
const override {
return "mbrcontains"; }
1087 const char *
func_name()
const override {
return "mbrcoveredby"; }
1098 const char *
func_name()
const override {
return "mbrcovers"; }
1109 const char *
func_name()
const override {
return "mbrdisjoint"; }
1120 const char *
func_name()
const override {
return "mbrequals"; }
1131 const char *
func_name()
const override {
return "mbrintersects"; }
1142 const char *
func_name()
const override {
return "mbroverlaps"; }
1153 const char *
func_name()
const override {
return "mbrtouches"; }
1164 const char *
func_name()
const override {
return "mbrwithin"; }
1175 const char *
func_name()
const override {
return "st_overlaps"; }
1186 const char *
func_name()
const override {
return "st_touches"; }
1197 const char *
func_name()
const override {
return "st_within"; }
1222 const char *
func_name()
const override {
return "st_difference"; }
1230 const char *
func_name()
const override {
return "st_intersection"; }
1238 const char *
func_name()
const override {
return "st_symdifference"; }
1246 const char *
func_name()
const override {
return "st_union"; }
1270 const char *
func_name()
const override {
return "st_buffer_strategy"; }
1280 const char *
func_name()
const override {
return "st_isempty"; }
1292 const char *
func_name()
const override {
return "st_issimple"; }
1304 const char *
func_name()
const override {
return "st_isclosed"; }
1317 const char *
func_name()
const override {
return "st_isvalid"; }
1330 const char *
func_name()
const override {
return "st_dimension"; }
1346 bool geographic_only)
1408 const char *
func_name()
const override {
return "st_latitude"; }
1423 const char *
func_name()
const override {
return "st_latitude"; }
1438 const char *
func_name()
const override {
return "st_longitude"; }
1453 const char *
func_name()
const override {
return "st_longitude"; }
1515 const char *
func_name()
const override {
return "st_swapxy"; }
1525 const char *
func_name()
const override {
return "st_numgeometries"; }
1540 const char *
func_name()
const override {
return "st_numinteriorrings"; }
1555 const char *
func_name()
const override {
return "st_numpoints"; }
1568 const char *
func_name()
const override {
return "st_area"; }
1586 const char *
func_name()
const override {
return "st_buffer"; }
1603 const char *
func_name()
const override {
return "st_length"; }
1620 const char *
func_name()
const override {
return "st_srid"; }
1634 const char *
func_name()
const override {
return "st_srid"; }
1646 template <
typename Coordsys,
typename BG_geometry>
1651 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;
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: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:1249
char tmp_buffer[16]
Definition: item_geofunc.h:1267
enum_buffer_strategies
Definition: item_geofunc.h:1251
@ point_circle
Definition: item_geofunc.h:1257
@ point_square
Definition: item_geofunc.h:1258
@ join_miter
Definition: item_geofunc.h:1256
@ max_strategy
Definition: item_geofunc.h:1259
@ end_flat
Definition: item_geofunc.h:1254
@ invalid_strategy
Definition: item_geofunc.h:1252
@ end_round
Definition: item_geofunc.h:1253
@ join_round
Definition: item_geofunc.h:1255
friend class Item_func_buffer
Definition: item_geofunc.h:1265
String tmp_value
Definition: item_geofunc.h:1266
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:1270
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
String tmp_value
Definition: item_geofunc.h:715
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:722
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:725
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:721
The abstract superclass for all geometry coordinate mutator functions (ST_X, ST_Y,...
Definition: item_geofunc.h:1343
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:1345
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1359
const char * func_name() const override=0
bool m_geographic_only
Whether this item will accept only geographic geometries/SRSs.
Definition: item_geofunc.h:1367
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:1374
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:1396
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1389
Item_func_coordinate_observer(const POS &pos, Item *a, bool geographic_only)
Definition: item_geofunc.h:1376
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:1324
String value
Definition: item_geofunc.h:1325
const char * func_name() const override
Definition: item_geofunc.h:1330
longlong val_int() override
Definition: item_geofunc.cc:4828
Item_func_dimension(const POS &pos, Item *a)
Definition: item_geofunc.h:1328
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1331
Definition: item_geofunc.h:1643
double val_real() override
Definition: item_geofunc.cc:5651
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:1663
const char * func_name() const override
Definition: item_geofunc.h:1670
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:1654
Definition: item_geofunc.h:731
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:737
const char * func_name() const override
Definition: item_geofunc.h:734
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:733
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:1299
longlong val_int() override
Definition: item_geofunc.cc:4765
Item_func_isclosed(const POS &pos, Item *a)
Definition: item_geofunc.h:1301
optimize_type select_optimize(const THD *) override
Definition: item_geofunc.h:1303
const char * func_name() const override
Definition: item_geofunc.h:1304
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1305
Definition: item_geofunc.h:1275
Item_func_isempty(const POS &pos, Item *a)
Definition: item_geofunc.h:1277
optimize_type select_optimize(const THD *) override
Definition: item_geofunc.h:1279
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1281
longlong val_int() override
Definition: item_geofunc.cc:4701
const char * func_name() const override
Definition: item_geofunc.h:1280
Definition: item_geofunc.h:1312
Item_func_isvalid(const POS &pos, Item *a)
Definition: item_geofunc.h:1314
optimize_type select_optimize(const THD *) override
Definition: item_geofunc.h:1316
const char * func_name() const override
Definition: item_geofunc.h:1317
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1318
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: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: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:5871
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:743
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:750
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:745
const char * func_name() const override
Definition: item_geofunc.h:747
Definition: item_geofunc.h:1070
Item_func_mbrcontains(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1072
enum Functype functype() const override
Definition: item_geofunc.h:1074
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:1075
const char * func_name() const override
Definition: item_geofunc.h:1076
Definition: item_geofunc.h:1081
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:1086
Item_func_mbrcoveredby(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1083
enum Functype functype() const override
Definition: item_geofunc.h:1085
const char * func_name() const override
Definition: item_geofunc.h:1087
Definition: item_geofunc.h:1092
enum Functype rev_functype() const override
Definition: item_geofunc.h:1097
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:1094
enum Functype functype() const override
Definition: item_geofunc.h:1096
const char * func_name() const override
Definition: item_geofunc.h:1098
Definition: item_geofunc.h:1103
enum Functype functype() const override
Definition: item_geofunc.h:1107
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:1109
Item_func_mbrdisjoint(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1105
enum Functype rev_functype() const override
Definition: item_geofunc.h:1108
Definition: item_geofunc.h:1114
Item_func_mbrequals(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1116
enum Functype functype() const override
Definition: item_geofunc.h:1118
const char * func_name() const override
Definition: item_geofunc.h:1120
enum Functype rev_functype() const override
Definition: item_geofunc.h:1119
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:1125
enum Functype functype() const override
Definition: item_geofunc.h:1129
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:1130
Item_func_mbrintersects(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1127
const char * func_name() const override
Definition: item_geofunc.h:1131
Definition: item_geofunc.h:1136
enum Functype functype() const override
Definition: item_geofunc.h:1140
Item_func_mbroverlaps(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1138
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:1142
enum Functype rev_functype() const override
Definition: item_geofunc.h:1141
Definition: item_geofunc.h:1147
const char * func_name() const override
Definition: item_geofunc.h:1153
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:1149
enum Functype functype() const override
Definition: item_geofunc.h:1151
enum Functype rev_functype() const override
Definition: item_geofunc.h:1152
Definition: item_geofunc.h:1158
const char * func_name() const override
Definition: item_geofunc.h:1164
Item_func_mbrwithin(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1160
enum Functype functype() const override
Definition: item_geofunc.h:1162
enum Functype rev_functype() const override
Definition: item_geofunc.h:1163
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:1519
longlong val_int() override
Definition: item_geofunc.cc:4866
String value
Definition: item_geofunc.h:1520
const char * func_name() const override
Definition: item_geofunc.h:1525
Item_func_numgeometries(const POS &pos, Item *a)
Definition: item_geofunc.h:1523
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1526
Definition: item_geofunc.h:1534
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1541
Item_func_numinteriorring(const POS &pos, Item *a)
Definition: item_geofunc.h:1538
const char * func_name() const override
Definition: item_geofunc.h:1540
String value
Definition: item_geofunc.h:1535
longlong val_int() override
Definition: item_geofunc.cc:4847
Definition: item_geofunc.h:1549
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1556
longlong val_int() override
Definition: item_geofunc.cc:4885
String value
Definition: item_geofunc.h:1550
const char * func_name() const override
Definition: item_geofunc.h:1555
Item_func_numpoints(const POS &pos, Item *a)
Definition: item_geofunc.h:1553
Definition: item_geofunc.h:785
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:792
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:789
Item_func_point(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:787
This handles the <point> = ST_POINTFROMGEOHASH(<string>, <srid>) function.
Definition: item_geofunc.h:806
const double upper_latitude
The maximum output latitude value when decoding the geohash value.
Definition: item_geofunc.h:809
const double lower_longitude
The minimum output longitude value when decoding the geohash value.
Definition: item_geofunc.h:818
const double lower_latitude
The minimum output latitude value when decoding the geohash value.
Definition: item_geofunc.h:812
String * val_str(String *) override
Definition: item_geofunc.cc:4307
Item_func_pointfromgeohash(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:821
const char * func_name() const override
Definition: item_geofunc.h:827
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:815
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:831
Definition: item_geofunc.h:894
Item_func_spatial_collection(const POS &pos, PT_item_list *list, enum Geometry::wkbType ct, enum Geometry::wkbType it)
Definition: item_geofunc.h:900
enum Geometry::wkbType item_type
Definition: item_geofunc.h:897
String tmp_value
Definition: item_geofunc.h:895
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:908
enum Geometry::wkbType coll_type
Definition: item_geofunc.h:896
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:864
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:866
const char * func_name() const override
Definition: item_geofunc.h:878
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:873
enum Functype decomp_func_n
Definition: item_geofunc.h:865
Definition: item_geofunc.h:836
enum Functype decomp_func
Definition: item_geofunc.h:837
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:838
Item_func_spatial_decomp(const POS &pos, Item *a, Item_func::Functype ft)
Definition: item_geofunc.h:844
String * val_str(String *) override
Definition: item_geofunc.cc:4117
const char * func_name() const override
Definition: item_geofunc.h:848
Definition: item_geofunc.h:930
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_geofunc.h:957
enum Functype rev_functype() const override
Definition: item_geofunc.h:945
enum Functype spatial_rel
Definition: item_geofunc.h:931
enum Functype functype() const override
Definition: item_geofunc.h:944
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:961
Item_func_spatial_mbr_rel(Item *a, Item *b, enum Functype sp_rel)
Definition: item_geofunc.h:934
Item_func_spatial_mbr_rel(const POS &pos, Item *a, Item *b, enum Functype sp_rel)
Definition: item_geofunc.h:938
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:965
Spatial operations.
Definition: item_geofunc.h:1205
Item_func_spatial_operation(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1207
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1211
Definition: item_geofunc.h:971
bool is_null() override
The method allows to determine nullness of a complex expression without fully evaluating it,...
Definition: item_geofunc.h:988
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:983
Item_func_spatial_relation(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:973
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:975
Definition: item_geofunc.h:1564
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1569
double val_real() override
Definition: item_geofunc.cc:5087
const char * func_name() const override
Definition: item_geofunc.h:1568
Item_func_st_area(const POS &pos, Item *a)
Definition: item_geofunc.h:1566
Definition: item_geofunc.h:1577
Item_func_st_buffer(const POS &pos, PT_item_list *ilist)
Definition: item_geofunc.h:1582
String * val_str(String *) override
Definition: item_geofunc.cc:5138
const char * func_name() const override
Definition: item_geofunc.h:1586
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:1587
Definition: item_geofunc.h:1015
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:1021
enum Functype rev_functype() const override
Definition: item_geofunc.h:1020
Item_func_st_contains(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1017
enum Functype functype() const override
Definition: item_geofunc.h:1019
Definition: item_geofunc.h:1026
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:1031
enum Functype functype() const override
Definition: item_geofunc.h:1030
const char * func_name() const override
Definition: item_geofunc.h:1032
Item_func_st_crosses(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1028
Definition: item_geofunc.h:1217
String * val_str(String *) override
Definition: item_geofunc.cc:5586
Item_func_st_difference(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1219
const char * func_name() const override
Definition: item_geofunc.h:1222
Definition: item_geofunc.h:1037
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:1041
Item_func_st_disjoint(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1039
enum Functype rev_functype() const override
Definition: item_geofunc.h:1042
const char * func_name() const override
Definition: item_geofunc.h:1043
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:5718
Definition: item_geofunc.h:1048
enum Functype rev_functype() const override
Definition: item_geofunc.h:1053
enum Functype functype() const override
Definition: item_geofunc.h:1052
const char * func_name() const override
Definition: item_geofunc.h:1054
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:1050
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:5458
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:5522
Definition: item_geofunc.h:1225
String * val_str(String *) override
Definition: item_geofunc.cc:5815
const char * func_name() const override
Definition: item_geofunc.h:1230
Item_func_st_intersection(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1227
Definition: item_geofunc.h:1059
enum Functype functype() const override
Definition: item_geofunc.h:1063
enum Functype rev_functype() const override
Definition: item_geofunc.h:1064
Item_func_st_intersects(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1061
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:1065
Definition: item_geofunc.h:1288
longlong val_int() override
Definition: item_geofunc.cc:4719
const char * func_name() const override
Definition: item_geofunc.h:1292
Item_func_st_issimple(const POS &pos, Item *a)
Definition: item_geofunc.h:1290
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1293
This class implements the two-parameter ST_Latitude function which sets the latitude of a geographic ...
Definition: item_geofunc.h:1402
Item_func_st_latitude_mutator(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1404
const char * func_name() const override
Definition: item_geofunc.h:1408
int coordinate_number(const dd::Spatial_reference_system *) const override
Returns the coordinate number accessed by this item.
Definition: item_geofunc.h:1409
This class implements the one-parameter ST_Latitude function which returns the latitude coordinate of...
Definition: item_geofunc.h:1417
Item_func_st_latitude_observer(const POS &pos, Item *a)
Definition: item_geofunc.h:1419
const char * func_name() const override
Definition: item_geofunc.h:1423
int coordinate_number(const dd::Spatial_reference_system *) const override
Returns the coordinate number accessed by this item.
Definition: item_geofunc.h:1424
Definition: item_geofunc.h:1596
const char * func_name() const override
Definition: item_geofunc.h:1603
String value
Definition: item_geofunc.h:1597
Item_func_st_length(const POS &pos, PT_item_list *ilist)
Definition: item_geofunc.h:1600
double val_real() override
Definition: item_geofunc.cc:5317
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1604
This class implements the two-parameter ST_Longitude function which sets the longitude coordinate of ...
Definition: item_geofunc.h:1432
Item_func_st_longitude_mutator(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1434
const char * func_name() const override
Definition: item_geofunc.h:1438
int coordinate_number(const dd::Spatial_reference_system *) const override
Returns the coordinate number accessed by this item.
Definition: item_geofunc.h:1439
This class implements the one-parameter ST_Longitude function which returns the longitude coordinate ...
Definition: item_geofunc.h:1447
int coordinate_number(const dd::Spatial_reference_system *) const override
Returns the coordinate number accessed by this item.
Definition: item_geofunc.h:1454
Item_func_st_longitude_observer(const POS &pos, Item *a)
Definition: item_geofunc.h:1449
const char * func_name() const override
Definition: item_geofunc.h:1453
Definition: item_geofunc.h:1169
Item_func_st_overlaps(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1171
enum Functype functype() const override
Definition: item_geofunc.h:1173
enum Functype rev_functype() const override
Definition: item_geofunc.h:1174
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:1175
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:771
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:775
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:773
const char * func_name() const override
Definition: item_geofunc.h:782
This class implements the two-parameter ST_SRID function which sets the SRID of a geometry.
Definition: item_geofunc.h:1615
String * val_str(String *) override
Definition: item_geofunc.cc:5412
const char * func_name() const override
Definition: item_geofunc.h:1620
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1621
Item_func_st_srid_mutator(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1617
This class implements the one-parameter ST_SRID function which returns the SRID of a geometry.
Definition: item_geofunc.h:1630
Item_func_st_srid_observer(const POS &pos, Item *a)
Definition: item_geofunc.h:1632
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1635
const char * func_name() const override
Definition: item_geofunc.h:1634
longlong val_int() override
Definition: item_geofunc.cc:5372
Definition: item_geofunc.h:1233
String * val_str(String *) override
Definition: item_geofunc.cc:5942
Item_func_st_symdifference(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1235
const char * func_name() const override
Definition: item_geofunc.h:1238
Definition: item_geofunc.h:1180
enum Functype functype() const override
Definition: item_geofunc.h:1184
Item_func_st_touches(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1182
enum Functype rev_functype() const override
Definition: item_geofunc.h:1185
const char * func_name() const override
Definition: item_geofunc.h:1186
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:1241
Item_func_st_union(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1243
String * val_str(String *) override
Definition: item_geofunc.cc:4636
const char * func_name() const override
Definition: item_geofunc.h:1246
Definition: item_geofunc.h:1191
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:1196
enum Functype functype() const override
Definition: item_geofunc.h:1195
Item_func_st_within(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1193
const char * func_name() const override
Definition: item_geofunc.h:1197
This class implements the two-parameter ST_X function which sets the X coordinate of a point.
Definition: item_geofunc.h:1461
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:1463
const char * func_name() const override
Definition: item_geofunc.h:1467
This class implements the one-parameter ST_X function which returns the X coordinate of a point.
Definition: item_geofunc.h:1473
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:1475
const char * func_name() const override
Definition: item_geofunc.h:1479
This class implements the two-parameter ST_Y function which sets the Y coordinate of a point.
Definition: item_geofunc.h:1485
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:1491
Item_func_st_y_mutator(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1487
This class implements the one-parameter ST_Y function which returns the Y coordinate of a point.
Definition: item_geofunc.h:1497
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:1503
Item_func_st_y_observer(const POS &pos, Item *a)
Definition: item_geofunc.h:1499
Definition: item_geofunc.h:1507
const char * func_name() const override
Definition: item_geofunc.h:1515
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1508
String * val_str(String *) override
Definition: item_geofunc.cc:5054
Item_func_swap_xy(const POS &pos, Item *a)
Definition: item_geofunc.h:1514
Definition: item_geofunc.h:756
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:762
String * val_str(String *) override
Definition: item_geofunc.cc:3381
const char * func_name() const override
Definition: item_geofunc.h:761
Item_func_validate(const POS &pos, Item *a)
Definition: item_geofunc.h:760
String arg_val
Definition: item_geofunc.h:757
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: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:6075
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:7014
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:6959
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:7009
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:6317
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:6196
Field::geometry_type get_geometry_type() const override
Definition: item_geofunc.cc:6313
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:6650
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:6787
Field::geometry_type get_geometry_type() const override
Definition: item_geofunc.cc:6783
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:6643
Field::geometry_type get_geometry_type() const override
Definition: item_geofunc.cc:6639
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:6549
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:6952
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:6794
Field::geometry_type get_geometry_type() const override
Definition: item_geofunc.cc:6948
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:6123
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:6189
Field::geometry_type get_geometry_type() const override
Definition: item_geofunc.cc:6185
Definition: item_geofunc.h:1836
Field::geometry_type get_geometry_type() const override
Definition: item_geofunc.cc:6538
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:6542
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:6324
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:3473
static const CHARSET_INFO * default_charset()
Definition: item.cc:1668
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:3461
bool null_value
True if item is null.
Definition: item.h:3498
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:3393
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:1057
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