diff --git a/openerp/addons/base/res/res_users.py b/openerp/addons/base/res/res_users.py index a0e0bd1fe82..eeca380b96d 100644 --- a/openerp/addons/base/res/res_users.py +++ b/openerp/addons/base/res/res_users.py @@ -435,7 +435,9 @@ class res_users(osv.osv): # prevent/delay login in that case. It will also have been logged # as a SQL error, if anyone cares. try: - cr.execute("SELECT id FROM res_users WHERE id=%s FOR UPDATE NOWAIT", (user_id,), log_exceptions=False) + # NO KEY introduced in PostgreSQL 9.3 http://www.postgresql.org/docs/9.3/static/release-9-3.html#AEN115299 + update_clause = 'NO KEY UPDATE' if cr._cnx.server_version >= 90300 else 'UPDATE' + cr.execute("SELECT id FROM res_users WHERE id=%%s FOR %s NOWAIT" % update_clause, (user_id,), log_exceptions=False) cr.execute("UPDATE res_users SET login_date = now() AT TIME ZONE 'UTC' WHERE id=%s", (user_id,)) self.invalidate_cache(cr, user_id, ['login_date'], [user_id]) except Exception: