From 91fb08fbff238129fdebfa1dfc7ac04ff13c16d3 Mon Sep 17 00:00:00 2001 From: Lucio Asnaghi Date: Thu, 18 Nov 2010 14:02:09 +0000 Subject: [PATCH] + parameter to specify the query columns use when getting back geaometries: useful when you have big tables and you don't want to query long fields (long varchar2, blobs, anydata, clobs) which may cause slowdowns --- plugins/input/occi/occi_datasource.cpp | 3 ++- plugins/input/occi/occi_datasource.hpp | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/input/occi/occi_datasource.cpp b/plugins/input/occi/occi_datasource.cpp index 2677f3c56..703854414 100644 --- a/plugins/input/occi/occi_datasource.cpp +++ b/plugins/input/occi/occi_datasource.cpp @@ -73,6 +73,7 @@ occi_datasource::occi_datasource(parameters const& params, bool bind) : datasource (params), type_(datasource::Vector), table_(*params_.get("table","")), + fields_(*params_.get("fields","*")), geometry_field_(*params_.get("geometry_field","")), extent_initialized_(false), desc_(*params_.get("type"), *params_.get("encoding","utf-8")), @@ -194,7 +195,7 @@ void occi_datasource::bind() const // get columns description { std::ostringstream s; - s << "SELECT * FROM (" << table_name << ") WHERE rownum < 1"; + s << "SELECT " fields_ << " FROM (" << table_name << ") WHERE rownum < 1"; try { diff --git a/plugins/input/occi/occi_datasource.hpp b/plugins/input/occi/occi_datasource.hpp index f1b90a032..25c24da35 100644 --- a/plugins/input/occi/occi_datasource.hpp +++ b/plugins/input/occi/occi_datasource.hpp @@ -51,6 +51,7 @@ class occi_datasource : public mapnik::datasource private: int type_; mutable std::string table_; + mutable std::string fields_; mutable std::string geometry_field_; mutable int srid_; mutable bool extent_initialized_;