﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
22272	model.DecimalField with decimal_places=0	merb	nobody	"Currently I can't create DecimalField with decimal_places=0 on Postgresql with psycopg2 (sqlite3 works as expected)

In PostgreSQL I can create numeric fields with a scale of zero: http://www.postgresql.org/docs/9.3/static/datatype-numeric.html

But the current implementation disallows this: (The Exception I hit)

{{{
Running migrations:
  Applying envisia_article.0001_initial...DEBUG:django.db.backends:(0.002) 
            SELECT c.relname
            FROM pg_catalog.pg_class c
            LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
            WHERE c.relkind IN ('r', 'v', '')
                AND n.nspname NOT IN ('pg_catalog', 'pg_toast')
                AND pg_catalog.pg_table_is_visible(c.oid); args=None
DEBUG:django.db.backends.schema:CREATE TABLE ""envisia_article_solderresist"" (""id"" serial NOT NULL PRIMARY KEY, ""name"" varchar(100) NULL, ""name_en"" varchar(100) NULL); (params [])
DEBUG:django.db.backends:(0.003) CREATE TABLE ""envisia_article_solderresist"" (""id"" serial NOT NULL PRIMARY KEY, ""name"" varchar(100) NULL, ""name_en"" varchar(100) NULL); args=[]
DEBUG:django.db.backends.schema:CREATE TABLE ""envisia_article_bestpressurecolor"" (""id"" serial NOT NULL PRIMARY KEY, ""name"" varchar(100) NULL, ""name_en"" varchar(100) NULL); (params [])
DEBUG:django.db.backends:(0.001) CREATE TABLE ""envisia_article_bestpressurecolor"" (""id"" serial NOT NULL PRIMARY KEY, ""name"" varchar(100) NULL, ""name_en"" varchar(100) NULL); args=[]
DEBUG:django.db.backends.schema:CREATE TABLE ""envisia_article_cuinside"" (""id"" serial NOT NULL PRIMARY KEY, ""value"" numeric(10, None) NOT NULL); (params [])
DEBUG:django.db.backends:(0.001) CREATE TABLE ""envisia_article_cuinside"" (""id"" serial NOT NULL PRIMARY KEY, ""value"" numeric(10, None) NOT NULL); args=[]
Traceback (most recent call last):
  File ""/Users/schmitch/Programme/virtualenv/envisia_dashboard/lib/python3.3/site-packages/Django-1.7a2-py3.3.egg/django/db/backends/utils.py"", line 61, in execute
    return self.cursor.execute(sql, params)
psycopg2.DataError: invalid input syntax for integer: ""none""
LINE 1: ...nside"" (""id"" serial NOT NULL PRIMARY KEY, ""value"" numeric(10...
                                                             ^


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File ""./manage.py"", line 10, in <module>
    execute_from_command_line(sys.argv)
  File ""/Users/schmitch/Programme/virtualenv/envisia_dashboard/lib/python3.3/site-packages/Django-1.7a2-py3.3.egg/django/core/management/__init__.py"", line 427, in execute_from_command_line
    utility.execute()
  File ""/Users/schmitch/Programme/virtualenv/envisia_dashboard/lib/python3.3/site-packages/Django-1.7a2-py3.3.egg/django/core/management/__init__.py"", line 419, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File ""/Users/schmitch/Programme/virtualenv/envisia_dashboard/lib/python3.3/site-packages/Django-1.7a2-py3.3.egg/django/core/management/base.py"", line 287, in run_from_argv
    self.execute(*args, **options.__dict__)
  File ""/Users/schmitch/Programme/virtualenv/envisia_dashboard/lib/python3.3/site-packages/Django-1.7a2-py3.3.egg/django/core/management/base.py"", line 336, in execute
    output = self.handle(*args, **options)
  File ""/Users/schmitch/Programme/virtualenv/envisia_dashboard/lib/python3.3/site-packages/Django-1.7a2-py3.3.egg/django/core/management/commands/migrate.py"", line 145, in handle
    executor.migrate(targets, plan, fake=options.get(""fake"", False))
  File ""/Users/schmitch/Programme/virtualenv/envisia_dashboard/lib/python3.3/site-packages/Django-1.7a2-py3.3.egg/django/db/migrations/executor.py"", line 60, in migrate
    self.apply_migration(migration, fake=fake)
  File ""/Users/schmitch/Programme/virtualenv/envisia_dashboard/lib/python3.3/site-packages/Django-1.7a2-py3.3.egg/django/db/migrations/executor.py"", line 94, in apply_migration
    migration.apply(project_state, schema_editor)
  File ""/Users/schmitch/Programme/virtualenv/envisia_dashboard/lib/python3.3/site-packages/Django-1.7a2-py3.3.egg/django/db/migrations/migration.py"", line 97, in apply
    operation.database_forwards(self.app_label, schema_editor, project_state, new_state)
  File ""/Users/schmitch/Programme/virtualenv/envisia_dashboard/lib/python3.3/site-packages/Django-1.7a2-py3.3.egg/django/db/migrations/operations/models.py"", line 28, in database_forwards
    schema_editor.create_model(model)
  File ""/Users/schmitch/Programme/virtualenv/envisia_dashboard/lib/python3.3/site-packages/Django-1.7a2-py3.3.egg/django/db/backends/schema.py"", line 243, in create_model
    self.execute(sql, params)
  File ""/Users/schmitch/Programme/virtualenv/envisia_dashboard/lib/python3.3/site-packages/Django-1.7a2-py3.3.egg/django/db/backends/schema.py"", line 95, in execute
    cursor.execute(sql, params)
  File ""/Users/schmitch/Programme/virtualenv/envisia_dashboard/lib/python3.3/site-packages/Django-1.7a2-py3.3.egg/django/db/backends/utils.py"", line 77, in execute
    return super(CursorDebugWrapper, self).execute(sql, params)
  File ""/Users/schmitch/Programme/virtualenv/envisia_dashboard/lib/python3.3/site-packages/Django-1.7a2-py3.3.egg/django/db/backends/utils.py"", line 61, in execute
    return self.cursor.execute(sql, params)
  File ""/Users/schmitch/Programme/virtualenv/envisia_dashboard/lib/python3.3/site-packages/Django-1.7a2-py3.3.egg/django/db/utils.py"", line 93, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File ""/Users/schmitch/Programme/virtualenv/envisia_dashboard/lib/python3.3/site-packages/Django-1.7a2-py3.3.egg/django/utils/six.py"", line 535, in reraise
    raise value.with_traceback(tb)
  File ""/Users/schmitch/Programme/virtualenv/envisia_dashboard/lib/python3.3/site-packages/Django-1.7a2-py3.3.egg/django/db/backends/utils.py"", line 61, in execute
    return self.cursor.execute(sql, params)
django.db.utils.DataError: invalid input syntax for integer: ""none""
LINE 1: ...nside"" (""id"" serial NOT NULL PRIMARY KEY, ""value"" numeric(10...
                                                             ^
}}}

As you can see, since I've runnning with debug is that numeric() is numeric(10, None) instead of numeric(10) or numeric(10, 0).
Which is a bug and shouldn't occur."	Bug	closed	Database layer (models, ORM)	1.7-alpha-2	Release blocker	fixed		merb	Ready for checkin	0	0	0	0	0	0
