#26177: Using a Postgres database with TIME_ZONE set to None and USE_TZ set to
False causes an exception
-------------------------------------+-------------------------------------
     Reporter:  jensen-cochran       |      Owner:  nobody
         Type:  Bug                  |     Status:  new
    Component:  Database layer       |    Version:  1.8
  (models, ORM)                      |   Keywords:  postgres postgresql
     Severity:  Normal               |  time zone time_zone TIME_ZONE=None
 Triage Stage:  Unreviewed           |  Has patch:  0
Easy pickings:  0                    |      UI/UX:  0
-------------------------------------+-------------------------------------
 You are supposed to be able to set TIME_ZONE = None and USE_TZ = False in
 order to the use the system time (if you are not on Windows). When using a
 Postgres database, this functionality is broken in 1.8 onward and causes
 an exception to occur when the development server is started.

 The bottom part of the stack trace looks like this:
 {{{
 File "/usr/lib64/python2.7/site-packages/django/db/backends/base/base.py",
 line 121, in connect
     self.init_connection_state()
 File "/usr/lib64/python2.7/site-
 packages/django/db/backends/postgresql_psycopg2/base.py", line 204, in
 init_connection_state
     cursor.execute(self.ops.set_time_zone_sql(), [tz])
 django.db.utils.ProgrammingError: syntax error at or near "NULL"
 }}}

 What is happening is that self.init_connection_state() is not checking
 whether or not the tz setting is None, so None is being formatted into the
 SQL string inside of self.ops.set_time_zone_sql() to get "SET TIME ZONE
 NULL".

 Before 1.8, there was a check in place to make sure that tz was truthy
 before proceeding, but it was removed in
 
[[https://github.com/django/django/commit/30e5356c2ecb220e0ac866a7860aefbc90b97aa0?diff=split|this
 commit]].

 You can reproduce this bug simply by making a new Django project and
 setting TIME_ZONE = None, USE_TZ = False, and setting the default database
 to a postgres database.

 Tested on Django 1.8.0, 1.8.9, and 1.9.2 using PostgreSQL 9.2.9 and Python
 2.7.3 on CentOS 6.5

--
Ticket URL: <https://code.djangoproject.com/ticket/26177>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-updates+unsubscr...@googlegroups.com.
To post to this group, send email to django-updates@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/057.9a6206bf6044c0165c2a6cafeafd7b27%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to