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 Apr 5, 2013
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.