﻿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
4432	get_sql_sequence_reset doesn't work on tables that have no records.	Tai Lee	Adrian Holovaty	"the sql generated by these methods (which only apply to postgresql and postgresql_psycopg2) sets the new sequence to {{{max(pk)}}}, which works great when the table has a few records, but fails to reset the sequence when there are no records.

{{{
Python 2.4.3 (#1, May  2 2006, 19:34:13) 
[GCC 4.0.0 20041026 (Apple Computer, Inc. build 4061)] on darwin
Type ""help"", ""copyright"", ""credits"" or ""license"" for more information.
(InteractiveConsole)
>>> from django.contrib.sites import models
>>> from django.core.management import disable_termcolors, get_sql_sequence_reset
>>> from django.db import connection
>>> disable_termcolors()
>>> cursor = connection.cursor()
>>> models.Site.objects.all().delete()
>>> models.Site.objects.all()
[]
>>> s = models.Site.objects.create(id=1, name='example.com', domain='example.com')
>>> s.id
1
>>> for sql in get_sql_sequence_reset(models): cursor.execute(sql)
... 
>>> s = models.Site.objects.create(name='example.com', domain='example.com')
>>> s.id
2L
>>> models.Site.objects.all().delete()
>>> models.Site.objects.all()
[]
>>> for sql in get_sql_sequence_reset(models): cursor.execute(sql)
... 
>>> s = models.Site.objects.create(name='example.com', domain='example.com')
>>> s.id
3L
>>> s = models.Site.objects.create(name='example.com', domain='example.com')
>>> s.id
4L
>>> s.delete()
>>> models.Site.objects.all()
[<Site: example.com>]
>>> for sql in get_sql_sequence_reset(models): cursor.execute(sql)
... 
>>> s = models.Site.objects.create(name='example.com', domain='example.com')
>>> s.id
4L
>>> 
}}}

it could be fixed by setting the sequence to {{{max(pk)}}} only if {{{model.objects.count()}}} is greater than 0, otherwise set it back to 0.
"		closed	Database layer (models, ORM)	dev		fixed	get_sql_sequence_reset max id empty table no records	real.human@…	Ready for checkin	1	0	0	0	0	0
