fire_sequence logic can get tripped on a non-sequence backend

Issue #2896 resolved
Mike Bayer repo owner created an issue
from sqlalchemy import *
e = create_engine("sqlite://", echo=True)
metadata = MetaData()

task = Table('y', metadata,
    Column('set_id', Integer, primary_key=True)
    )
dataset = Table("x", metadata,
    Column("set_id", Integer, Sequence("some_seq"), primary_key=True)
)

dataset.append_constraint(ForeignKeyConstraint([dataset.c.set_id](dataset.c.set_id), [task.c.set_id](task.c.set_id)))

metadata.create_all(e)

e.execute(dataset.insert())



  File "/Users/classic/dev/sqlalchemy/lib/sqlalchemy/engine/base.py", line 824, in _execute_context
    context = constructor(dialect, self, conn, *args)
  File "/Users/classic/dev/sqlalchemy/lib/sqlalchemy/engine/default.py", line 512, in _init_compiled
    self.__process_defaults()
  File "/Users/classic/dev/sqlalchemy/lib/sqlalchemy/engine/default.py", line 892, in __process_defaults
    val = self.get_insert_default(c)
  File "/Users/classic/dev/sqlalchemy/lib/sqlalchemy/engine/default.py", line 848, in get_insert_default
    return self._exec_default(column.default, column.type)
  File "/Users/classic/dev/sqlalchemy/lib/sqlalchemy/engine/default.py", line 832, in _exec_default
    return self.fire_sequence(default, type_)
sqlalchemy.exc.StatementError: 'SQLiteExecutionContext' object has no attribute 'fire_sequence' (original cause: AttributeError: 'SQLiteExecutionContext' object has no attribute 'fire_sequence') u'INSERT INTO x (set_id) VALUES (?)' []

Comments (2)

  1. Log in to comment