Skip to content

Commit 63062b7

Browse files
WinChuayongcai
and
yongcai
authored
Feature/enhance test (#56)
* feat: all support for geom --------- Co-authored-by: yongcai <[email protected]>
1 parent 5383c47 commit 63062b7

File tree

1 file changed

+33
-3
lines changed

1 file changed

+33
-3
lines changed

src/pyinnodb/disk_struct/data.py

+33-3
Original file line numberDiff line numberDiff line change
@@ -92,19 +92,35 @@ def _post_parsed(self, stream, context, path):
9292
for i in range(self.size):
9393
self.points.append(MPoint.parse_stream(stream))
9494
elif self.point_type == 3: # POLYGON
95-
self.polygons = []
95+
self.polygon = []
9696
self.psize = cs.Int32ul.parse_stream(stream)
9797
for i in range(self.psize):
9898
size = cs.Int32ul.parse_stream(stream)
9999
points = []
100100
for j in range(size):
101101
points.append(MPoint.parse_stream(stream))
102-
self.polygons.append(points)
102+
self.polygon.append(points)
103103
elif self.point_type == 4: # MULTIPOINT
104104
self.size = cs.Int32ul.parse_stream(stream)
105105
self.points = []
106106
for i in range(self.size):
107107
self.points.append(MGPoint.parse_stream(stream))
108+
elif self.point_type == 5:
109+
self.size = cs.Int32ul.parse_stream(stream)
110+
self.lines = []
111+
for i in range(self.size):
112+
self.lines.append(MGPoint.parse_stream(stream))
113+
elif self.point_type == 6:
114+
self.size = cs.Int32ul.parse_stream(stream)
115+
self.polygons = []
116+
for i in range(self.size):
117+
self.polygons.append(MGPoint.parse_stream(stream))
118+
119+
elif self.point_type == 7:
120+
self.size = cs.Int32ul.parse_stream(stream)
121+
self.geos = []
122+
for i in range(self.size):
123+
self.geos.append(MGPoint.parse_stream(stream))
108124

109125

110126
def _post_build(self, obj, stream, context, path):
@@ -117,7 +133,7 @@ def _post_build(self, obj, stream, context, path):
117133
stream.write(p.build())
118134
elif self.point_type == 3:
119135
stream.write(cs.Int32ul.build(self.psize))
120-
for polygon in self.polygons:
136+
for polygon in self.polygon:
121137
if len(polygon) == 0:
122138
continue
123139
stream.write(cs.Int32ul.build(len(polygon)))
@@ -128,6 +144,20 @@ def _post_build(self, obj, stream, context, path):
128144
stream.write(cs.Int32ul.build(self.size))
129145
for p in self.points:
130146
stream.write(p.build())
147+
elif self.point_type == 5:
148+
stream.write(cs.Int32ul.build(self.size))
149+
for l in self.lines:
150+
stream.write(l.build())
151+
152+
elif self.point_type == 6:
153+
stream.write(cs.Int32ul.build(self.size))
154+
for l in self.polygons:
155+
stream.write(l.build())
156+
157+
elif self.point_type == 7:
158+
stream.write(cs.Int32ul.build(self.size))
159+
for l in self.geos:
160+
stream.write(l.build())
131161

132162
class MGeo(CC):
133163
SRID: int = cfield(cs.Int32ub)

0 commit comments

Comments
 (0)