From 6980730e7d3f962768f44a1d5f5a7013d048cf85 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Mon, 2 Jan 2006 05:22:00 +0000 Subject: [PATCH] rowid->oid --- lib/sqlalchemy/databases/oracle.py | 2 +- lib/sqlalchemy/databases/postgres.py | 4 ++-- lib/sqlalchemy/databases/sqlite.py | 2 +- lib/sqlalchemy/engine.py | 4 ++-- lib/sqlalchemy/mapping/mapper.py | 14 ++++++------- lib/sqlalchemy/mapping/properties.py | 12 +++++------ lib/sqlalchemy/sql.py | 30 ++++++++++++++-------------- test/mapper.py | 8 ++++---- 8 files changed, 38 insertions(+), 38 deletions(-) diff --git a/lib/sqlalchemy/databases/oracle.py b/lib/sqlalchemy/databases/oracle.py index 1f270428cf..526aca1560 100644 --- a/lib/sqlalchemy/databases/oracle.py +++ b/lib/sqlalchemy/databases/oracle.py @@ -88,7 +88,7 @@ class OracleSQLEngine(ansisql.ANSISQLEngine): 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): diff --git a/lib/sqlalchemy/databases/postgres.py b/lib/sqlalchemy/databases/postgres.py index e00d16d048..350f61b756 100644 --- a/lib/sqlalchemy/databases/postgres.py +++ b/lib/sqlalchemy/databases/postgres.py @@ -154,7 +154,7 @@ class PGSQLEngine(ansisql.ANSISQLEngine): 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: @@ -171,7 +171,7 @@ class PGSQLEngine(ansisql.ANSISQLEngine): 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() diff --git a/lib/sqlalchemy/databases/sqlite.py b/lib/sqlalchemy/databases/sqlite.py index 5708247e20..df696664d7 100644 --- a/lib/sqlalchemy/databases/sqlite.py +++ b/lib/sqlalchemy/databases/sqlite.py @@ -110,7 +110,7 @@ class SQLiteSQLEngine(ansisql.ANSISQLEngine): 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): diff --git a/lib/sqlalchemy/engine.py b/lib/sqlalchemy/engine.py index 580d854505..6e04ffa2cb 100644 --- a/lib/sqlalchemy/engine.py +++ b/lib/sqlalchemy/engine.py @@ -258,8 +258,8 @@ class SQLEngine(schema.SchemaEngine): 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): diff --git a/lib/sqlalchemy/mapping/mapper.py b/lib/sqlalchemy/mapping/mapper.py index 6af044fbbd..01dfd05d3c 100644 --- a/lib/sqlalchemy/mapping/mapper.py +++ b/lib/sqlalchemy/mapping/mapper.py @@ -602,8 +602,8 @@ class Mapper(object): 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: @@ -611,8 +611,8 @@ class Mapper(object): 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)): @@ -627,12 +627,12 @@ class Mapper(object): 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 diff --git a/lib/sqlalchemy/mapping/properties.py b/lib/sqlalchemy/mapping/properties.py index d049aec988..e6b41999db 100644 --- a/lib/sqlalchemy/mapping/properties.py +++ b/lib/sqlalchemy/mapping/properties.py @@ -592,8 +592,8 @@ class LazyLoader(PropertyLoader): 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) @@ -714,12 +714,12 @@ class EagerLoader(PropertyLoader): 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) diff --git a/lib/sqlalchemy/sql.py b/lib/sqlalchemy/sql.py index 65246cdf22..25b73c7768 100644 --- a/lib/sqlalchemy/sql.py +++ b/lib/sqlalchemy/sql.py @@ -679,7 +679,7 @@ class Join(FromClause): 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]) @@ -756,10 +756,10 @@ class Alias(FromClause): 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) @@ -905,24 +905,24 @@ class TableImpl(FromClause): 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) @@ -1003,7 +1003,7 @@ class CompoundSelect(SelectBaseMixin, FromClause): 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) @@ -1042,7 +1042,7 @@ class Select(SelectBaseMixin, FromClause): self.whereclause = None self.having = None self._engine = engine - self.rowid_column = None + self.oid_column = None self.limit = limit self.offset = offset diff --git a/test/mapper.py b/test/mapper.py index 2c5cfa7e20..b3df100408 100644 --- a/test/mapper.py +++ b/test/mapper.py @@ -237,7 +237,7 @@ class DeferredTest(MapperSuperTest): 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}) ]) @@ -265,7 +265,7 @@ class DeferredTest(MapperSuperTest): 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}) ]) @@ -277,7 +277,7 @@ class DeferredTest(MapperSuperTest): 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() @@ -287,7 +287,7 @@ class DeferredTest(MapperSuperTest): 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): -- 2.47.2