Author: luke
Date: 2007-03-28 22:18:38 -0600 (Wed, 28 Mar 2007)
New Revision: 2477
Modified:
SQLObject/branches/sqlbuilder-views+1/sqlobject/views.py
Log:
Fix for sqlite: no DISTINCT ON, wrap select alias columns in AS
Modified: SQLObject/branches/sqlbuilder-views+1/sqlobject/views.py
===================================================================
--- SQLObject/branches/sqlbuilder-views+1/sqlobject/views.py 2007-03-29 04:00:20 UTC (rev 2476)
+++ SQLObject/branches/sqlbuilder-views+1/sqlobject/views.py 2007-03-29 04:18:38 UTC (rev 2477)
@@ -96,7 +96,9 @@
clause = getattr(cls.sqlmeta, 'clause', NoDefault)
select = Select(columns,
distinct=True,
- distinctOn=cls.sqlmeta.idName,
+ # @@ LDO check if this really mattered for performance
+ # @@ Postgres (and MySQL?) extension!
+ #distinctOn=cls.sqlmeta.idName,
join=metajoin,
clause=clause)
@@ -108,7 +110,7 @@
last_alias = "%s_base" % alias
last_id = "id"
last = Alias(select, last_alias)
- columns = [SQLConstant("%s.%s"%(last_alias,x.expr2)) for x in columns]
+ columns = [ColumnAS(SQLConstant("%s.%s"%(last_alias,x.expr2)), x.expr2) for x in columns]
for i, agg in enumerate(aggregates):
restriction = agg[0]
@@ -132,7 +134,7 @@
join.append(agg_join)
for col in agg:
- columns.append(SQLConstant("%s.%s"%(agg_alias, col.expr2)))
+ columns.append(ColumnAS(SQLConstant("%s.%s"%(agg_alias, col.expr2)),col.expr2))
last = new_alias
last_alias = agg_alias
|