fix(wkb): simplify loop indexing in geometry reading functions
Tests / Integration Tests (push) Failing after 23s
Build , Vet Test, and Lint / Build (push) Successful in 4m33s
Build , Vet Test, and Lint / Run Vet Tests (1.23.x) (push) Successful in 5m13s
Build , Vet Test, and Lint / Run Vet Tests (1.24.x) (push) Successful in 5m13s
Tests / Unit Tests (push) Failing after 4s
Build , Vet Test, and Lint / Lint Code (push) Successful in 5m13s

This commit is contained in:
2026-08-29 21:36:01 +02:00
parent f259df1258
commit 3d4f6faa8e
+10 -10
View File
@@ -219,20 +219,20 @@ func readGeom(r *wkbReader) (geom, int, error) {
switch baseType { switch baseType {
case 4: case 4:
pts := make([][]float64, len(parts)) pts := make([][]float64, len(parts))
for i, p := range parts { for i := range parts {
pts[i] = p.coord pts[i] = parts[i].coord
} }
return geom{typ: "MultiPoint", line: pts}, srid, nil return geom{typ: "MultiPoint", line: pts}, srid, nil
case 5: case 5:
lines := make([][][]float64, len(parts)) lines := make([][][]float64, len(parts))
for i, p := range parts { for i := range parts {
lines[i] = p.line lines[i] = parts[i].line
} }
return geom{typ: "MultiLineString", poly: lines}, srid, nil return geom{typ: "MultiLineString", poly: lines}, srid, nil
default: default:
polys := make([][][][]float64, len(parts)) polys := make([][][][]float64, len(parts))
for i, p := range parts { for i := range parts {
polys[i] = p.poly polys[i] = parts[i].poly
} }
return geom{typ: "MultiPolygon", multi: polys}, srid, nil return geom{typ: "MultiPolygon", multi: polys}, srid, nil
} }
@@ -284,8 +284,8 @@ func geomToGeoJSONStruct(g geom) (geoJSON, error) {
coords = g.multi coords = g.multi
case "GeometryCollection": case "GeometryCollection":
subs := make([]geoJSON, len(g.geoms)) subs := make([]geoJSON, len(g.geoms))
for i, sub := range g.geoms { for i := range g.geoms {
s, err := geomToGeoJSONStruct(sub) s, err := geomToGeoJSONStruct(g.geoms[i])
if err != nil { if err != nil {
return geoJSON{}, err return geoJSON{}, err
} }
@@ -683,8 +683,8 @@ func geomToWKT(g geom) (string, error) {
return "MULTIPOLYGON (" + strings.Join(parts, ", ") + ")", nil return "MULTIPOLYGON (" + strings.Join(parts, ", ") + ")", nil
case "GeometryCollection": case "GeometryCollection":
parts := make([]string, len(g.geoms)) parts := make([]string, len(g.geoms))
for i, sub := range g.geoms { for i := range g.geoms {
w, err := geomToWKT(sub) w, err := geomToWKT(g.geoms[i])
if err != nil { if err != nil {
return "", err return "", err
} }