mirror of
https://github.com/mapnik/mapnik.git
synced 2025-12-08 20:13:09 +00:00
postgis: test !@uservar! interpolation
This commit is contained in:
parent
6bbb391005
commit
a13cb382e0
@ -26,6 +26,7 @@
|
||||
#include <mapnik/datasource.hpp>
|
||||
#include <mapnik/datasource_cache.hpp>
|
||||
#include <mapnik/geometry/geometry_type.hpp>
|
||||
#include <mapnik/unicode.hpp>
|
||||
#include <mapnik/util/fs.hpp>
|
||||
|
||||
/*
|
||||
@ -303,6 +304,40 @@ TEST_CASE("postgis") {
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("Postgis interpolates !@uservar! tokens in query")
|
||||
{
|
||||
mapnik::parameters params(base_params);
|
||||
params["table"] = "(SELECT * FROM public.test"
|
||||
" WHERE GeometryType(geom) = !@wantedGeomType!"
|
||||
" LIMIT 1) AS data";
|
||||
auto ds = mapnik::datasource_cache::instance().create(params);
|
||||
REQUIRE(ds != nullptr);
|
||||
|
||||
mapnik::transcoder tr("utf8");
|
||||
mapnik::query qry(ds->envelope());
|
||||
qry.set_variables({{"wantedGeomType", tr.transcode("POINT")}});
|
||||
CHECK(qry.variables().count("wantedGeomType") == 1);
|
||||
|
||||
auto featureset = ds->features(qry);
|
||||
auto feature = featureset->next();
|
||||
CHECKED_IF(feature != nullptr)
|
||||
{
|
||||
auto const& geom = feature->get_geometry();
|
||||
CHECK(mapnik::geometry::geometry_type(geom) == mapnik::geometry::Point);
|
||||
}
|
||||
|
||||
qry.set_variables({{"wantedGeomType", tr.transcode("POLYGON")}});
|
||||
CHECK(qry.variables().count("wantedGeomType") == 1);
|
||||
|
||||
featureset = ds->features(qry);
|
||||
feature = featureset->next();
|
||||
CHECKED_IF(feature != nullptr)
|
||||
{
|
||||
auto const& geom = feature->get_geometry();
|
||||
CHECK(mapnik::geometry::geometry_type(geom) == mapnik::geometry::Polygon);
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("Postgis query extent: full dataset")
|
||||
{
|
||||
//include schema to increase coverage
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user