65 MaterializedView = 1 << 5,
67 IncludeSystemTables = 1 << 7,
141 SIP_PYOBJECT __next__();
143 QList<QVariant> result;
144 Py_BEGIN_ALLOW_THREADS
145 result = sipCpp->nextRow( );
147 if ( ! result.isEmpty() )
149 const sipTypeDef *qvariantlist_type = sipFindType(
"QList<QVariant>" );
150 sipRes = sipConvertFromNewType(
new QList<QVariant>( result ), qvariantlist_type, Py_None );
154 PyErr_SetString( PyExc_StopIteration,
"" );
166 struct CORE_EXPORT QueryResultIterator
SIP_SKIP
169 QVariantList nextRow();
172 bool hasNextRow()
const;
175 long long fetchedRowCount();
178 long long rowCount();
180 virtual ~QueryResultIterator() =
default;
184 virtual QVariantList nextRowPrivate() = 0;
185 virtual bool hasNextRowPrivate()
const = 0;
186 virtual long long rowCountPrivate()
const = 0;
188 mutable qlonglong mFetchedRowCount = 0;
189 mutable QMutex mMutex;
198 void appendColumn(
const QString &columnName )
SIP_SKIP;
205 QueryResult( std::shared_ptr<QueryResultIterator> iterator )
SIP_SKIP;
216 double queryExecutionTime( )
const;
221 void setQueryExecutionTime(
double queryExecutionTime );
227 mutable std::shared_ptr<QueryResultIterator> mResultIterator;
228 QStringList mColumns;
230 double mQueryExecutionTime = 0;
253 bool disableSelectAtId =
false;
272 SIP_PYOBJECT __repr__();
274 QString str = QStringLiteral(
"<QgsAbstractDatabaseProviderConnection.TableProperty: '%1'>" ).arg( sipCpp->tableName() );
275 sipRes = PyUnicode_FromString( str.toUtf8().constData() );
286 SIP_PYOBJECT __repr__();
288 QString str = QStringLiteral(
"<QgsAbstractDatabaseProviderConnection.TableProperty.GeometryColumnType: '%1, %2'>" ).arg(
QgsWkbTypes::displayString( sipCpp->wkbType ), sipCpp->crs.authid() );
289 sipRes = PyUnicode_FromString( str.toUtf8().constData() );
298 return this->crs == other.
crs && this->wkbType == other.
wkbType;
309 QString tableName()
const;
316 void setTableName(
const QString &name );
328 QList<QgsAbstractDatabaseProviderConnection::TableProperty::GeometryColumnType> geometryColumnTypes()
const;
333 void setGeometryColumnTypes(
const QList<QgsAbstractDatabaseProviderConnection::TableProperty::GeometryColumnType> &geometryColumnTypes );
342 QString defaultName()
const;
353 QString schema()
const;
358 void setSchema(
const QString &schema );
363 QString geometryColumn()
const;
368 void setGeometryColumn(
const QString &geometryColumn );
373 QStringList primaryKeyColumns()
const;
378 void setPrimaryKeyColumns(
const QStringList &primaryKeyColumns );
383 QList<QgsCoordinateReferenceSystem> crsList()
const;
398 QString comment()
const;
403 void setComment(
const QString &comment );
411 QVariantMap info()
const;
419 void setInfo(
const QVariantMap &info );
426 int geometryColumnCount()
const;
431 void setGeometryColumnCount(
int geometryColumnCount );
444 int maxCoordinateDimensions()
const;
451 QList<GeometryColumnType> mGeometryColumnTypes;
457 QString mGeometryColumn;
459 int mGeometryColumnCount;
461 QStringList mPkColumns;
486 CreateVectorTable = 1 << 1,
487 DropRasterTable = 1 << 2,
488 DropVectorTable = 1 << 3,
489 RenameVectorTable = 1 << 4,
490 RenameRasterTable = 1 << 5,
491 CreateSchema = 1 << 6,
493 RenameSchema = 1 << 8,
499 TableExists = 1 << 14,
501 CreateSpatialIndex = 1 << 16,
502 SpatialIndexExists = 1 << 17,
503 DeleteSpatialIndex = 1 << 18,
504 DeleteField = 1 << 19,
505 DeleteFieldCascade = 1 << 20,
507 ListFieldDomains = 1 << 22,
508 RetrieveFieldDomain = 1 << 23,
509 SetFieldDomain = 1 << 24,
510 AddFieldDomain = 1 << 25,
511 RenameField = 1 << 26,
512 RetrieveRelationships = 1 << 27,
513 AddRelationship = 1 << 28,
514 UpdateRelationship = 1 << 29,
515 DeleteRelationship = 1 << 30,
532 SinglePoint = 1 << 5,
533 SingleLineString = 1 << 6,
534 SinglePolygon = 1 << 7,
535 PolyhedralSurfaces = 1 << 8,
539 Q_ENUM( GeometryColumnCapability )
574 Qgis::DatabaseProviderConnectionCapabilities2 capabilities2() const;
588 virtual
Qgis::DatabaseProviderTableImportCapabilities tableImportCapabilities() const = 0;
594 virtual
Qgis::SqlLayerDefinitionCapabilities sqlLayerDefinitionCapabilities();
912 QString providerKey() const;
923 virtual QMultiMap<
Qgis::SqlKeywordCategory, QStringList> sqlDictionary();
931 virtual QSet< QString > illegalFieldNames() const;
942 virtual QString defaultPrimaryKeyColumnName() const;
953 virtual QString defaultGeometryColumnName() const;
972 virtual QList<
Qgis::FieldDomainType > supportedFieldDomainTypes() const;
1056 virtual QList< Qgis::RelationshipCardinality > supportedRelationshipCardinalities()
const;
1058 SIP_PYOBJECT supportedRelationshipCardinalities() const
SIP_TYPEHINT( List[
Qgis.RelationshipCardinality] );
1062 const QList<
Qgis::RelationshipCardinality > cppRes = sipCpp->supportedRelationshipCardinalities();
1064 PyObject *l = PyList_New( cppRes.size() );
1070 for (
int i = 0; i < cppRes.size(); ++i )
1072 PyObject *eobj = sipConvertFromEnum(
static_cast<int>( cppRes.at( i ) ),
1073 sipType_Qgis_RelationshipCardinality );
1080 PyList_SetItem( l, i, eobj );
1101 virtual QList< Qgis::RelationshipStrength > supportedRelationshipStrengths()
const;
1103 SIP_PYOBJECT supportedRelationshipStrengths() const
SIP_TYPEHINT( List[
Qgis.RelationshipStrength] );
1107 const QList<
Qgis::RelationshipStrength > cppRes = sipCpp->supportedRelationshipStrengths();
1109 PyObject *l = PyList_New( cppRes.size() );
1115 for (
int i = 0; i < cppRes.size(); ++i )
1117 PyObject *eobj = sipConvertFromEnum(
static_cast<int>( cppRes.at( i ) ),
1118 sipType_Qgis_RelationshipStrength );
1125 PyList_SetItem( l, i, eobj );
1157 virtual QStringList relatedTableTypes()
const;
1237 void checkCapability( Capability capability ) const;
1244 void checkCapability(
Qgis::DatabaseProviderConnectionCapability2 capability ) const;
1247 QString sanitizeSqlForQueryLayer( const QString &sql ) const
SIP_SKIP;
1252 Qgis::DatabaseProviderConnectionCapabilities2 mCapabilities2 =
Qgis::DatabaseProviderConnectionCapabilities2()
SIP_SKIP;
1255 Qgis::SqlLayerDefinitionCapabilities mSqlLayerDefinitionCapabilities =
Qgis::SqlLayerDefinitionCapabilities()
SIP_SKIP;
1256 QString mProviderKey;
Q_DECLARE_OPERATORS_FOR_FLAGS(QgsTextRendererUtils::CurvedTextFlags)