if test ! "$GDAL_VERSION_NUMBER" -ge "$GDAL_MIN_VERSION_NUMBER" ; then
AC_MSG_RESULT([not found])
AC_MSG_ERROR([PostGIS requires GDAL >= $GDAL_MIN_VERSION])
- fi
+ fi
+ AC_DEFINE_UNQUOTED([POSTGIS_GDAL_VERSION], [$POSTGIS_GDAL_VERSION], [GDAL library version])
+ AC_SUBST([POSTGIS_GDAL_VERSION])
else
AC_MSG_RESULT([not found])
AC_MSG_ERROR([gdal-config not found. Try --with-gdalconfig=<path to gdal-config>])
libver text;\r
projver text;\r
geosver text;\r
+ gdalver text;\r
libxmlver text;\r
usestats bool;\r
dbproc text;\r
SELECT postgis_lib_version() INTO libver;\r
SELECT postgis_proj_version() INTO projver;\r
SELECT postgis_geos_version() INTO geosver;\r
+ SELECT postgis_gdal_version() INTO gdalver;\r
SELECT postgis_libxml_version() INTO libxmlver;\r
SELECT postgis_uses_stats() INTO usestats;\r
SELECT postgis_scripts_installed() INTO dbproc;\r
fullver = fullver || ' PROJ="' || projver || '"';\r
END IF;\r
\r
+ IF gdalver IS NOT NULL THEN\r
+ fullver = fullver || ' GDAL="' || gdalver || '"';\r
+ END IF;\r
+\r
IF libxmlver IS NOT NULL THEN\r
fullver = fullver || ' LIBXML="' || libxmlver || '"';\r
END IF;\r
/* PostGIS Raster version */
#undef POSTGIS_RASTER_VERSION
+/* GDAL library version */
+#undef POSTGIS_GDAL_VERSION
+
/* Define to 1 if GDAL has GDALFPolygonize function. */
#undef GDALFPOLYGONIZE
}
}
+/*
+ convert name to GDAL Resample Algorithm
+*/
GDALResampleAlg
rt_util_gdal_resample_alg(const char *algname) {
if (!algname || !strlen(algname)) return GRA_NearestNeighbour;
return GRA_NearestNeighbour;
}
+/*
+ convert rt_pixtype to GDALDataType
+*/
GDALDataType
rt_util_pixtype_to_gdal_datatype(rt_pixtype pt) {
switch (pt) {
return GDT_Unknown;
}
+/*
+ get GDAL runtime version information
+*/
+const char*
+rt_util_gdal_version(const char *request) {
+ if (NULL == request || !strlen(request))
+ return GDALVersionInfo("RELEASE_NAME");
+ else
+ return GDALVersionInfo(request);
+}
+
/*- rt_context -------------------------------------------------------*/
/* Functions definitions */
GDALDataType
rt_util_pixtype_to_gdal_datatype(rt_pixtype pt);
+/*
+ get GDAL runtime version information
+*/
+const char*
+rt_util_gdal_version(const char *request);
+
/*
helper macros for consistent floating point equality checks
*/
/* Utility functions */
Datum RASTER_lib_version(PG_FUNCTION_ARGS);
Datum RASTER_lib_build_date(PG_FUNCTION_ARGS);
+Datum RASTER_gdal_version(PG_FUNCTION_ARGS);
/* Input/output and format conversions */
Datum RASTER_in(PG_FUNCTION_ARGS);
PG_RETURN_POINTER(result);
}
+PG_FUNCTION_INFO_V1(RASTER_gdal_version);
+Datum RASTER_gdal_version(PG_FUNCTION_ARGS)
+{
+ const char *ver = rt_util_gdal_version("--version");
+ text *result = cstring2text(ver);
+ PG_RETURN_POINTER(result);
+}
+
/**
* Input is a string with hex chars in it.
* Convert to binary and put in the result
------------------------------------------------------------------------------
-----------------------------------------------------------------------
--- RasterLib Version
+-- Raster Version
-----------------------------------------------------------------------
CREATE OR REPLACE FUNCTION postgis_raster_lib_version()
AS 'MODULE_PATHNAME', 'RASTER_lib_build_date'
LANGUAGE 'C' IMMUTABLE; -- a new lib will require a new session
+CREATE OR REPLACE FUNCTION postgis_gdal_version()
+ RETURNS text
+ AS 'MODULE_PATHNAME', 'RASTER_gdal_version'
+ LANGUAGE 'C' IMMUTABLE;
+
-----------------------------------------------------------------------
-- Raster Accessors
-----------------------------------------------------------------------
geosver=`${PSQL} -tAc "select postgis_geos_version()" "${DB}"`
projver=`${PSQL} -tAc "select postgis_proj_version()" "${DB}"`
+gdalver=`${PSQL} -tAc "select postgis_gdal_version()" "${DB}"`
libbuilddate=`${PSQL} -tAc "select postgis_lib_build_date()" "${DB}"`
pgsqlver=`${PSQL} -tAc "select version()" "${DB}"`
if [ -n "$projver" ]; then
echo " PROJ: $projver"
fi
+if [ -n "$gdalver" ]; then
+ echo " GDAL: $gdalver"
+fi
###################################################
#