Merge pull request #38940 from elpaso/bugfix-gh38092-executesql-feedback-followup

Be smart when adding limit: followup #8092
This commit is contained in:
Alessandro Pasotti 2020-09-22 11:32:27 +02:00 committed by GitHub
commit 063b8daab3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -121,7 +121,8 @@ class CursorAdapter():
uri = QgsDataSourceUri(self.connection.uri())
# TODO: make this part provider-agnostic
uri.setTable('(SELECT row_number() OVER () AS __rid__, * FROM (' + self.sql + ' LIMIT 1) as foo)')
sql = self.sql if self.sql.upper().find(' LIMIT ') >= 0 else self.sql + ' LIMIT 1 '
uri.setTable('(SELECT row_number() OVER () AS __rid__, * FROM (' + sql + ') as foo)')
uri.setKeyColumn('__rid__')
# TODO: fetch provider name from connection (QgsAbstractConnectionProvider)
# TODO: re-use the VectorLayer for fetching rows in batch mode