mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
MDEV-34137: Implement the GIS function ST_Validate
The GIS function ST_Validate takes ad input a geometry and verifies that - is compliant with the Well-Known Binary (WKB) format and Spatial Reference System Identifier (SRID) syntax. - is geometrically valid. If the input is valid return it, else it returns NULL. The use case of this function is to filter out invalid geometry data. Author: StefanoPetrilli <stefanop_1999@hotmail.it> Co-authored-by: Torje Digernes <torje.digernes@oracle.com> Co-authored-by: Hans H Melby <hans.h.melby@oracle.com> Co-authored-by: Jon Olav Hauglid <jon.hauglid@oracle.com> Co-authored-by: Erlend Dahl <erlend.dahl@oracle.com> Co-authored-by: Norvald H. Ryeng <norvald.ryeng@oracle.com> Co-authored-by: David.Zhao <david.zhao@oracle.com> Co-authored-by: Pavan <pavan.naik@oracle.com>
This commit is contained in:
committed by
Dave Gosselin
parent
869b4c243e
commit
b50366667b
@@ -305,7 +305,8 @@ public:
|
||||
virtual int interior_ring_n(uint32 num, String *result) const { return -1; }
|
||||
virtual int geometry_n(uint32 num, String *result) const { return -1; }
|
||||
virtual int store_shapes(Gcalc_shape_transporter *trn) const=0;
|
||||
|
||||
virtual int is_clockwise(int *result) const { return -1; }
|
||||
virtual int make_clockwise(String *result) const{ return -1; }
|
||||
public:
|
||||
static Geometry *create_by_typeid(Geometry_buffer *buffer, int type_id);
|
||||
|
||||
@@ -498,6 +499,7 @@ public:
|
||||
return 0;
|
||||
}
|
||||
int store_shapes(Gcalc_shape_transporter *trn) const override;
|
||||
int is_clockwise(int *result) const override;
|
||||
const Class_info *get_class_info() const override;
|
||||
};
|
||||
|
||||
@@ -533,6 +535,7 @@ public:
|
||||
return 0;
|
||||
}
|
||||
int store_shapes(Gcalc_shape_transporter *trn) const override;
|
||||
int make_clockwise(String *result) const override;
|
||||
const Class_info *get_class_info() const override;
|
||||
};
|
||||
|
||||
@@ -634,6 +637,7 @@ public:
|
||||
return 0;
|
||||
}
|
||||
int store_shapes(Gcalc_shape_transporter *trn) const override;
|
||||
int make_clockwise(String *result) const override;
|
||||
const Class_info *get_class_info() const override;
|
||||
uint init_from_opresult(String *bin, const char *opres, uint res_len) override;
|
||||
};
|
||||
@@ -663,6 +667,7 @@ public:
|
||||
int geometry_n(uint32 num, String *result) const override;
|
||||
bool dimension(uint32 *dim, const char **end) const override;
|
||||
int store_shapes(Gcalc_shape_transporter *trn) const override;
|
||||
int make_clockwise(String *result) const override;
|
||||
const Class_info *get_class_info() const override;
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user