@@ -582,11 +582,11 @@ bool QgsOracleProvider::loadFields()
582
582
" ,t.char_used"
583
583
" ,t.data_default"
584
584
" FROM all_tab_columns t"
585
- " WHERE t.owner=%1 AND t.table_name=%2 AND t.column_name<> %3"
585
+ " WHERE t.owner=%1 AND t.table_name=%2%3"
586
586
" ORDER BY t.column_id" )
587
587
.arg ( quotedValue ( mOwnerName ) )
588
588
.arg ( quotedValue ( mTableName ) )
589
- .arg ( quotedValue ( mGeometryColumn ) )
589
+ .arg ( mGeometryColumn . isEmpty () ? " " : QString ( " AND t.column_name<>%1 " ). arg ( quotedValue ( mGeometryColumn ) ) )
590
590
) )
591
591
{
592
592
while ( qry.next () )
@@ -643,50 +643,53 @@ bool QgsOracleProvider::loadFields()
643
643
tr ( " Oracle" ) );
644
644
}
645
645
646
- if ( exec ( qry, QString ( " SELECT i.index_name,i.domidx_opstatus"
647
- " FROM all_indexes i"
648
- " JOIN all_ind_columns c ON i.owner=c.index_owner AND i.index_name=c.index_name AND c.column_name=%3"
649
- " WHERE i.table_owner=%1 AND i.table_name=%2 AND i.ityp_owner='MDSYS' AND i.ityp_name='SPATIAL_INDEX'" )
650
- .arg ( quotedValue ( mOwnerName ) )
651
- .arg ( quotedValue ( mTableName ) )
652
- .arg ( quotedValue ( mGeometryColumn ) ) ) )
646
+ if ( !mGeometryColumn .isEmpty () )
653
647
{
654
- if ( qry.next () )
648
+ if ( exec ( qry, QString ( " SELECT i.index_name,i.domidx_opstatus"
649
+ " FROM all_indexes i"
650
+ " JOIN all_ind_columns c ON i.owner=c.index_owner AND i.index_name=c.index_name AND c.column_name=%3"
651
+ " WHERE i.table_owner=%1 AND i.table_name=%2 AND i.ityp_owner='MDSYS' AND i.ityp_name='SPATIAL_INDEX'" )
652
+ .arg ( quotedValue ( mOwnerName ) )
653
+ .arg ( quotedValue ( mTableName ) )
654
+ .arg ( quotedValue ( mGeometryColumn ) ) ) )
655
655
{
656
- mSpatialIndex = qry.value ( 0 ).toString ();
657
- if ( qry.value ( 1 ).toString () != " VALID" )
656
+ if ( qry.next () )
657
+ {
658
+ mSpatialIndex = qry.value ( 0 ).toString ();
659
+ if ( qry.value ( 1 ).toString () != " VALID" )
660
+ {
661
+ QgsMessageLog::logMessage ( tr ( " Invalid spatial index %1 on column %2.%3.%4 found - expect poor performance." )
662
+ .arg ( mSpatialIndex )
663
+ .arg ( mOwnerName )
664
+ .arg ( mTableName )
665
+ .arg ( mGeometryColumn ),
666
+ tr ( " Oracle" ) );
667
+ mSpatialIndex = QString::null;
668
+ }
669
+ else
670
+ {
671
+ QgsDebugMsg ( QString ( " Valid spatial index %1 found" ).arg ( mSpatialIndex ) );
672
+ }
673
+ }
674
+ else
658
675
{
659
- QgsMessageLog::logMessage ( tr ( " Invalid spatial index %1 on column %2.%3.%4 found - expect poor performance." )
660
- .arg ( mSpatialIndex )
676
+ QgsMessageLog::logMessage ( tr ( " No spatial index on column %1.%2.%3 found - expect poor performance." )
661
677
.arg ( mOwnerName )
662
678
.arg ( mTableName )
663
679
.arg ( mGeometryColumn ),
664
680
tr ( " Oracle" ) );
665
- mSpatialIndex = QString::null;
666
- }
667
- else
668
- {
669
- QgsDebugMsg ( QString ( " Valid spatial index %1 found" ).arg ( mSpatialIndex ) );
670
681
}
671
682
}
672
683
else
673
684
{
674
- QgsMessageLog::logMessage ( tr ( " No spatial index on column %1.%2.%3 found - expect poor performance. " )
685
+ QgsMessageLog::logMessage ( tr ( " Probing for spatial index on column %1.%2.%3 failed [%4] " )
675
686
.arg ( mOwnerName )
676
687
.arg ( mTableName )
677
- .arg ( mGeometryColumn ),
688
+ .arg ( mGeometryColumn )
689
+ .arg ( qry.lastError ().text () ),
678
690
tr ( " Oracle" ) );
679
691
}
680
692
}
681
- else
682
- {
683
- QgsMessageLog::logMessage ( tr ( " Probing for spatial index on column %1.%2.%3 failed [%4]" )
684
- .arg ( mOwnerName )
685
- .arg ( mTableName )
686
- .arg ( mGeometryColumn )
687
- .arg ( qry.lastError ().text () ),
688
- tr ( " Oracle" ) );
689
- }
690
693
691
694
qry.finish ();
692
695
@@ -708,6 +711,9 @@ bool QgsOracleProvider::loadFields()
708
711
if ( field.name () == mGeometryColumn )
709
712
continue ;
710
713
714
+ if ( !types.contains ( field.name () ) )
715
+ continue ;
716
+
711
717
mAttributeFields .append ( QgsField ( field.name (), field.type (), types.value ( field.name () ), field.length (), field.precision (), comments.value ( field.name () ) ) );
712
718
mDefaultValues .append ( defvalues.value ( field.name (), QVariant () ) );
713
719
}
0 commit comments