Skip to content


Subversion checkout URL

You can clone with
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...
1 parent 2322906 commit 975c5afdb5a0c2f9f61f9faecf8dbd928c4996b7 @claudep claudep committed
Showing with 18 additions and 0 deletions.
  1. +18 −0 docs/releases/1.6.txt
18 docs/releases/1.6.txt
@@ -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", [])
+``SQLite`` users need to check and update such queries.

0 comments on commit 975c5af

Please sign in to comment.
Something went wrong with that request. Please try again.