Showing with 248 additions and 51 deletions.
  1. +3 −1 debian/changelog
  2. +1 −0 debian/compat.precise
  3. +199 −0 debian/control.precise
  4. +6 −6 debian/rules
  5. +28 −34 src/providers/postgres/qgspostgresconn.cpp
  6. +11 −10 src/providers/postgres/qgspostgresprovider.cpp
4 changes: 3 additions & 1 deletion debian/changelog
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,10 @@ qgis (1.9.90) UNRELEASED; urgency=low
* drop extra include path for QtWebkit on oneiric and natty
* add translations for desktop link
* add browser desktop entry
* add support for Ubuntu precise
* build package with libspatialite where available

-- Jürgen E. Fischer <jef@norbit.de> Thu, 23 Feb 2012 09:36:48 +0100
-- Jürgen E. Fischer <jef@norbit.de> Mon, 05 Mar 2012 20:21:48 +0100

qgis (1.8.0) UNRELEASED; urgency=low

Expand Down
1 change: 1 addition & 0 deletions debian/compat.precise
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
7
199 changes: 199 additions & 0 deletions debian/control.precise
Original file line number Diff line number Diff line change
@@ -0,0 +1,199 @@
Source: qgis
Section: science
Priority: extra
Maintainer: Quantum GIS developers <qgis-developer@lists.osgeo.org>
Build-Depends:
bison,
cmake (>= 2.6),
debhelper (>= 7),
flex,
grass-dev,
libexpat1-dev,
libfcgi-dev,
libgdal1-dev,
libgeos-dev (>= 3.0.0),
libgsl0-dev,
libpq-dev,
libproj-dev,
libqt4-dev (>=4.4.0),
libqtwebkit-dev,
libqwt5-qt4-dev,
libspatialite-dev,
libspatialindex-dev,
libsqlite3-dev,
pkg-config,
pyqt4-dev-tools,
python,
python-central (>=0.5),
python-dev,
python-qt4 (>=4.1.0),
python-qt4-dev (>=4.1.0),
python-sip (>= 4.5.0),
python-sip-dev (>= 4.5.0),
git,
doxygen,
graphviz,
txt2tags
Build-Conflicts: libqgis-dev, qgis-dev
Standards-Version: 3.8.4
XS-Python-Version: current
Homepage: http://qgis.org/

Package: qgis
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, qgis-providers (= ${binary:Version}), qgis-common (= ${source:Version})
Recommends: qgis-plugin-grass, python-qgis
Suggests: gpsbabel
Conflicts: uim-qt3
Description: Geographic Information System (GIS)
A Geographic Information System (GIS) manages, analyzes, and displays
databases of geographic information. Quantum GIS (QGIS) supports shape file
viewing and editing, spatial data storage with PostgreSQL/PostGIS, projection
on-the-fly, map composition, and a number of other features via a plugin
interface. QGIS also supports display of various georeferenced raster and
Digital Elevation Model (DEM) formats including GeoTIFF, Arc/Info ASCII Grid,
and USGS ASCII DEM.

Package: qgis-common
Architecture: all
Description: Quantum GIS - architecture-independent data
Quantum GIS is a Geographic Information System (GIS) which manages, analyzes
and display databases of geographic information.
.
This package contains architecture-independent supporting data files for use
with Quantum GIS.

Package: libqgis{QGIS_ABI}
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Replaces: qgis (<=0.9.2rc1), libqgis-core1, libqgis-gui1, libqgis0, libqgis1
Description: Quantum GIS - shared libraries
Quantum GIS is a Geographic Information System (GIS) which manages, analyzes
and display databases of geographic information.
.
This package contains the shared core and gui library that provide an
interface for plugins and stand-alone applications.

Package: libqgis-dev
Architecture: any
Section: libdevel
Depends:
grass-dev,
libexpat1-dev,
libgdal1-dev,
libgeos-dev (>= 3.0.0),
libgsl0-dev,
libpq-dev,
libproj-dev,
libqgis{QGIS_ABI} (= ${binary:Version}),
libqt4-dev (>=4.4.0),
libsqlite3-dev,
python-qt4 (>=4.1.0),
python-qt4-dev (>=4.1.0),
qt4-designer (>=4.4.0)
Provides: qgis-dev
Replaces: qgis-dev, libqgis1-dev, libqgis1.4.0-dev
Description: Quantum GIS - development files
Quantum GIS is a Geographic Information System (GIS) which manages, analyzes
and display databases of geographic information.
.
This package contains the headers and libraries needed to develop plugins for
Quantum GIS.

Package: qgis-plugin-grass
Architecture: any
Depends: qgis (= ${binary:Version}), qgis-plugin-grass-common (= ${source:Version}), ${shlibs:Depends}, ${misc:Depends}, grass{GRASS_ABI}
Description: GRASS plugin for Quantum GIS
Quantum GIS is a Geographic Information System (GIS) which manages, analyzes
and display databases of geographic information.
.
This plugin enables GRASS data access in the Quantum GIS geographic data
viewer.

Package: qgis-plugin-grass-common
Architecture: all
Depends: ${python:Depends}
Replaces: qgis-common (<< 1.5)
Breaks: qgis-common (<< 1.5)
Description: GRASS plugin for Quantum GIS - architecture-independent data
Quantum GIS is a Geographic Information System (GIS) which manages, analyzes
and display databases of geographic information.
.
This package contains architecture-independent supporting data files for use
with the Quantum GIS GRASS plugin.

Package: python-qgis
Section: python
Architecture: any
Depends: python-qt4 (>=4.1.0), python-sip (>= 4.5.0), python-qgis-common (= ${source:Version}), ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}
Provides: ${python:Provides}
XB-Python-Version: ${python:Versions}
Description: Python bindings to Quantum GIS
Quantum GIS is a Geographic Information System (GIS) which manages, analyzes
and display databases of geographic information.
.
This package contains the files for the Python support.

Package: python-qgis-common
Section: python
Architecture: all
Provides: ${python:Provides}
Depends: gdal-bin, python-gdal, ${python:Depends}
XB-Python-Version: ${python:Versions}
Description: Python bindings to Quantum GIS - architecture-independent files
Quantum GIS is a Geographic Information System (GIS) which manages, analyzes
and display databases of geographic information.
.
This package contains architecture-independent files for the Quantum GIS
Python bindings.

Package: qgis-providers
Architecture: any
Depends: qgis-providers-common (= ${source:Version}), ${shlibs:Depends}, ${misc:Depends}
Replaces: qgis (<= 1.6)
Breaks: qgis (<= 1.6)
Description: collection of data providers to Quantum GIS
Quantum GIS is a Geographic Information System (GIS) which manages, analyzes
and display databases of geographic information.
.
This package contains the provider plugins for Quantum GIS.

Package: qgis-providers-common
Architecture: all
Replaces: qgis-common (<= 1.6)
Breaks: qgis-common (<= 1.6)
Description: collection of data providers to Quantum GIS - architecture-independent files
Quantum GIS is a Geographic Information System (GIS) which manages, analyzes
and display databases of geographic information.
.
This package contains architecture-independent files for the Quantum GIS
providers.

Package: qgis-mapserver
Architecture: any
Depends: qgis-providers (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
Description: Quantum GIS mapserver
Quantum GIS is a Geographic Information System (GIS) which manages, analyzes
and display databases of geographic information.
.
This package contains the Quantum GIS mapserver.

Package: qgis-sqlanywhere
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Conflicts: qgis-sqlanywhere1.7.0, qgis-sqlanywhere1.7.1, qgis-sqlanywhere1.8.0
Description: Quantum GIS sql anywhere plugin and provider
Quantum GIS is a Geographic Information System (GIS) which manages, analyzes
and display databases of geographic information.
.
This package contains the Quantum GIS sqlanywhere plugin and provider.

Package: qgis-api-doc
Architecture: all
Section: doc
Description: Quantum GIS API documentation
Quantum GIS is a Geographic Information System (GIS) which manages, analyzes
and display databases of geographic information.
.
This package contains the Quantum GIS API documentation.

12 changes: 6 additions & 6 deletions debian/rules
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)

DISTRIBUTION := $(shell dpkg-parsechangelog --format rfc822 | sed -ne "s/^Distribution: //p")
ifneq ($(DISTRIBUTION),$(findstring $(DISTRIBUTION),"squeeze hardy intrepid jaunty karmic lucid maverick natty oneiric"))
ifneq ($(DISTRIBUTION),$(findstring $(DISTRIBUTION),"squeeze hardy intrepid jaunty karmic lucid maverick natty oneiric precise"))
DISTRIBUTION := sid
endif

Expand All @@ -32,17 +32,17 @@ CMAKE_OPTS := \
-D QGIS_CGIBIN_SUBDIR=/usr/lib/cgi-bin \
-D WITH_APIDOC=TRUE

#ifeq (,$(findstring $(DISTRIBUTION),"squeeze lucid maverick natty oneiric sid"))
ifeq (,$(findstring $(DISTRIBUTION),"squeeze lucid maverick natty oneiric precise sid"))
CMAKE_OPTS += -D WITH_INTERNAL_SPATIALITE=TRUE
#else
# CMAKE_OPTS += -D WITH_INTERNAL_SPATIALITE=FALSE
#endif
else
CMAKE_OPTS += -D WITH_INTERNAL_SPATIALITE=FALSE
endif

ifneq (,$(findstring $(DISTRIBUTION),"sid"))
CMAKE_OPTS += -D WITH_GLOBE=TRUE
endif

ifneq (,$(findstring $(DISTRIBUTION),"squeeze lucid maverick natty oneiric sid"))
ifneq (,$(findstring $(DISTRIBUTION),"squeeze lucid maverick natty oneiric precise sid"))
CMAKE_OPTS += -D WITH_INTERNAL_SPATIALINDEX=FALSE
endif

Expand Down
62 changes: 28 additions & 34 deletions src/providers/postgres/qgspostgresconn.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -349,44 +349,38 @@ bool QgsPostgresConn::getTableInfo( bool searchGeometryColumnsOnly, bool searchP
if ( result.PQresultStatus() != PGRES_TUPLES_OK )
{
PQexecNR( "COMMIT" );

if ( i == 0 )
return false;

continue;
}
else

nGTables++;

for ( int idx = 0; idx < result.PQntuples(); idx++ )
{
nGTables++;
QString tableName = result.PQgetvalue( idx, 0 );
QString schemaName = result.PQgetvalue( idx, 1 );
QString column = result.PQgetvalue( idx, 2 );
QString type = result.PQgetvalue( idx, 3 );
QString srid = result.PQgetvalue( idx, 4 );
QString relkind = result.PQgetvalue( idx, 5 );

QgsDebugMsg( QString( "%1 : %2.%3.%4: %5 %6 %7" )
.arg( gtableName )
.arg( schemaName ).arg( tableName ).arg( column )
.arg( type )
.arg( srid )
.arg( relkind ) );

layerProperty.type = type;
layerProperty.schemaName = schemaName;
layerProperty.tableName = tableName;
layerProperty.geometryColName = column;
layerProperty.pkCols = relkind == "v" ? pkCandidates( schemaName, tableName ) : QStringList();
layerProperty.srid = srid;
layerProperty.sql = "";
layerProperty.isGeography = i == 1;

for ( int idx = 0; idx < result.PQntuples(); idx++ )
{
QString tableName = result.PQgetvalue( idx, 0 );
QString schemaName = result.PQgetvalue( idx, 1 );
QString column = result.PQgetvalue( idx, 2 );
QString type = result.PQgetvalue( idx, 3 );
QString srid = result.PQgetvalue( idx, 4 );
QString relkind = result.PQgetvalue( idx, 5 );

QgsDebugMsg( QString( "%1 : %2.%3.%4: %5 %6 %7" )
.arg( gtableName )
.arg( schemaName ).arg( tableName ).arg( column )
.arg( type )
.arg( srid )
.arg( relkind ) );

layerProperty.type = type;
layerProperty.schemaName = schemaName;
layerProperty.tableName = tableName;
layerProperty.geometryColName = column;
layerProperty.pkCols = relkind == "v" ? pkCandidates( schemaName, tableName ) : QStringList();
layerProperty.srid = srid;
layerProperty.sql = "";
layerProperty.isGeography = i == 1;

mLayersSupported << layerProperty;
nColumns++;
}
mLayersSupported << layerProperty;
nColumns++;
}
}

Expand Down
21 changes: 11 additions & 10 deletions src/providers/postgres/qgspostgresprovider.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2682,10 +2682,14 @@ bool QgsPostgresProvider::getGeometryDetails()
detectedType = result.PQgetvalue( 0, 0 );
detectedSrid = result.PQgetvalue( 0, 1 );
}
else
{
mConnectionRO->PQexecNR( "COMMIT" );
}

if ( !detectedType.isEmpty() )
if ( detectedType.isEmpty() )
{
// check geometry columns
// check geography columns
sql = QString( "SELECT upper(type),srid FROM geography_columns WHERE f_table_name=%1 AND f_geography_column=%2 AND f_table_schema=%3" )
.arg( quotedValue( tableName ) )
.arg( quotedValue( geomCol ) )
Expand All @@ -2695,18 +2699,15 @@ bool QgsPostgresProvider::getGeometryDetails()
result = mConnectionRO->PQexec( sql, false );
QgsDebugMsg( QString( "Geography column query returned %1" ).arg( result.PQntuples() ) );

if ( result.PQresultStatus() == PGRES_TUPLES_OK )
if ( result.PQntuples() == 1 )
{
if ( result.PQntuples() == 1 )
{
detectedType = result.PQgetvalue( 0, 0 );
detectedSrid = result.PQgetvalue( 0, 1 );
mIsGeography = true;
}
detectedType = result.PQgetvalue( 0, 0 );
detectedSrid = result.PQgetvalue( 0, 1 );
mIsGeography = true;
}
else
{
mConnectionRO->PQexecNR( "ROLLBACK" );
mConnectionRO->PQexecNR( "COMMIT" );
}
}
}
Expand Down