Skip to content

Commit 45fea7b

Browse files
committed
oracle provider: optionally use extents from metadata table (implements #8850)
1 parent e3e22be commit 45fea7b

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

src/providers/oracle/qgsoracleprovider.cpp

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1993,6 +1993,28 @@ QgsRectangle QgsOracleProvider::extent()
19931993
QString sql;
19941994
QSqlQuery qry( *mConnection );
19951995

1996+
if ( mUseEstimatedMetadata )
1997+
{
1998+
if ( exec( qry, QString( "SELECT sdo_lb,sdo_ub FROM mdsys.all_sdo_geom_metadata m, table(m.diminfo) WHERE owner=%1 AND table_name=%2 AND column_name=%3 AND sdo_dimname='X'" )
1999+
.arg( quotedValue( mOwnerName ) )
2000+
.arg( quotedValue( mTableName ) )
2001+
.arg( quotedValue( mGeometryColumn ) ) ) && qry.next() )
2002+
{
2003+
mLayerExtent.setXMinimum( qry.value( 0 ).toDouble() );
2004+
mLayerExtent.setXMaximum( qry.value( 1 ).toDouble() );
2005+
2006+
if ( exec( qry, QString( "SELECT sdo_lb,sdo_ub FROM mdsys.all_sdo_geom_metadata m, table(m.diminfo) WHERE owner=%1 AND table_name=%2 AND column_name=%3 AND sdo_dimname='Y'" )
2007+
.arg( quotedValue( mOwnerName ) )
2008+
.arg( quotedValue( mTableName ) )
2009+
.arg( quotedValue( mGeometryColumn ) ) ) && qry.next() )
2010+
{
2011+
mLayerExtent.setYMinimum( qry.value( 0 ).toDouble() );
2012+
mLayerExtent.setYMaximum( qry.value( 1 ).toDouble() );
2013+
return mLayerExtent;
2014+
}
2015+
}
2016+
}
2017+
19962018
bool ok = false;
19972019

19982020
if ( !mSpatialIndex.isNull() && ( mUseEstimatedMetadata || mSqlWhereClause.isEmpty() ) )

0 commit comments

Comments
 (0)