Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Added release note about percent literals in cursor.execute

Thanks Aymeric Augustin for noticing the omission and Tim Graham
for the text review.
Fixes #9055 (again).
  • Loading branch information...
commit 975c5afdb5a0c2f9f61f9faecf8dbd928c4996b7 1 parent 2322906
Claude Paroz claudep authored
Showing with 18 additions and 0 deletions.
  1. +18 −0 docs/releases/1.6.txt
18 docs/releases/1.6.txt
View
@@ -392,6 +392,24 @@ If you do not apply this change, the behaviour is unchanged: on MySQL, IPv6
addresses are silently truncated; on Oracle, an exception is generated. No
database change is needed for SQLite or PostgreSQL databases.
+Percent literals in ``cursor.execute`` queries
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+When you are running raw SQL queries through the
+:ref:`cursor.execute <executing-custom-sql>` method, the rule about doubling
+percent literals (``%``) inside the query has been unified. Past behavior
+depended on the database backend. Now, across all backends, you only need to
+double literal percent characters if you are also providing replacement
+parameters. For example::
+
+ # No parameters, no percent doubling
+ cursor.execute("SELECT foo FROM bar WHERE baz = '30%'")
+
+ # Parameters passed, non-placeholders have to be doubled
+ cursor.execute("SELECT foo FROM bar WHERE baz = '30%%' and id = %s", [self.id])
+
+``SQLite`` users need to check and update such queries.
+
Miscellaneous
~~~~~~~~~~~~~
Please sign in to comment.
Something went wrong with that request. Please try again.