{ \
type value = datumfunc(datum); \
if (value >= 0) { \
- MVT_PARSE_VALUE(value, mvt_kv_uint_value, \
+ uint64_t cvalue = value; \
+ MVT_PARSE_VALUE(cvalue, mvt_kv_uint_value, \
uint_values_hash, uint_value, \
sizeof(uint64_t)) \
} else { \
- MVT_PARSE_VALUE(value, mvt_kv_sint_value, \
+ int64_t cvalue = value; \
+ MVT_PARSE_VALUE(cvalue, mvt_kv_sint_value, \
sint_values_hash, sint_value, \
sizeof(int64_t)) \
} \
UNION
SELECT 'othertest' AS c1, ST_AsMVTGeom(ST_GeomFromText('POINT(26 18)'),
ST_MakeBox2D(ST_Point(0, 0), ST_Point(4096, 4096)), 4096, 0, false) AS geom) AS q;
--- TA8 results in incorrect encoding (redundant values) except in debug builds with specific logging
--- Memory allocation issues are suspected
---SELECT 'TA8', encode(ST_AsMVT('test', 4096, 'geom', q), 'base64') FROM (
--- SELECT 1 AS c1, ST_AsMVTGeom(ST_GeomFromText('POINT(25 17)'),
--- ST_MakeBox2D(ST_Point(0, 0), ST_Point(4096, 4096)), 4096, 0, false) AS geom
--- UNION
--- SELECT 1 AS c1, ST_AsMVTGeom(ST_GeomFromText('POINT(26 18)'),
--- ST_MakeBox2D(ST_Point(0, 0), ST_Point(4096, 4096)), 4096, 0, false) AS geom
--- UNION
--- SELECT 2 AS c1, ST_AsMVTGeom(ST_GeomFromText('POINT(26 18)'),
--- ST_MakeBox2D(ST_Point(0, 0), ST_Point(4096, 4096)), 4096, 0, false) AS geom) AS q;
--- Expected output:
--- TA8|GkEKBHRlc3QSDBICAAAYASIECTLePxIMEgIAABgBIgQJNNw/EgwSAgABGAEiBAk03D8aAmMxIgIo
--- ASICKAIogCB4Ag==
+SELECT 'TA8', encode(ST_AsMVT('test', 4096, 'geom', q), 'base64') FROM (
+ SELECT 1::int AS c1, ST_AsMVTGeom(ST_GeomFromText('POINT(25 17)'),
+ ST_MakeBox2D(ST_Point(0, 0), ST_Point(4096, 4096)), 4096, 0, false) AS geom
+ UNION
+ SELECT 1::int AS c1, ST_AsMVTGeom(ST_GeomFromText('POINT(26 18)'),
+ ST_MakeBox2D(ST_Point(0, 0), ST_Point(4096, 4096)), 4096, 0, false) AS geom
+ UNION
+ SELECT 2::int AS c1, ST_AsMVTGeom(ST_GeomFromText('POINT(26 18)'),
+ ST_MakeBox2D(ST_Point(0, 0), ST_Point(4096, 4096)), 4096, 0, false) AS geom) AS q;
-- unsupported input
SELECT 'TU2';