1#ifndef ITEM_GEOFUNC_INCLUDED
2#define ITEM_GEOFUNC_INCLUDED
38#include "mysqld_error.h"
67class Spatial_reference_system;
325 const char *
func_name()
const override {
return "st_astext"; }
335 const char *
func_name()
const override {
return "st_aswkb"; }
351 const char *
func_name()
const override {
return "st_geometrytype"; }
401 const char *
func_name()
const override {
return "st_geomfromgeojson"; }
408 bool is_parent_featurecollection,
Geometry **geometry);
411 bool is_parent_featurecollection,
419 const char *member_name);
516 Item *maxdecimaldigits)
529 const char *
func_name()
const override {
return "st_asgeojson"; }
601 const char *
func_name()
const override {
return "st_geohash"; }
603 void encode_bit(
double *upper_value,
double *lower_value,
double target_value,
604 char *char_value,
int bit_number);
650 bool start_on_even_bit_arg)
663 double *result_longitude);
665 double lower_limit,
double upper_limit);
679 const char *
func_name()
const override {
return "ST_LATFROMGEOHASH"; }
692 const char *
func_name()
const override {
return "ST_LONGFROMGEOHASH"; }
698 template <
typename Coordsys>
703 const char *
func_name()
const override {
return "st_centroid"; }
715 template <
typename Coordsys>
720 const char *
func_name()
const override {
return "st_convexhull"; }
732 const char *
func_name()
const override {
return "st_envelope"; }
745 const char *
func_name()
const override {
return "st_makeenvelope"; }
759 const char *
func_name()
const override {
return "st_validate"; }
780 const char *
func_name()
const override {
return "st_simplify"; }
787 const char *
func_name()
const override {
return "point"; }
825 const char *
func_name()
const override {
return "st_pointfromgeohash"; }
849 return "st_startpoint";
851 return "st_endpoint";
853 return "st_exteriorring";
856 return "spatial_decomp_unknown";
881 return "st_geometryn";
883 return "st_interiorringn";
886 return "spatial_decomp_n_unknown";
909 for (
unsigned int i = 0; i <
arg_count; ++i) {
914 my_error(ER_ILLEGAL_VALUE_FOR_TYPE,
MYF(0),
"non geometric",
str.ptr());
1010 bool *
result,
bool *
null) = 0;
1019 const char *
func_name()
const override {
return "st_contains"; }
1030 const char *
func_name()
const override {
return "st_crosses"; }
1041 const char *
func_name()
const override {
return "st_disjoint"; }
1052 const char *
func_name()
const override {
return "st_equals"; }
1063 const char *
func_name()
const override {
return "st_intersects"; }
1074 const char *
func_name()
const override {
return "mbrcontains"; }
1085 const char *
func_name()
const override {
return "mbrcoveredby"; }
1096 const char *
func_name()
const override {
return "mbrcovers"; }
1107 const char *
func_name()
const override {
return "mbrdisjoint"; }
1118 const char *
func_name()
const override {
return "mbrequals"; }
1129 const char *
func_name()
const override {
return "mbrintersects"; }
1140 const char *
func_name()
const override {
return "mbroverlaps"; }
1151 const char *
func_name()
const override {
return "mbrtouches"; }
1162 const char *
func_name()
const override {
return "mbrwithin"; }
1173 const char *
func_name()
const override {
return "st_overlaps"; }
1184 const char *
func_name()
const override {
return "st_touches"; }
1195 const char *
func_name()
const override {
return "st_within"; }
1220 const char *
func_name()
const override {
return "st_difference"; }
1228 const char *
func_name()
const override {
return "st_intersection"; }
1236 const char *
func_name()
const override {
return "st_symdifference"; }
1244 const char *
func_name()
const override {
return "st_union"; }
1268 const char *
func_name()
const override {
return "st_buffer_strategy"; }
1278 const char *
func_name()
const override {
return "st_isempty"; }
1290 const char *
func_name()
const override {
return "st_issimple"; }
1302 const char *
func_name()
const override {
return "st_isclosed"; }
1315 const char *
func_name()
const override {
return "st_isvalid"; }
1328 const char *
func_name()
const override {
return "st_dimension"; }
1344 bool geographic_only)
1406 const char *
func_name()
const override {
return "st_latitude"; }
1421 const char *
func_name()
const override {
return "st_latitude"; }
1436 const char *
func_name()
const override {
return "st_longitude"; }
1451 const char *
func_name()
const override {
return "st_longitude"; }
1513 const char *
func_name()
const override {
return "st_swapxy"; }
1523 const char *
func_name()
const override {
return "st_numgeometries"; }
1538 const char *
func_name()
const override {
return "st_numinteriorrings"; }
1553 const char *
func_name()
const override {
return "st_numpoints"; }
1566 const char *
func_name()
const override {
return "st_area"; }
1584 const char *
func_name()
const override {
return "st_buffer"; }
1601 const char *
func_name()
const override {
return "st_length"; }
1618 const char *
func_name()
const override {
return "st_srid"; }
1632 const char *
func_name()
const override {
return "st_srid"; }
1644 template <
typename Coordsys,
typename BG_geometry>
1649 template <
typename Coordsys>
1668 const char *
func_name()
const override {
return "st_distance"; }
1676 const char *
func_name()
const override {
return "st_frechetdistance"; }
1690 const char *
func_name()
const override {
return "st_hausdorffdistance"; }
1704 const char *
func_name()
const override {
return "st_distance_sphere"; }
1735 const char *
func_name()
const override {
return "st_lineinterpolatepoint"; }
1746 const char *
func_name()
const override {
return "st_lineinterpolatepoints"; }
1757 const char *
func_name()
const override {
return "st_pointatdistance"; }
1771 const char *
func_name()
const override {
return "st_transform"; }
1801 std::unique_ptr<gis::Geometry> *source_geometry,
1802 std::unique_ptr<gis::Geometry> *target_geometry)
const = 0;
1812 const char *
func_name()
const override {
return "cast_as_point"; }
1815 std::unique_ptr<gis::Geometry> *source_geometry,
1816 std::unique_ptr<gis::Geometry> *target_geometry)
const override;
1826 const char *
func_name()
const override {
return "cast_as_linestring"; }
1829 std::unique_ptr<gis::Geometry> *source_geometry,
1830 std::unique_ptr<gis::Geometry> *target_geometry)
const override;
1840 const char *
func_name()
const override {
return "cast_as_polygon"; }
1843 std::unique_ptr<gis::Geometry> *source_geometry,
1844 std::unique_ptr<gis::Geometry> *target_geometry)
const override;
1854 const char *
func_name()
const override {
return "cast_as_multipoint"; }
1857 std::unique_ptr<gis::Geometry> *source_geometry,
1858 std::unique_ptr<gis::Geometry> *target_geometry)
const override;
1868 const char *
func_name()
const override {
return "cast_as_multilinestring"; }
1871 std::unique_ptr<gis::Geometry> *source_geometry,
1872 std::unique_ptr<gis::Geometry> *target_geometry)
const override;
1882 const char *
func_name()
const override {
return "cast_as_multipolygon"; }
1885 std::unique_ptr<gis::Geometry> *source_geometry,
1886 std::unique_ptr<gis::Geometry> *target_geometry)
const override;
1898 return "cast_as_geometrycollection";
1902 std::unique_ptr<gis::Geometry> *source_geometry,
1903 std::unique_ptr<gis::Geometry> *target_geometry)
const override;
Kerberos Client Authentication nullptr
Definition: auth_kerberos_client_plugin.cc:250
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:140
Geometry_list & get_geometries()
Definition: item_geofunc.h:167
void set_comp_no_overlapped(bool b)
Definition: item_geofunc.h:155
size_t m_num_isolated
Definition: item_geofunc.h:143
std::vector< Geometry * > Geometry_list
Definition: item_geofunc.h:149
gis::srid_t get_srid() const
Definition: item_geofunc.h:157
const Geometry_list & get_geometries() const
Definition: item_geofunc.h:165
gis::srid_t m_srid
Definition: item_geofunc.h:142
Geometry * store(const Geometry *geo)
Store a geometry of GEOMETRY format into this collection.
Definition: item_geofunc.cc:4610
Inplace_vector< String > m_geosdata
Definition: item_geofunc.h:146
bool fill(const Geometry *geo, bool break_multi_geom=false)
Definition: item_geofunc.h:161
bool store_geometry(const Geometry *geo, bool break_multi_geom)
Store a Geometry object into this collection.
Definition: item_geofunc.cc:4552
size_t num_isolated() const
Definition: item_geofunc.h:171
bool comp_no_overlapped
Definition: item_geofunc.h:141
BG_geometry_collection()
Definition: item_geofunc.cc:4535
bool is_comp_no_overlapped() const
Definition: item_geofunc.h:153
std::vector< Geometry * > m_geos
Definition: item_geofunc.h:144
Inplace_vector< Geometry_buffer > m_geobufs
Definition: item_geofunc.h:145
bool all_isolated() const
Definition: item_geofunc.h:169
void set_srid(gis::srid_t srid)
Definition: item_geofunc.h:159
We have to hold result buffers in functions that return a GEOMETRY string, because such a function's ...
Definition: item_geofunc.h:81
~BG_result_buf_mgr()
Definition: item_geofunc.h:87
void add_buffer(void *buf)
Definition: item_geofunc.h:92
void * bg_result_buf
Definition: item_geofunc.h:124
void set_result_buffer(void *buf)
Definition: item_geofunc.h:114
BG_result_buf_mgr()
Definition: item_geofunc.h:85
void free_intermediate_result_buffers()
Definition: item_geofunc.h:100
void forget_buffer(void *buf)
Definition: item_geofunc.h:94
Prealloced_buffers bg_results
Definition: item_geofunc.h:130
void free_result_buffer()
Definition: item_geofunc.h:109
Prealloced_array< void *, 64 > Prealloced_buffers
Definition: item_geofunc.h:82
static constexpr size_t MAX_LONG_BLOB_WIDTH
Definition: field.h:738
geometry_type
Definition: field.h:719
@ GEOM_POINT
Definition: field.h:721
Definition: spatial.h:212
wkbType
Definition: spatial.h:289
Definition: spatial.h:2098
Definition: spatial.h:1151
Definition: spatial.h:2186
Utility container class to store elements stably and scalably.
Definition: inplace_vector.h:59
Base class for functions that usually take two arguments, which are possibly strings,...
Definition: item_cmpfunc.h:621
Definition: item_cmpfunc.h:292
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_cmpfunc.h:326
This class handles the following function:
Definition: item_geofunc.h:490
bool val_json(Json_wrapper *wr) override
Create a GeoJSON object, according to GeoJSON specification revision 1.0.
Definition: item_geofunc.cc:2364
Item_func_as_geojson(THD *thd, const POS &pos, Item *geometry, Item *maxdecimaldigits)
Definition: item_geofunc.h:515
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:500
bool parse_maxdecimaldigits_argument()
Parse the value in maxdecimaldigits argument.
Definition: item_geofunc.cc:2454
Item_func_as_geojson(THD *thd, const POS &pos, Item *geometry, Item *maxdecimaldigits, Item *options)
Definition: item_geofunc.h:521
int m_max_decimal_digits
Maximum number of decimal digits in printed coordinates.
Definition: item_geofunc.h:493
bool m_add_bounding_box
If true, the output GeoJSON has a bounding box for each GEOMETRY.
Definition: item_geofunc.h:495
const char * func_name() const override
Definition: item_geofunc.h:529
Item_func_as_geojson(THD *thd, const POS &pos, Item *geometry)
Definition: item_geofunc.h:510
bool parse_options_argument()
Parse the value in options argument.
Definition: item_geofunc.cc:2417
uint32 m_geometry_srid
The SRID found in the input GEOMETRY.
Definition: item_geofunc.h:507
bool fix_fields(THD *thd, Item **ref) override
Perform type checking on all arguments.
Definition: item_geofunc.cc:2487
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:505
Definition: item_geofunc.h:330
Item_func_as_wkb(const POS &pos, Item *a)
Definition: item_geofunc.h:332
const char * func_name() const override
Definition: item_geofunc.h:335
String * val_str(String *) override
Definition: item_geofunc.cc:3258
Item_func_as_wkb(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:333
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:337
Definition: item_geofunc.h:320
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.cc:3249
String * val_str_ascii(String *) override
Definition: item_geofunc.cc:3139
Item_func_as_wkt(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:323
const char * func_name() const override
Definition: item_geofunc.h:325
Item_func_as_wkt(const POS &pos, Item *a)
Definition: item_geofunc.h:322
Definition: item_geofunc.h:1247
char tmp_buffer[16]
Definition: item_geofunc.h:1265
enum_buffer_strategies
Definition: item_geofunc.h:1249
@ point_circle
Definition: item_geofunc.h:1255
@ point_square
Definition: item_geofunc.h:1256
@ join_miter
Definition: item_geofunc.h:1254
@ max_strategy
Definition: item_geofunc.h:1257
@ end_flat
Definition: item_geofunc.h:1252
@ invalid_strategy
Definition: item_geofunc.h:1250
@ end_round
Definition: item_geofunc.h:1251
@ join_round
Definition: item_geofunc.h:1253
friend class Item_func_buffer
Definition: item_geofunc.h:1263
String tmp_value
Definition: item_geofunc.h:1264
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:1268
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:695
const char * func_name() const override
Definition: item_geofunc.h:703
bool bg_centroid(const Geometry *geom, String *ptwkb)
Definition: item_geofunc.cc:3829
String * val_str(String *) override
Definition: item_geofunc.cc:3612
Item_func_centroid(const POS &pos, Item *a)
Definition: item_geofunc.h:702
BG_result_buf_mgr bg_resbuf_mgr
Definition: item_geofunc.h:696
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:706
Field::geometry_type get_geometry_type() const override
Definition: item_geofunc.cc:3608
Definition: item_geofunc.h:712
BG_result_buf_mgr bg_resbuf_mgr
Definition: item_geofunc.h:713
bool bg_convex_hull(const Geometry *geom, String *wkb)
Definition: item_geofunc.cc:3935
const char * func_name() const override
Definition: item_geofunc.h:720
String * val_str(String *) override
Definition: item_geofunc.cc:3899
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:723
Field::geometry_type get_geometry_type() const override
Definition: item_geofunc.cc:3895
Item_func_convex_hull(const POS &pos, Item *a)
Definition: item_geofunc.h:719
The abstract superclass for all geometry coordinate mutator functions (ST_X, ST_Y,...
Definition: item_geofunc.h:1341
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:1343
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1357
const char * func_name() const override=0
bool m_geographic_only
Whether this item will accept only geographic geometries/SRSs.
Definition: item_geofunc.h:1365
String * val_str(String *) override
Definition: item_geofunc.cc:4903
The abstract superclass for all geometry coordinate oberserver functions (ST_X, ST_Y,...
Definition: item_geofunc.h:1372
double val_real() override
Definition: item_geofunc.cc:4975
bool m_geographic_only
Whether this item will accept only geographic geometries/SRSs.
Definition: item_geofunc.h:1394
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1387
Item_func_coordinate_observer(const POS &pos, Item *a, bool geographic_only)
Definition: item_geofunc.h:1374
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:1322
String value
Definition: item_geofunc.h:1323
const char * func_name() const override
Definition: item_geofunc.h:1328
longlong val_int() override
Definition: item_geofunc.cc:4827
Item_func_dimension(const POS &pos, Item *a)
Definition: item_geofunc.h:1326
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1329
Definition: item_geofunc.h:1641
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:1661
const char * func_name() const override
Definition: item_geofunc.h:1668
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:1652
Definition: item_geofunc.h:729
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:735
const char * func_name() const override
Definition: item_geofunc.h:732
Field::geometry_type get_geometry_type() const override
Definition: item_geofunc.cc:3571
String * val_str(String *) override
Definition: item_geofunc.cc:3575
Item_func_envelope(const POS &pos, Item *a)
Definition: item_geofunc.h:731
This class handles two forms of the same function:
Definition: item_geofunc.h:543
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:2866
uint geohash_max_output_length
The maximum output length of the geohash, supplied by the user.
Definition: item_geofunc.h:550
Item_func_geohash(const POS &pos, Item *longitude, Item *latitude, Item *length)
Definition: item_geofunc.h:590
String * val_str_ascii(String *) override
Encodes a pair of longitude and latitude values into a geohash string.
Definition: item_geofunc.cc:2672
double longitude
The longitude argument supplied by the user (directly or by a POINT).
Definition: item_geofunc.h:548
bool fill_and_check_fields()
Populate member variables with values from arguments.
Definition: item_geofunc.cc:2580
const double min_latitude
The minimum input latitude.
Definition: item_geofunc.h:562
bool fix_fields(THD *thd, Item **ref) override
Here we check for valid types.
Definition: item_geofunc.cc:2739
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:2841
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.cc:2729
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:2530
const uint upper_limit_output_length
The absolute upper limit of geohash output length.
Definition: item_geofunc.h:580
const double min_longitude
The minimum input longitude.
Definition: item_geofunc.h:574
double latitude
The latitude argument supplied by the user (directly or by a POINT).
Definition: item_geofunc.h:546
const double max_latitude
The maximum input latitude.
Definition: item_geofunc.h:556
const double max_longitude
The maximum input longitude.
Definition: item_geofunc.h:568
const char * func_name() const override
Definition: item_geofunc.h:601
Item_func_geohash(const POS &pos, Item *point, Item *length)
Definition: item_geofunc.h:583
Definition: item_geofunc.h:198
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_geofunc.cc:315
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:251
Item_func_geometry_from_text(const POS &pos, Item *a, Item *srid, Item *option, Functype functype)
Definition: item_geofunc.h:244
Functype
Definition: item_geofunc.h:200
@ MULTILINESTRINGFROMTEXT
@ GEOMETRYCOLLECTIONFROMTEXT
Functype m_functype
Definition: item_geofunc.h:221
Item_func_geometry_from_text(const POS &pos, Item *a, Functype functype)
Definition: item_geofunc.h:239
Geometry::wkbType allowed_wkb_type() const
Get the type of geometry that this Item can return.
Definition: item_geofunc.cc:364
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:422
const char * func_name() const override
Definition: item_geofunc.cc:324
Item_geometry_func super
Definition: item_geofunc.h:220
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:396
Item_func_geometry_from_text(const POS &pos, Item *a, Item *srid, Functype functype)
Definition: item_geofunc.h:241
Definition: item_geofunc.h:259
Item_geometry_func super
Definition: item_geofunc.h:280
Functype
Definition: item_geofunc.h:261
@ GEOMETRYCOLLECTIONFROMWKB
Item_func_geometry_from_wkb(const POS &pos, Item *a, Item *srid, Item *option, Functype functype)
Definition: item_geofunc.h:311
Item_func_geometry_from_wkb(const POS &pos, Item *a, Item *srid, Functype functype)
Definition: item_geofunc.h:308
String tmp_value
Definition: item_geofunc.h:281
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_geofunc.cc:575
Functype m_functype
Definition: item_geofunc.h:282
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:679
Item_func_geometry_from_wkb(const POS &pos, Item *a, Functype functype)
Definition: item_geofunc.h:306
const char * func_name() const override
Definition: item_geofunc.cc:584
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:298
Geometry::wkbType allowed_wkb_type() const
Get the type of geometry that this Item can return.
Definition: item_geofunc.cc:622
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:653
Definition: item_geofunc.h:346
Item_func_geometry_type(const POS &pos, Item *a)
Definition: item_geofunc.h:348
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:352
const char * func_name() const override
Definition: item_geofunc.h:351
String * val_str_ascii(String *) override
Definition: item_geofunc.cc:3365
This handles one function:
Definition: item_geofunc.h:374
bool m_toplevel
True if we're currently parsing the top-level object.
Definition: item_geofunc.h:466
static const char * TYPE_MEMBER
Definition of various string constants used for writing and reading GeoJSON data.
Definition: item_geofunc.h:421
static const char * FEATURECOLLECTION_TYPE
Definition: item_geofunc.h:441
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:1065
static const char * SHORT_EPSG_PREFIX
Definition: item_geofunc.h:430
static const char * CRS_NAME_MEMBER
Definition: item_geofunc.h:428
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:1783
static const char * LINESTRING_TYPE
Definition: item_geofunc.h:435
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:1353
longlong m_srid_found_in_document
The SRID value of the document CRS, if one is found.
Definition: item_geofunc.h:456
double m_min_latitude
The minimum allowed latitude value (inclusive).
Definition: item_geofunc.h:462
static const char * MULTIPOLYGON_TYPE
Definition: item_geofunc.h:438
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:1662
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:1036
bool m_user_provided_srid
Is set to true if user provided a SRID as an argument.
Definition: item_geofunc.h:449
static const char * GEOMETRIES_MEMBER
Definition: item_geofunc.h:426
double m_min_longitude
The minimum allowed longitude value (non-inclusive).
Definition: item_geofunc.h:458
static const char * LONG_EPSG_PREFIX
Definition: item_geofunc.h:431
enum_handle_coordinate_dimension m_handle_coordinate_dimension
How higher coordinate dimensions than currently supported should be handled.
Definition: item_geofunc.h:447
static const char * COORDINATES_MEMBER
Definition: item_geofunc.h:427
static const char * FEATURE_TYPE
Definition: item_geofunc.h:440
String * val_str(String *) override
<geometry> = ST_GEOMFROMGEOJSON(<string>[, <options>[, <srid>]])
Definition: item_geofunc.cc:864
gis::srid_t m_user_srid
The SRID user provided as an argument.
Definition: item_geofunc.h:451
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:1515
bool get_positions(const Json_array *coordinates, Gis_point *point)
Parse an array of coordinates to a Gis_point.
Definition: item_geofunc.cc:1253
const char * func_name() const override
Definition: item_geofunc.h:401
double m_max_longitude
The maximum allowed longitude (inclusive).
Definition: item_geofunc.h:460
double m_max_latitude
The maximum allowed latitude (inclusive).
Definition: item_geofunc.h:464
Item_func_geomfromgeojson(const POS &pos, Item *json_string, Item *options)
Definition: item_geofunc.h:391
static const char * CRS84_URN
Definition: item_geofunc.h:432
Geometry::wkbType get_wkbtype(const char *typestring)
Converts GeoJSON type string to a wkbType.
Definition: item_geofunc.cc:1625
static bool check_argument_valid_integer(Item *argument)
Checks if the supplied argument is a valid integer type.
Definition: item_geofunc.cc:1836
bool get_polygon(const Json_array *data_array, Gis_polygon *polygon)
Create a Gis_polygon from a JSON array.
Definition: item_geofunc.cc:1547
static const char * MULTIPOINT_TYPE
Definition: item_geofunc.h:434
Item_func_geomfromgeojson(const POS &pos, Item *json_string, Item *options, Item *srid)
Definition: item_geofunc.h:395
static const char * POINT_TYPE
Definition: item_geofunc.h:433
static const char * CRS_MEMBER
Definition: item_geofunc.h:422
bool fix_fields(THD *, Item **ref) override
Do type checking on all provided arguments.
Definition: item_geofunc.cc:1859
static const char * NAMED_CRS
Definition: item_geofunc.h:429
static const char * PROPERTIES_MEMBER
Definition: item_geofunc.h:424
Item_func_geomfromgeojson(const POS &pos, Item *json_string)
Definition: item_geofunc.h:386
static const char * GEOMETRYCOLLECTION_TYPE
Definition: item_geofunc.h:439
enum_handle_coordinate_dimension
Describing how coordinate dimensions higher than supported in MySQL should be handled.
Definition: item_geofunc.h:380
@ strip_now_reject_future
Definition: item_geofunc.h:383
@ reject_document
Definition: item_geofunc.h:381
@ strip_now_accept_future
Definition: item_geofunc.h:382
@ strip_now_strip_future
Definition: item_geofunc.h:384
static const char * FEATURES_MEMBER
Definition: item_geofunc.h:425
static const char * POLYGON_TYPE
Definition: item_geofunc.h:437
static const char * MULTILINESTRING_TYPE
Definition: item_geofunc.h:436
static const char * GEOMETRY_MEMBER
Definition: item_geofunc.h:423
Definition: item_geofunc.h:1297
longlong val_int() override
Definition: item_geofunc.cc:4764
Item_func_isclosed(const POS &pos, Item *a)
Definition: item_geofunc.h:1299
optimize_type select_optimize(const THD *) override
Definition: item_geofunc.h:1301
const char * func_name() const override
Definition: item_geofunc.h:1302
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1303
Definition: item_geofunc.h:1273
Item_func_isempty(const POS &pos, Item *a)
Definition: item_geofunc.h:1275
optimize_type select_optimize(const THD *) override
Definition: item_geofunc.h:1277
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1279
longlong val_int() override
Definition: item_geofunc.cc:4700
const char * func_name() const override
Definition: item_geofunc.h:1278
Definition: item_geofunc.h:1310
Item_func_isvalid(const POS &pos, Item *a)
Definition: item_geofunc.h:1312
optimize_type select_optimize(const THD *) override
Definition: item_geofunc.h:1314
const char * func_name() const override
Definition: item_geofunc.h:1315
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1316
longlong val_int() override
Definition: item_geofunc.cc:4786
This handles the <double> = ST_LATFROMGEOHASH(<string>) function.
Definition: item_geofunc.h:673
const char * func_name() const override
Definition: item_geofunc.h:679
Item_func_latfromgeohash(const POS &pos, Item *a)
Definition: item_geofunc.h:675
This is a superclass for Item_func_longfromgeohash and Item_func_latfromgeohash, since they share alm...
Definition: item_geofunc.h:613
const double lower_latitude
The lower limit for latitude output value.
Definition: item_geofunc.h:619
bool fix_fields(THD *thd, Item **ref) override
Definition: item_geofunc.cc:2887
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.cc:2881
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:647
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:644
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:2952
const double upper_longitude
The upper limit for longitude output value.
Definition: item_geofunc.h:637
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:3066
static bool check_geohash_argument_valid_type(Item *item)
Checks if geohash arguments is of valid type.
Definition: item_geofunc.cc:2911
const double upper_latitude
The upper limit for latitude output value.
Definition: item_geofunc.h:625
const double lower_longitude
The lower limit for longitude output value.
Definition: item_geofunc.h:631
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:3109
Definition: item_geofunc.h:1713
Item_func_lineinterpolate(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1715
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1722
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:1729
bool isFractionalDistance() const override
Definition: item_geofunc.h:1736
Item_func_lineinterpolatepoint(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1731
const char * func_name() const override
Definition: item_geofunc.h:1735
bool returnMultiplePoints() const override
Definition: item_geofunc.h:1737
Definition: item_geofunc.h:1740
bool isFractionalDistance() const override
Definition: item_geofunc.h:1747
const char * func_name() const override
Definition: item_geofunc.h:1746
Item_func_lineinterpolatepoints(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1742
bool returnMultiplePoints() const override
Definition: item_geofunc.h:1748
This handles the <double> = ST_LONGFROMGEOHASH(<string>) function.
Definition: item_geofunc.h:686
Item_func_longfromgeohash(const POS &pos, Item *a)
Definition: item_geofunc.h:688
const char * func_name() const override
Definition: item_geofunc.h:692
Definition: item_geofunc.h:741
String * val_str(String *) override
Definition: item_geofunc.cc:3430
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:748
Field::geometry_type get_geometry_type() const override
Definition: item_geofunc.cc:3426
Item_func_make_envelope(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:743
const char * func_name() const override
Definition: item_geofunc.h:745
Definition: item_geofunc.h:1068
Item_func_mbrcontains(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1070
enum Functype functype() const override
Definition: item_geofunc.h:1072
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:158
enum Functype rev_functype() const override
Definition: item_geofunc.h:1073
const char * func_name() const override
Definition: item_geofunc.h:1074
Definition: item_geofunc.h:1079
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:165
enum Functype rev_functype() const override
Definition: item_geofunc.h:1084
Item_func_mbrcoveredby(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1081
enum Functype functype() const override
Definition: item_geofunc.h:1083
const char * func_name() const override
Definition: item_geofunc.h:1085
Definition: item_geofunc.h:1090
enum Functype rev_functype() const override
Definition: item_geofunc.h:1095
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:172
Item_func_mbrcovers(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1092
enum Functype functype() const override
Definition: item_geofunc.h:1094
const char * func_name() const override
Definition: item_geofunc.h:1096
Definition: item_geofunc.h:1101
enum Functype functype() const override
Definition: item_geofunc.h:1105
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:178
const char * func_name() const override
Definition: item_geofunc.h:1107
Item_func_mbrdisjoint(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1103
enum Functype rev_functype() const override
Definition: item_geofunc.h:1106
Definition: item_geofunc.h:1112
Item_func_mbrequals(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1114
enum Functype functype() const override
Definition: item_geofunc.h:1116
const char * func_name() const override
Definition: item_geofunc.h:1118
enum Functype rev_functype() const override
Definition: item_geofunc.h:1117
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:185
Definition: item_geofunc.h:1123
enum Functype functype() const override
Definition: item_geofunc.h:1127
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:191
enum Functype rev_functype() const override
Definition: item_geofunc.h:1128
Item_func_mbrintersects(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1125
const char * func_name() const override
Definition: item_geofunc.h:1129
Definition: item_geofunc.h:1134
enum Functype functype() const override
Definition: item_geofunc.h:1138
Item_func_mbroverlaps(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1136
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:198
const char * func_name() const override
Definition: item_geofunc.h:1140
enum Functype rev_functype() const override
Definition: item_geofunc.h:1139
Definition: item_geofunc.h:1145
const char * func_name() const override
Definition: item_geofunc.h:1151
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:205
Item_func_mbrtouches(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1147
enum Functype functype() const override
Definition: item_geofunc.h:1149
enum Functype rev_functype() const override
Definition: item_geofunc.h:1150
Definition: item_geofunc.h:1156
const char * func_name() const override
Definition: item_geofunc.h:1162
Item_func_mbrwithin(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1158
enum Functype functype() const override
Definition: item_geofunc.h:1160
enum Functype rev_functype() const override
Definition: item_geofunc.h:1161
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:212
Definition: item_geofunc.h:1517
longlong val_int() override
Definition: item_geofunc.cc:4865
String value
Definition: item_geofunc.h:1518
const char * func_name() const override
Definition: item_geofunc.h:1523
Item_func_numgeometries(const POS &pos, Item *a)
Definition: item_geofunc.h:1521
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1524
Definition: item_geofunc.h:1532
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1539
Item_func_numinteriorring(const POS &pos, Item *a)
Definition: item_geofunc.h:1536
const char * func_name() const override
Definition: item_geofunc.h:1538
String value
Definition: item_geofunc.h:1533
longlong val_int() override
Definition: item_geofunc.cc:4846
Definition: item_geofunc.h:1547
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1554
longlong val_int() override
Definition: item_geofunc.cc:4884
String value
Definition: item_geofunc.h:1548
const char * func_name() const override
Definition: item_geofunc.h:1553
Item_func_numpoints(const POS &pos, Item *a)
Definition: item_geofunc.h:1551
Definition: item_geofunc.h:783
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:790
Field::geometry_type get_geometry_type() const override
Definition: item_geofunc.cc:4217
String * val_str(String *) override
Definition: item_geofunc.cc:4221
const char * func_name() const override
Definition: item_geofunc.h:787
Item_func_point(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:785
This handles the <point> = ST_POINTFROMGEOHASH(<string>, <srid>) function.
Definition: item_geofunc.h:804
const double upper_latitude
The maximum output latitude value when decoding the geohash value.
Definition: item_geofunc.h:807
const double lower_longitude
The minimum output longitude value when decoding the geohash value.
Definition: item_geofunc.h:816
const double lower_latitude
The minimum output latitude value when decoding the geohash value.
Definition: item_geofunc.h:810
String * val_str(String *) override
Definition: item_geofunc.cc:4306
Item_func_pointfromgeohash(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:819
const char * func_name() const override
Definition: item_geofunc.h:825
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.cc:4300
const double upper_longitude
The maximum output longitude value when decoding the geohash value.
Definition: item_geofunc.h:813
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:4254
Field::geometry_type get_geometry_type() const override
Definition: item_geofunc.h:829
Definition: item_geofunc.h:892
Item_func_spatial_collection(const POS &pos, PT_item_list *list, enum Geometry::wkbType ct, enum Geometry::wkbType it)
Definition: item_geofunc.h:898
enum Geometry::wkbType item_type
Definition: item_geofunc.h:895
String tmp_value
Definition: item_geofunc.h:893
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:906
enum Geometry::wkbType coll_type
Definition: item_geofunc.h:894
String * val_str(String *) override
Concatenates various items into various collections with checkings for valid wkb type of items.
Definition: item_geofunc.cc:4389
const char * func_name() const override
Definition: item_geofunc.cc:4349
Definition: item_geofunc.h:862
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:864
const char * func_name() const override
Definition: item_geofunc.h:876
String * val_str(String *) override
Definition: item_geofunc.cc:4160
Item_func_spatial_decomp_n(const POS &pos, Item *a, Item *b, Item_func::Functype ft)
Definition: item_geofunc.h:871
enum Functype decomp_func_n
Definition: item_geofunc.h:863
Definition: item_geofunc.h:834
enum Functype decomp_func
Definition: item_geofunc.h:835
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:836
Item_func_spatial_decomp(const POS &pos, Item *a, Item_func::Functype ft)
Definition: item_geofunc.h:842
String * val_str(String *) override
Definition: item_geofunc.cc:4116
const char * func_name() const override
Definition: item_geofunc.h:846
Definition: item_geofunc.h:928
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_geofunc.h:955
enum Functype rev_functype() const override
Definition: item_geofunc.h:943
enum Functype spatial_rel
Definition: item_geofunc.h:929
enum Functype functype() const override
Definition: item_geofunc.h:942
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:959
Item_func_spatial_mbr_rel(Item *a, Item *b, enum Functype sp_rel)
Definition: item_geofunc.h:932
Item_func_spatial_mbr_rel(const POS &pos, Item *a, Item *b, enum Functype sp_rel)
Definition: item_geofunc.h:936
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:963
Spatial operations.
Definition: item_geofunc.h:1203
Item_func_spatial_operation(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1205
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1209
Definition: item_geofunc.h:969
bool is_null() override
The method allows to determine nullness of a complex expression without fully evaluating it,...
Definition: item_geofunc.h:986
longlong val_int() override
Definition: item_geofunc_relchecks.cc:67
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:981
Item_func_spatial_relation(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:971
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:973
Definition: item_geofunc.h:1562
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1567
double val_real() override
Definition: item_geofunc.cc:5086
const char * func_name() const override
Definition: item_geofunc.h:1566
Item_func_st_area(const POS &pos, Item *a)
Definition: item_geofunc.h:1564
Definition: item_geofunc.h:1575
Item_func_st_buffer(const POS &pos, PT_item_list *ilist)
Definition: item_geofunc.h:1580
String * val_str(String *) override
Definition: item_geofunc.cc:5137
const char * func_name() const override
Definition: item_geofunc.h:1584
bool parse_strategy(String *arg, gis::BufferStrategies &strats)
Parses strategy stored in String object, and sets values in strats.
Definition: item_geofunc.cc:5195
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1585
Definition: item_geofunc.h:1013
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:124
const char * func_name() const override
Definition: item_geofunc.h:1019
enum Functype rev_functype() const override
Definition: item_geofunc.h:1018
Item_func_st_contains(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1015
enum Functype functype() const override
Definition: item_geofunc.h:1017
Definition: item_geofunc.h:1024
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:131
enum Functype rev_functype() const override
Definition: item_geofunc.h:1029
enum Functype functype() const override
Definition: item_geofunc.h:1028
const char * func_name() const override
Definition: item_geofunc.h:1030
Item_func_st_crosses(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1026
Definition: item_geofunc.h:1215
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:1217
const char * func_name() const override
Definition: item_geofunc.h:1220
Definition: item_geofunc.h:1035
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:138
enum Functype functype() const override
Definition: item_geofunc.h:1039
Item_func_st_disjoint(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1037
enum Functype rev_functype() const override
Definition: item_geofunc.h:1040
const char * func_name() const override
Definition: item_geofunc.h:1041
Definition: item_geofunc.h:1699
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1705
Item_func_st_distance_sphere(const POS &pos, PT_item_list *ilist)
Definition: item_geofunc.h:1701
const char * func_name() const override
Definition: item_geofunc.h:1704
double val_real() override
Definition: item_geofunc.cc:5718
Definition: item_geofunc.h:1046
enum Functype rev_functype() const override
Definition: item_geofunc.h:1051
enum Functype functype() const override
Definition: item_geofunc.h:1050
const char * func_name() const override
Definition: item_geofunc.h:1052
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:145
Item_func_st_equals(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1048
Definition: item_geofunc.h:1671
Item_func_st_frechet_distance(const POS &pos, PT_item_list *ilist)
Definition: item_geofunc.h:1673
const char * func_name() const override
Definition: item_geofunc.h:1676
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1677
double val_real() override
Definition: item_geofunc.cc:5458
Definition: item_geofunc.h:1685
Item_func_st_hausdorff_distance(const POS &pos, PT_item_list *ilist)
Definition: item_geofunc.h:1687
const char * func_name() const override
Definition: item_geofunc.h:1690
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1691
double val_real() override
Definition: item_geofunc.cc:5522
Definition: item_geofunc.h:1223
String * val_str(String *) override
Definition: item_geofunc.cc:5815
const char * func_name() const override
Definition: item_geofunc.h:1228
Item_func_st_intersection(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1225
Definition: item_geofunc.h:1057
enum Functype functype() const override
Definition: item_geofunc.h:1061
enum Functype rev_functype() const override
Definition: item_geofunc.h:1062
Item_func_st_intersects(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1059
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:151
const char * func_name() const override
Definition: item_geofunc.h:1063
Definition: item_geofunc.h:1286
longlong val_int() override
Definition: item_geofunc.cc:4718
const char * func_name() const override
Definition: item_geofunc.h:1290
Item_func_st_issimple(const POS &pos, Item *a)
Definition: item_geofunc.h:1288
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1291
This class implements the two-parameter ST_Latitude function which sets the latitude of a geographic ...
Definition: item_geofunc.h:1400
Item_func_st_latitude_mutator(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1402
const char * func_name() const override
Definition: item_geofunc.h:1406
int coordinate_number(const dd::Spatial_reference_system *) const override
Returns the coordinate number accessed by this item.
Definition: item_geofunc.h:1407
This class implements the one-parameter ST_Latitude function which returns the latitude coordinate of...
Definition: item_geofunc.h:1415
Item_func_st_latitude_observer(const POS &pos, Item *a)
Definition: item_geofunc.h:1417
const char * func_name() const override
Definition: item_geofunc.h:1421
int coordinate_number(const dd::Spatial_reference_system *) const override
Returns the coordinate number accessed by this item.
Definition: item_geofunc.h:1422
Definition: item_geofunc.h:1594
const char * func_name() const override
Definition: item_geofunc.h:1601
String value
Definition: item_geofunc.h:1595
Item_func_st_length(const POS &pos, PT_item_list *ilist)
Definition: item_geofunc.h:1598
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:1602
This class implements the two-parameter ST_Longitude function which sets the longitude coordinate of ...
Definition: item_geofunc.h:1430
Item_func_st_longitude_mutator(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1432
const char * func_name() const override
Definition: item_geofunc.h:1436
int coordinate_number(const dd::Spatial_reference_system *) const override
Returns the coordinate number accessed by this item.
Definition: item_geofunc.h:1437
This class implements the one-parameter ST_Longitude function which returns the longitude coordinate ...
Definition: item_geofunc.h:1445
int coordinate_number(const dd::Spatial_reference_system *) const override
Returns the coordinate number accessed by this item.
Definition: item_geofunc.h:1452
Item_func_st_longitude_observer(const POS &pos, Item *a)
Definition: item_geofunc.h:1447
const char * func_name() const override
Definition: item_geofunc.h:1451
Definition: item_geofunc.h:1167
Item_func_st_overlaps(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1169
enum Functype functype() const override
Definition: item_geofunc.h:1171
enum Functype rev_functype() const override
Definition: item_geofunc.h:1172
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:218
const char * func_name() const override
Definition: item_geofunc.h:1173
Definition: item_geofunc.h:1751
Item_func_st_pointatdistance(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1753
bool returnMultiplePoints() const override
Definition: item_geofunc.h:1759
bool isFractionalDistance() const override
Definition: item_geofunc.h:1758
const char * func_name() const override
Definition: item_geofunc.h:1757
Item that implements function ST_Simplify, which simplifies a geometry using the Douglas-Peucker algo...
Definition: item_geofunc.h:769
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:773
String * val_str(String *) override
Definition: item_geofunc.cc:4069
Item_func_st_simplify(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:771
const char * func_name() const override
Definition: item_geofunc.h:780
This class implements the two-parameter ST_SRID function which sets the SRID of a geometry.
Definition: item_geofunc.h:1613
String * val_str(String *) override
Definition: item_geofunc.cc:5412
const char * func_name() const override
Definition: item_geofunc.h:1618
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1619
Item_func_st_srid_mutator(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1615
This class implements the one-parameter ST_SRID function which returns the SRID of a geometry.
Definition: item_geofunc.h:1628
Item_func_st_srid_observer(const POS &pos, Item *a)
Definition: item_geofunc.h:1630
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1633
const char * func_name() const override
Definition: item_geofunc.h:1632
longlong val_int() override
Definition: item_geofunc.cc:5372
Definition: item_geofunc.h:1231
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:1233
const char * func_name() const override
Definition: item_geofunc.h:1236
Definition: item_geofunc.h:1178
enum Functype functype() const override
Definition: item_geofunc.h:1182
Item_func_st_touches(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1180
enum Functype rev_functype() const override
Definition: item_geofunc.h:1183
const char * func_name() const override
Definition: item_geofunc.h:1184
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:225
Definition: item_geofunc.h:1239
Item_func_st_union(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1241
String * val_str(String *) override
Definition: item_geofunc.cc:4635
const char * func_name() const override
Definition: item_geofunc.h:1244
Definition: item_geofunc.h:1189
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:232
enum Functype rev_functype() const override
Definition: item_geofunc.h:1194
enum Functype functype() const override
Definition: item_geofunc.h:1193
Item_func_st_within(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1191
const char * func_name() const override
Definition: item_geofunc.h:1195
This class implements the two-parameter ST_X function which sets the X coordinate of a point.
Definition: item_geofunc.h:1459
int coordinate_number(const dd::Spatial_reference_system *srs) const override
Returns the coordinate number accessed by this item.
Definition: item_geofunc.cc:5029
Item_func_st_x_mutator(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1461
const char * func_name() const override
Definition: item_geofunc.h:1465
This class implements the one-parameter ST_X function which returns the X coordinate of a point.
Definition: item_geofunc.h:1471
int coordinate_number(const dd::Spatial_reference_system *srs) const override
Returns the coordinate number accessed by this item.
Definition: item_geofunc.cc:5035
Item_func_st_x_observer(const POS &pos, Item *a)
Definition: item_geofunc.h:1473
const char * func_name() const override
Definition: item_geofunc.h:1477
This class implements the two-parameter ST_Y function which sets the Y coordinate of a point.
Definition: item_geofunc.h:1483
int coordinate_number(const dd::Spatial_reference_system *srs) const override
Returns the coordinate number accessed by this item.
Definition: item_geofunc.cc:5041
const char * func_name() const override
Definition: item_geofunc.h:1489
Item_func_st_y_mutator(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:1485
This class implements the one-parameter ST_Y function which returns the Y coordinate of a point.
Definition: item_geofunc.h:1495
int coordinate_number(const dd::Spatial_reference_system *srs) const override
Returns the coordinate number accessed by this item.
Definition: item_geofunc.cc:5047
const char * func_name() const override
Definition: item_geofunc.h:1501
Item_func_st_y_observer(const POS &pos, Item *a)
Definition: item_geofunc.h:1497
Definition: item_geofunc.h:1505
const char * func_name() const override
Definition: item_geofunc.h:1513
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1506
String * val_str(String *) override
Definition: item_geofunc.cc:5053
Item_func_swap_xy(const POS &pos, Item *a)
Definition: item_geofunc.h:1512
Definition: item_geofunc.h:754
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:760
String * val_str(String *) override
Definition: item_geofunc.cc:3386
const char * func_name() const override
Definition: item_geofunc.h:759
Item_func_validate(const POS &pos, Item *a)
Definition: item_geofunc.h:758
String arg_val
Definition: item_geofunc.h:755
Item ** args
Array of pointers to arguments.
Definition: item_func.h:107
virtual enum Functype functype() const
Definition: item_func.h:323
Functype
Definition: item_func.h:183
@ SP_CROSSES_FUNC
Definition: item_func.h:210
@ SP_EXTERIORRING
Definition: item_func.h:218
@ SP_EQUALS_FUNC
Definition: item_func.h:206
@ SP_COVEREDBY_FUNC
Definition: item_func.h:213
@ SP_TOUCHES_FUNC
Definition: item_func.h:209
@ SP_DISJOINT_FUNC
Definition: item_func.h:207
@ SP_STARTPOINT
Definition: item_func.h:216
@ SP_POINTN
Definition: item_func.h:219
@ SP_GEOMETRYN
Definition: item_func.h:220
@ TYPECAST_FUNC
Definition: item_func.h:231
@ SP_WITHIN_FUNC
Definition: item_func.h:211
@ SP_INTERIORRINGN
Definition: item_func.h:221
@ SP_INTERSECTS_FUNC
Definition: item_func.h:208
@ SP_COVERS_FUNC
Definition: item_func.h:214
@ SP_CONTAINS_FUNC
Definition: item_func.h:212
@ SP_ENDPOINT
Definition: item_func.h:217
@ SP_OVERLAPS_FUNC
Definition: item_func.h:215
optimize_type
Definition: item_func.h:315
@ OPTIMIZE_NONE
Definition: item_func.h:316
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_func.h:639
enum Type type() const override
Definition: item_func.h:322
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:526
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_func.cc:732
uint arg_count
How many arguments in 'args'.
Definition: item_func.h:130
Definition: item_geofunc.h:178
Field * tmp_table_field(TABLE *t_arg) override
Definition: item_geofunc.cc:298
Item_geometry_func(Item *a, Item *b)
Definition: item_geofunc.h:185
Item_geometry_func(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_geofunc.h:190
Item_geometry_func(Item *a)
Definition: item_geofunc.h:182
Item_geometry_func(Item *a, Item *b, Item *c)
Definition: item_geofunc.h:189
Item_geometry_func(const POS &pos, Item *a)
Definition: item_geofunc.h:183
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.cc:307
Item_geometry_func()
Definition: item_geofunc.h:180
Item_geometry_func(const POS &pos, Item *a, Item *b)
Definition: item_geofunc.h:186
Definition: item_func.h:942
Base class for all item functions that a return JSON value.
Definition: item_json_func.h:150
Definition: item_func.h:754
Definition: item_strfunc.h:147
Definition: item_strfunc.h:75
Definition: item_geofunc.h:1775
const char * func_name() const override=0
enum Functype functype() const override
Definition: item_geofunc.h:1783
Item_typecast_geometry(const POS &pos, Item *a)
Definition: item_geofunc.h:1777
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_geofunc.h:1785
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:1891
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:1897
Item_typecast_geometrycollection(const POS &pos, Item *a)
Definition: item_geofunc.h:1893
Field::geometry_type get_geometry_type() const override
Definition: item_geofunc.cc:7009
Definition: item_geofunc.h:1820
Item_typecast_linestring(const POS &pos, Item *a)
Definition: item_geofunc.h:1822
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:1826
Definition: item_geofunc.h:1862
Item_typecast_multilinestring(const POS &pos, Item *a)
Definition: item_geofunc.h:1864
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:1868
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:1848
Item_typecast_multipoint(const POS &pos, Item *a)
Definition: item_geofunc.h:1850
const char * func_name() const override
Definition: item_geofunc.h:1854
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:1876
Item_typecast_multipolygon(const POS &pos, Item *a)
Definition: item_geofunc.h:1878
const char * func_name() const override
Definition: item_geofunc.h:1882
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:1806
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:1812
Item_typecast_point(const POS &pos, Item *a)
Definition: item_geofunc.h:1808
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:1834
Field::geometry_type get_geometry_type() const override
Definition: item_geofunc.cc:6538
const char * func_name() const override
Definition: item_geofunc.h:1840
Item_typecast_polygon(const POS &pos, Item *a)
Definition: item_geofunc.h:1836
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:932
void set_nullable(bool nullable)
Definition: item.h:3605
void set_data_type_blob(enum_field_types type, uint32 max_l)
Set the Item to be of BLOB type.
Definition: item.h:1669
static const CHARSET_INFO * default_charset()
Definition: item.cc:1797
virtual void print(const THD *, String *str, enum_query_type) const
This method is used for to:
Definition: item.h:2460
enum_field_types data_type() const
Retrieve the derived data type of the Item.
Definition: item.h:1471
bool fixed
True if item has been resolved.
Definition: item.h:3593
bool null_value
True if item is null.
Definition: item.h:3630
void set_data_type_string(uint32 max_l)
Set the Item to be variable length string.
Definition: item.h:1586
uint32 max_length
Maximum length of result of evaluating this item, in number of bytes.
Definition: item.h:3521
Represents a JSON array container, i.e.
Definition: json_dom.h:521
JSON DOM abstract base class.
Definition: json_dom.h:174
Represents a JSON container value of type "object" (ECMA), type J_OBJECT here.
Definition: json_dom.h:374
Abstraction for accessing JSON values irrespective of whether they are (started out as) binary JSON v...
Definition: json_dom.h:1168
Wrapper class for an Item list head, used to allocate Item lists in the parser in a context-independe...
Definition: parse_tree_helpers.h:104
void error(Context *pc, const POS &pos) const
syntax_error() function replacement for deferred reporting of syntax errors
Definition: parse_tree_node_base.h:342
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:440
void clear()
Removes (and destroys) all elements.
Definition: prealloced_array.h:600
void * * iterator
Definition: prealloced_array.h:115
iterator begin()
begin : Returns a pointer to the first element in the array.
Definition: prealloced_array.h:253
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:420
iterator end()
Definition: prealloced_array.h:254
Using this class is fraught with peril, and you need to be very careful when doing so.
Definition: sql_string.h:166
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:35
Definition: spatial_reference_system.h:52
Abstract superclass for all geometric objects.
Definition: geometries.h:99
static char buf[MAX_BUF]
Definition: conf_to_src.cc:72
enum_query_type
Query type constants (usable as bitmap flags).
Definition: enum_query_type.h:30
@ QT_NO_DATA_EXPANSION
If an expression is constant, print the expression, not the value it evaluates to.
Definition: enum_query_type.h:75
This file contains the field type.
@ MYSQL_TYPE_LONGLONG
Definition: field_types.h:63
@ MYSQL_TYPE_LONG_BLOB
Definition: field_types.h:84
@ MYSQL_TYPE_GEOMETRY
Definition: field_types.h:88
@ MYSQL_TYPE_DOUBLE
Definition: field_types.h:60
void my_error(int nr, myf MyFlags,...)
Fill in and print a previously registered error message.
Definition: my_error.cc:215
static constexpr unsigned PSI_INSTRUMENT_ME
Definition: psi_bits.h:42
static const int MAX_CRS_WIDTH
Max width of long CRS URN supported + max width of SRID + '\0'.
Definition: item_geofunc.h:470
enum_json_type
Json values in MySQL comprises the stand set of JSON values plus a MySQL specific set.
Definition: json_dom.h:110
Some integer typedefs for easier portability.
long long int longlong
Definition: my_inttypes.h:54
#define MYF(v)
Definition: my_inttypes.h:96
uint32_t uint32
Definition: my_inttypes.h:66
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:904
std::string str(const mysqlrouter::ConfigGenerator::Options::Endpoint &ep)
Definition: config_generator.cc:1085
Definition: buf0block_hint.cc:29
PT & ref(PT *tp)
Definition: tablespace_impl.cc:358
The version of the current data dictionary table definitions.
Definition: dictionary_client.h:42
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:75
std::uint32_t srid_t
A spatial reference system ID (SRID).
Definition: srid.h:32
mutable_buffer buffer(void *p, size_t n) noexcept
Definition: buffer.h:417
Definition: options.cc:56
std::list< T, ut::allocator< T > > list
Specialization of list which uses ut_allocator.
Definition: ut0new.h:2877
Performance schema instrumentation interface.
void gis_wkb_raw_free(void *p)
Definition: spatial.h:210
static bool rollback(THD *thd)
Abort the current statement and transaction.
Definition: sql_cmd_srs.cc:139
Our own string classes, used pervasively throughout the executor.
Bison "location" class.
Definition: parse_location.h:42
Environment data for the contextualization phase.
Definition: parse_tree_node_base.h:418
Definition: buffer_strategies.h:44