def last_inserted_ids(self):
return self.context.last_inserted_ids
- def rowid_column_name(self):
+ def oid_column_name(self):
return "rowid"
def compiler(self, statement, bindparams, **kwargs):
def last_inserted_ids(self):
return self.context.last_inserted_ids
- def rowid_column_name(self):
+ def oid_column_name(self):
if self.use_oids:
return "oid"
else:
table = compiled.statement.table
cursor = proxy()
if cursor.lastrowid is not None and table is not None and len(table.primary_key):
- s = sql.select(table.primary_key, table.rowid_column == cursor.lastrowid)
+ s = sql.select(table.primary_key, table.oid_column == cursor.lastrowid)
c = s.compile()
cursor = proxy(str(c), c.get_params())
row = cursor.fetchone()
def last_inserted_ids(self):
return self.context.last_inserted_ids
- def rowid_column_name(self):
+ def oid_column_name(self):
return "oid"
def connect_args(self):
compiler is called within the context of the compile() method."""
raise NotImplementedError()
- def rowid_column_name(self):
- """returns the ROWID column name for this engine, or None if the engine cant/wont support OID/ROWID."""
+ def oid_column_name(self):
+ """returns the oid column name for this engine, or None if the engine cant/wont support OID/ROWID."""
return None
def supports_sane_rowcount(self):
if not no_sort:
if self.order_by:
order_by = self.order_by
- elif self.table.rowid_column is not None:
- order_by = [self.table.rowid_column]
+ elif self.table.oid_column is not None:
+ order_by = [self.table.oid_column]
else:
order_by = None
else:
if self._should_nest(**kwargs):
s2 = sql.select(self.table.primary_key, whereclause, use_labels=True, **kwargs)
- if not kwargs.get('distinct', False) and self.table.rowid_column is not None:
- s2.order_by(self.table.rowid_column)
+ if not kwargs.get('distinct', False) and self.table.oid_column is not None:
+ s2.order_by(self.table.oid_column)
s3 = s2.alias('rowcount')
crit = []
for i in range(0, len(self.table.primary_key)):
if order_by is not None and kwargs.get('order_by', None) is None:
statement.order_by(*order_by)
# for a DISTINCT query, you need the columns explicitly specified in order
- # to use it in "order_by" - in the case we added the rowid column in,
+ # to use it in "order_by" - in the case we added the oid column in,
# add that to the column list
# TODO: this idea should be handled by the SELECT statement itself, insuring
# that order_by cols are in the select list if DISTINCT is selected
- if kwargs.get('distinct', False) and self.table.rowid_column is not None and order_by == [self.table.rowid_column]:
- statement.append_column(self.table.rowid_column)
+ if kwargs.get('distinct', False) and self.table.oid_column is not None and order_by == [self.table.oid_column]:
+ statement.append_column(self.table.oid_column)
# plugin point
if allparams:
if self.order_by is not None:
order_by = self.order_by
- elif self.secondary is not None and self.secondary.rowid_column is not None:
- order_by = [self.secondary.rowid_column]
+ elif self.secondary is not None and self.secondary.oid_column is not None:
+ order_by = [self.secondary.oid_column]
else:
order_by = None
result = self.mapper.select(self.lazywhere, order_by=order_by, params=params)
if self.secondaryjoin is not None:
statement._outerjoin = sql.outerjoin(towrap, self.secondary, self.primaryjoin).outerjoin(self.eagertarget, self.eagersecondary)
- if self.order_by is None and self.secondary.rowid_column is not None:
- statement.order_by(self.secondary.rowid_column)
+ if self.order_by is None and self.secondary.oid_column is not None:
+ statement.order_by(self.secondary.oid_column)
else:
statement._outerjoin = towrap.outerjoin(self.eagertarget, self.eagerprimary)
- if self.order_by is None and self.eagertarget.rowid_column is not None:
- statement.order_by(self.eagertarget.rowid_column)
+ if self.order_by is None and self.eagertarget.oid_column is not None:
+ statement.order_by(self.eagertarget.oid_column)
if self.eager_order_by is not None:
statement.order_by(*self.eager_order_by)
else:
self.onclause = onclause
self.isouter = isouter
- self.rowid_column = self.left.rowid_column
+ self.oid_column = self.left.oid_column
primary_key = property (lambda self: [c for c in self.left.columns if c.primary_key] + [c for c in self.right.columns if c.primary_key])
self.name = alias
self.id = self.name
self.count = 0
- if self.selectable.rowid_column is not None:
- self.rowid_column = self.selectable.rowid_column._make_proxy(self)
+ if self.selectable.oid_column is not None:
+ self.oid_column = self.selectable.oid_column._make_proxy(self)
else:
- self.rowid_column = None
+ self.oid_column = None
for co in selectable.columns:
co._make_proxy(self)
self.table = table
self.id = self.table.name
- def _rowid_col(self):
+ def _oid_col(self):
if not self.table.engine.default_ordering:
return None
- if not hasattr(self, '_rowid_column'):
- if self.table.engine.rowid_column_name() is not None:
- self._rowid_column = schema.Column(self.table.engine.rowid_column_name(), sqltypes.Integer, hidden=True)
- self._rowid_column._set_parent(self.table)
+ if not hasattr(self, '_oid_column'):
+ if self.table.engine.oid_column_name() is not None:
+ self._oid_column = schema.Column(self.table.engine.oid_column_name(), sqltypes.Integer, hidden=True)
+ self._oid_column._set_parent(self.table)
else:
if len(self.table.primary_key) > 0:
c = self.table.primary_key[0]
else:
c = self.table.columns[self.table.columns.keys()[0]]
- self._rowid_column = schema.Column(c.name, c.type, hidden=True)
- self._rowid_column._set_parent(self.table)
- return self._rowid_column
+ self._oid_column = schema.Column(c.name, c.type, hidden=True)
+ self._oid_column._set_parent(self.table)
+ return self._oid_column
- rowid_column = property(_rowid_col)
+ oid_column = property(_oid_col)
engine = property(lambda s: s.table.engine)
columns = property(lambda self: self.table.columns)
self.keyword = keyword
self.selects = selects
self.use_labels = kwargs.pop('use_labels', False)
- self.rowid_column = selects[0].rowid_column
+ self.oid_column = selects[0].oid_column
for s in self.selects:
s.order_by(None)
s.group_by(None)
self.whereclause = None
self.having = None
self._engine = engine
- self.rowid_column = None
+ self.oid_column = None
self.limit = limit
self.offset = offset
print o2.description
self.assert_sql(db, go, [
- ("SELECT orders.order_id AS orders_order_id, orders.user_id AS orders_user_id, orders.isopen AS orders_isopen FROM orders ORDER BY orders.%s" % orders.rowid_column.key, {}),
+ ("SELECT orders.order_id AS orders_order_id, orders.user_id AS orders_user_id, orders.isopen AS orders_isopen FROM orders ORDER BY orders.%s" % orders.oid_column.key, {}),
("SELECT orders.description AS orders_description FROM orders WHERE orders.order_id = :orders_order_id", {'orders_order_id':3})
])
o2 = l[2]
print o2.opened, o2.description, o2.userident
self.assert_sql(db, go, [
- ("SELECT orders.order_id AS orders_order_id FROM orders ORDER BY orders.%s" % orders.rowid_column.key, {}),
+ ("SELECT orders.order_id AS orders_order_id FROM orders ORDER BY orders.%s" % orders.oid_column.key, {}),
("SELECT orders.user_id AS orders_user_id, orders.description AS orders_description, orders.isopen AS orders_isopen FROM orders WHERE orders.order_id = :orders_order_id", {'orders_order_id':3})
])
l = m2.select()
print l[2].user_id
self.assert_sql(db, go, [
- ("SELECT orders.order_id AS orders_order_id, orders.description AS orders_description, orders.isopen AS orders_isopen FROM orders ORDER BY orders.%s" % orders.rowid_column.key, {}),
+ ("SELECT orders.order_id AS orders_order_id, orders.description AS orders_description, orders.isopen AS orders_isopen FROM orders ORDER BY orders.%s" % orders.oid_column.key, {}),
("SELECT orders.user_id AS orders_user_id FROM orders WHERE orders.order_id = :orders_order_id", {'orders_order_id':3})
])
objectstore.clear()
l = m3.select()
print l[3].user_id
self.assert_sql(db, go, [
- ("SELECT orders.order_id AS orders_order_id, orders.user_id AS orders_user_id, orders.description AS orders_description, orders.isopen AS orders_isopen FROM orders ORDER BY orders.%s" % orders.rowid_column.key, {}),
+ ("SELECT orders.order_id AS orders_order_id, orders.user_id AS orders_user_id, orders.description AS orders_description, orders.isopen AS orders_isopen FROM orders ORDER BY orders.%s" % orders.oid_column.key, {}),
])
def testdeepoptions(self):