From 50e1a9478e20ba15ca78fe9d0d4907def935b8e9 Mon Sep 17 00:00:00 2001 From: tison Date: Wed, 17 May 2023 23:35:46 +0800 Subject: [PATCH 1/3] feat(expr): add area as an alias for st_area Signed-off-by: tison --- src/sql/engine/expr/ob_expr_operator_factory.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/sql/engine/expr/ob_expr_operator_factory.cpp b/src/sql/engine/expr/ob_expr_operator_factory.cpp index 8ef9dbca29..2512b69095 100644 --- a/src/sql/engine/expr/ob_expr_operator_factory.cpp +++ b/src/sql/engine/expr/ob_expr_operator_factory.cpp @@ -1432,6 +1432,9 @@ void ObExprOperatorFactory::get_function_alias_name(const ObString &origin_name, } else if (0 == origin_name.case_compare("character_length")) { // character_length is synonym for char_length alias_name = ObString::make_string(N_CHAR_LENGTH); + } else if (0 == origin_name.case_compare("area")) { + // area is synonym for st_area + alias_name = ObString::make_string(N_ST_AREA); } else { //do nothing } @@ -1441,5 +1444,5 @@ void ObExprOperatorFactory::get_function_alias_name(const ObString &origin_name, } } //end sql -} //end oceanbase +} //end oceanbase From 71efb319418e182c9935477989863ef3749751e9 Mon Sep 17 00:00:00 2001 From: tison Date: Mon, 5 Jun 2023 10:24:52 +0800 Subject: [PATCH 2/3] test: add new cases Signed-off-by: tison --- .../geometry/r/mysql/geometry_basic_mysql.result | 12 ++++++++++++ .../geometry/t/geometry_basic_mysql.test | 15 +++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/tools/deploy/mysql_test/test_suite/geometry/r/mysql/geometry_basic_mysql.result b/tools/deploy/mysql_test/test_suite/geometry/r/mysql/geometry_basic_mysql.result index 9e05e12d03..1e5ecc1e5f 100644 --- a/tools/deploy/mysql_test/test_suite/geometry/r/mysql/geometry_basic_mysql.result +++ b/tools/deploy/mysql_test/test_suite/geometry/r/mysql/geometry_basic_mysql.result @@ -132,3 +132,15 @@ Outputs & filters: range_key([gis_point_alias.__pk_increment]), range(MIN ; MAX), range_cond([gis_point_alias.__pk_increment = :0]) drop table if exists gis_point; +drop table if exists gis_polygon; +create table if not exists gis_polygon ( +poly Polygon not null srid 4396 +); +insert into gis_polygon values (ST_srid(ST_GeomFromText('Polygon((0 0,0 3,3 0,0 0),(1 1,1 2,2 1,1 1))'), 4396)); +select area(poly) from gis_polygon; +area(poly) +4 +select st_area(poly) from gis_polygon; +st_area(poly) +4 +drop table if exists gis_polygon; diff --git a/tools/deploy/mysql_test/test_suite/geometry/t/geometry_basic_mysql.test b/tools/deploy/mysql_test/test_suite/geometry/t/geometry_basic_mysql.test index 3dbdaca4a1..e83a0198ca 100644 --- a/tools/deploy/mysql_test/test_suite/geometry/t/geometry_basic_mysql.test +++ b/tools/deploy/mysql_test/test_suite/geometry/t/geometry_basic_mysql.test @@ -111,3 +111,18 @@ call geom_insert(10000); explain select x,y,st_astext(poi) from gis_point order by x,y desc limit 1; drop table if exists gis_point; + +--disable_warnings +drop table if exists gis_polygon; +--enable_warnings + +create table if not exists gis_polygon ( + poly Polygon not null srid 4396 + ); + +insert into gis_polygon values (ST_srid(ST_GeomFromText('Polygon((0 0,0 3,3 0,0 0),(1 1,1 2,2 1,1 1))'), 4396)); + +select area(poly) from gis_polygon; +select st_area(poly) from gis_polygon; + +drop table if exists gis_polygon; From 336a58a43a418d02228d7302c8b5c712d209027b Mon Sep 17 00:00:00 2001 From: tison Date: Wed, 7 Jun 2023 09:49:08 +0800 Subject: [PATCH 3/3] move out geo area tests Signed-off-by: tison --- .../geometry/r/mysql/geometry_area.result | 15 +++++++++++++ .../r/mysql/geometry_basic_mysql.result | 12 ----------- .../test_suite/geometry/t/geometry_area.test | 21 +++++++++++++++++++ .../geometry/t/geometry_basic_mysql.test | 15 ------------- 4 files changed, 36 insertions(+), 27 deletions(-) create mode 100644 tools/deploy/mysql_test/test_suite/geometry/r/mysql/geometry_area.result create mode 100644 tools/deploy/mysql_test/test_suite/geometry/t/geometry_area.test diff --git a/tools/deploy/mysql_test/test_suite/geometry/r/mysql/geometry_area.result b/tools/deploy/mysql_test/test_suite/geometry/r/mysql/geometry_area.result new file mode 100644 index 0000000000..8f6854e9c5 --- /dev/null +++ b/tools/deploy/mysql_test/test_suite/geometry/r/mysql/geometry_area.result @@ -0,0 +1,15 @@ +# ---------------------------------------------------------------------- +# Test of GEOMETRY AREA. +# ---------------------------------------------------------------------- +drop table if exists gis_polygon; +create table if not exists gis_polygon ( +poly Polygon not null srid 4396 +); +insert into gis_polygon values (ST_srid(ST_GeomFromText('Polygon((0 0,0 3,3 0,0 0),(1 1,1 2,2 1,1 1))'), 4396)); +select area(poly) from gis_polygon; +area(poly) +4 +select st_area(poly) from gis_polygon; +st_area(poly) +4 +drop table if exists gis_polygon; diff --git a/tools/deploy/mysql_test/test_suite/geometry/r/mysql/geometry_basic_mysql.result b/tools/deploy/mysql_test/test_suite/geometry/r/mysql/geometry_basic_mysql.result index 1e5ecc1e5f..9e05e12d03 100644 --- a/tools/deploy/mysql_test/test_suite/geometry/r/mysql/geometry_basic_mysql.result +++ b/tools/deploy/mysql_test/test_suite/geometry/r/mysql/geometry_basic_mysql.result @@ -132,15 +132,3 @@ Outputs & filters: range_key([gis_point_alias.__pk_increment]), range(MIN ; MAX), range_cond([gis_point_alias.__pk_increment = :0]) drop table if exists gis_point; -drop table if exists gis_polygon; -create table if not exists gis_polygon ( -poly Polygon not null srid 4396 -); -insert into gis_polygon values (ST_srid(ST_GeomFromText('Polygon((0 0,0 3,3 0,0 0),(1 1,1 2,2 1,1 1))'), 4396)); -select area(poly) from gis_polygon; -area(poly) -4 -select st_area(poly) from gis_polygon; -st_area(poly) -4 -drop table if exists gis_polygon; diff --git a/tools/deploy/mysql_test/test_suite/geometry/t/geometry_area.test b/tools/deploy/mysql_test/test_suite/geometry/t/geometry_area.test new file mode 100644 index 0000000000..fb844bdf72 --- /dev/null +++ b/tools/deploy/mysql_test/test_suite/geometry/t/geometry_area.test @@ -0,0 +1,21 @@ +#owner: ht353245 +#owner group: shenzhen +--echo # ---------------------------------------------------------------------- +--echo # Test of GEOMETRY BASIC. +--echo # ---------------------------------------------------------------------- +--source mysql_test/test_suite/geometry/t/import_default_srs_data_mysql.inc + +--disable_warnings +drop table if exists gis_polygon; +--enable_warnings + +create table if not exists gis_polygon ( + poly Polygon not null srid 4396 + ); + +insert into gis_polygon values (ST_srid(ST_GeomFromText('Polygon((0 0,0 3,3 0,0 0),(1 1,1 2,2 1,1 1))'), 4396)); + +select area(poly) from gis_polygon; +select st_area(poly) from gis_polygon; + +drop table if exists gis_polygon; diff --git a/tools/deploy/mysql_test/test_suite/geometry/t/geometry_basic_mysql.test b/tools/deploy/mysql_test/test_suite/geometry/t/geometry_basic_mysql.test index e83a0198ca..3dbdaca4a1 100644 --- a/tools/deploy/mysql_test/test_suite/geometry/t/geometry_basic_mysql.test +++ b/tools/deploy/mysql_test/test_suite/geometry/t/geometry_basic_mysql.test @@ -111,18 +111,3 @@ call geom_insert(10000); explain select x,y,st_astext(poi) from gis_point order by x,y desc limit 1; drop table if exists gis_point; - ---disable_warnings -drop table if exists gis_polygon; ---enable_warnings - -create table if not exists gis_polygon ( - poly Polygon not null srid 4396 - ); - -insert into gis_polygon values (ST_srid(ST_GeomFromText('Polygon((0 0,0 3,3 0,0 0),(1 1,1 2,2 1,1 1))'), 4396)); - -select area(poly) from gis_polygon; -select st_area(poly) from gis_polygon; - -drop table if exists gis_polygon;