class FBDialect(default.DefaultDialect):
supports_sane_rowcount = False
max_identifier_length = 31
+ preexecute_sequences = True
def __init__(self, type_conv=200, concurrency_level=1, **kwargs):
default.DefaultDialect.__init__(self, **kwargs)
else:
return func.name
- def uses_sequences_for_inserts(self):
- return True
-
def visit_sequence(self, seq):
return "gen_id(" + seq.name + ", 1)"
max_identifier_length = 30
supports_sane_rowcount = True
supports_sane_multi_rowcount = False
+ preexecute_sequences = True
def __init__(self, use_ansi=True, auto_setinputsizes=True, auto_convert_lobs=True, threaded=True, allow_twophase=True, **kwargs):
default.DefaultDialect.__init__(self, default_paramstyle='named', **kwargs)
def visit_outer_join_column(self, vc):
return self.process(vc.column) + "(+)"
- def uses_sequences_for_inserts(self):
- return True
-
def visit_sequence(self, seq):
return self.dialect.identifier_preparer.format_sequence(seq) + ".nextval"
max_identifier_length = 63
supports_sane_rowcount = True
supports_sane_multi_rowcount = False
+ preexecute_sequences = True
def __init__(self, use_oids=False, server_side_cursors=False, **kwargs):
default.DefaultDialect.__init__(self, default_paramstyle='pyformat', **kwargs)
}
)
- def uses_sequences_for_inserts(self):
- return True
-
def visit_sequence(self, seq):
if seq.optional:
return None
Indicate whether the dialect properly implements rowcount for ``UPDATE`` and ``DELETE`` statements
when executed via executemany.
+ preexecute_sequences
+ Indicate if the dialect should pre-execute sequences on primary key columns during an INSERT,
+ if it's desired that the new row's primary key be available after execution.
"""
def create_connect_args(self, url):
max_identifier_length = 9999
supports_sane_rowcount = True
supports_sane_multi_rowcount = True
+ preexecute_sequences = False
def __init__(self, convert_unicode=False, encoding='utf-8', default_paramstyle='named', paramstyle=None, dbapi=None, **kwargs):
self.convert_unicode = convert_unicode
return (self.process(join.left, asfrom=True) + (join.isouter and " LEFT OUTER JOIN " or " JOIN ") + \
self.process(join.right, asfrom=True) + " ON " + self.process(join.onclause))
- def uses_sequences_for_inserts(self):
- return False
-
def visit_sequence(self, seq):
return None
values.append((c, value))
elif isinstance(c, schema.Column):
if self.isinsert:
- if c.primary_key and self.uses_sequences_for_inserts() and not self.inline:
+ if c.primary_key and self.dialect.preexecute_sequences and not self.inline:
values.append((c, create_bind_param(c, None)))
self.prefetch.add(c)
elif isinstance(c.default, schema.ColumnDefault):