Django

Code

Changeset 6009

Show
Ignore:
Timestamp:
08/25/07 13:56:43 (1 year ago)
Author:
adrian
Message:

Fixed #5055 -- Changed Postgres DatabaseOperations?.sql_flush() to use 'SELECT setval()' instead of 'ALTER SEQUENCE', because the latter only works with Postgres 7.3+. Thanks, Don Arbow

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/db/backends/postgresql/operations.py

    r5972 r6009  
    5353                table_name = sequence_info['table'] 
    5454                column_name = sequence_info['column'] 
    55                 if column_name and len(column_name)>0: 
    56                     # sequence name in this case will be <table>_<column>_seq 
    57                     sql.append("%s %s %s %s %s %s;" % \ 
    58                         (style.SQL_KEYWORD('ALTER'), 
    59                         style.SQL_KEYWORD('SEQUENCE'), 
    60                         style.SQL_FIELD(self.quote_name('%s_%s_seq' % (table_name, column_name))), 
    61                         style.SQL_KEYWORD('RESTART'), 
    62                         style.SQL_KEYWORD('WITH'), 
    63                         style.SQL_FIELD('1') 
    64                         ) 
    65                     ) 
     55                if column_name and len(column_name) > 0: 
     56                    sequence_name = '%s_%s_seq' % (table_name, column_name) 
    6657                else: 
    67                     # sequence name in this case will be <table>_id_seq 
    68                     sql.append("%s %s %s %s %s %s;" % \ 
    69                         (style.SQL_KEYWORD('ALTER'), 
    70                          style.SQL_KEYWORD('SEQUENCE'), 
    71                          style.SQL_FIELD(self.quote_name('%s_id_seq' % table_name)), 
    72                          style.SQL_KEYWORD('RESTART'), 
    73                          style.SQL_KEYWORD('WITH'), 
    74                          style.SQL_FIELD('1') 
    75                          ) 
    76                     ) 
     58                    sequence_name = '%s_id_seq' % table_name 
     59                sql.append("%s setval('%s', 1, false);" % \ 
     60                    (style.SQL_KEYWORD('SELECT'), 
     61                    style.SQL_FIELD(self.quote_name(sequence_name))) 
     62                ) 
    7763            return sql 
    7864        else: