diff options
author | Andy Shaw <andy.shaw@qt.io> | 2018-01-16 09:54:01 +0100 |
---|---|---|
committer | Christian Ehrlicher <ch.ehrlicher@gmx.de> | 2019-01-23 20:07:09 +0000 |
commit | 461ef575bcf778ba24b0be6b775098d4b80ae5e1 (patch) | |
tree | 068c1896a908482ed8d0aa88712c82bcfb0e15b0 /src/sql/doc/src | |
parent | 7c69f6171ddc76d22e4f6e433be69c5cf365db8f (diff) |
Always escape the table names when creating the SQL statement
Since some databases are case sensitive if part of the query is quoted,
then we should ensure that all instances of the table name are escaped
unless the test is delibrately testing the non-escaped case.
As a result, this commit also removes some expected failures pertaining
to PostgreSQL and also adds an entry to the list of tables being dropped
when a test is finished.
[ChangeLog][Sql][PostgreSQL] QSqlDatabase is now stricter about table
names when used with record() and primaryIndex(). If the tablename was
not quoted when it was created, then the table name passed to record()
and primaryIndex() needs to be in lower case so that PostgreSQL is
able to find it.
Fixes: QTBUG-65788
Change-Id: Id1f54cb66b761c39edf858501b730ede7eec1fd3
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Diffstat (limited to 'src/sql/doc/src')
-rw-r--r-- | src/sql/doc/src/sql-driver.qdoc | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/sql/doc/src/sql-driver.qdoc b/src/sql/doc/src/sql-driver.qdoc index fd95e89812..cccce48bb3 100644 --- a/src/sql/doc/src/sql-driver.qdoc +++ b/src/sql/doc/src/sql-driver.qdoc @@ -381,6 +381,23 @@ multibyte enabled PostgreSQL server can be found in the PostgreSQL Administrator Guide, Chapter 5. + \section3 QPSQL Case Sensitivity + + PostgreSQL databases will only respect case sensitivity if the table or field + name is quoted when the table is created. So for example, a SQL query such + as: + + \snippet code/doc_src_sql-driver.qdoc 39 + + will ensure that it can be accessed with the same case that was used. If the + table or field name is not quoted when created, the actual table name + or field name will be lower-case. When QSqlDatabase::record() or + QSqlDatabase::primaryIndex() access a table or field that was unquoted + when created, the name passed to the function must be lower-case to + ensure it is found. For example: + + \snippet code/doc_src_sql-driver.qdoc 40 + \section3 QPSQL BLOB Support Binary Large Objects are supported through the \c BYTEA field type in |