From e61eef6dc49f3b86416a33d16d7823605d20d0c8 Mon Sep 17 00:00:00 2001 From: Hiroaki Yutani Date: Sat, 31 May 2025 07:53:15 +0900 Subject: [PATCH 1/2] Fix ST_Affine() --- src/spatial/modules/main/spatial_functions_scalar.cpp | 6 +++--- test/sql/geometry/st_affine.test | 7 +++++++ 2 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 test/sql/geometry/st_affine.test diff --git a/src/spatial/modules/main/spatial_functions_scalar.cpp b/src/spatial/modules/main/spatial_functions_scalar.cpp index a4ff26ef..bf4adef4 100644 --- a/src/spatial/modules/main/spatial_functions_scalar.cpp +++ b/src/spatial/modules/main/spatial_functions_scalar.cpp @@ -146,19 +146,19 @@ struct ST_Affine { matrix.v[1] = UnifiedVectorFormat::GetData(matrix_elems[1])[matrix_idx[1]]; // b matrix.v[2] = UnifiedVectorFormat::GetData(matrix_elems[2])[matrix_idx[2]]; // c - matrix.v[3] = UnifiedVectorFormat::GetData(matrix_elems[10])[matrix_idx[10]]; // xoff + matrix.v[3] = UnifiedVectorFormat::GetData(matrix_elems[9])[matrix_idx[9]]; // xoff matrix.v[4] = UnifiedVectorFormat::GetData(matrix_elems[3])[matrix_idx[3]]; // d matrix.v[5] = UnifiedVectorFormat::GetData(matrix_elems[4])[matrix_idx[4]]; // e matrix.v[6] = UnifiedVectorFormat::GetData(matrix_elems[5])[matrix_idx[5]]; // f - matrix.v[7] = UnifiedVectorFormat::GetData(matrix_elems[11])[matrix_idx[11]]; // yoff + matrix.v[7] = UnifiedVectorFormat::GetData(matrix_elems[10])[matrix_idx[10]]; // yoff matrix.v[8] = UnifiedVectorFormat::GetData(matrix_elems[6])[matrix_idx[6]]; // g matrix.v[9] = UnifiedVectorFormat::GetData(matrix_elems[7])[matrix_idx[7]]; // h matrix.v[10] = UnifiedVectorFormat::GetData(matrix_elems[8])[matrix_idx[8]]; // i - matrix.v[11] = UnifiedVectorFormat::GetData(matrix_elems[9])[matrix_idx[9]]; // zoff + matrix.v[11] = UnifiedVectorFormat::GetData(matrix_elems[11])[matrix_idx[11]]; // zoff // Deserialize the geometry auto geom_blob = UnifiedVectorFormat::GetData(geom_format)[geom_idx]; diff --git a/test/sql/geometry/st_affine.test b/test/sql/geometry/st_affine.test new file mode 100644 index 00000000..fcddc54c --- /dev/null +++ b/test/sql/geometry/st_affine.test @@ -0,0 +1,7 @@ +require spatial + +# Move a point by (2, 3) +query I +SELECT ST_Affine(ST_Point(1, 1), 1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 3, 0); +---- +POINT (3, 4) From 223d1b14297d5bf944e81c86ed3341e2949856e3 Mon Sep 17 00:00:00 2001 From: Hiroaki Yutani Date: Sat, 31 May 2025 08:27:19 +0900 Subject: [PATCH 2/2] Fix test expectation --- test/sql/geometry/st_affine.test | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/sql/geometry/st_affine.test b/test/sql/geometry/st_affine.test index fcddc54c..1f0ebd97 100644 --- a/test/sql/geometry/st_affine.test +++ b/test/sql/geometry/st_affine.test @@ -4,4 +4,4 @@ require spatial query I SELECT ST_Affine(ST_Point(1, 1), 1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 3, 0); ---- -POINT (3, 4) +POINT (3 4)