On Saturday, November 1, 2014 9:20:18 AM UTC-4, Niphlod wrote:
>
> the only sure thing about this whole thing is "once fixed, add a test for 
> it". Leonel is right: we have two very different syntaxes for the same 
> exact outcome and it makes difficult to track all variables when 
> implementing (or fixing) a feature.
>

Just to be clear, this is not two different syntaxes for the same outcome:

In [1]: db()._select(db.person.name)
Out[1]: 'SELECT  person.name FROM person;'

In [2]: db(db.person)._select(db.person.name)
Out[2]: 'SELECT  person.name FROM person WHERE (person.id IS NOT NULL);'

Yes, the two queries will return the same results, but the two syntaxes 
represent different logic at the Python level and consequently yield 
different valid SQL statements. In fact, the first syntax is probably 
preferable, as it more naturally represents what you really want (a table 
select with no filtering) and more closely parallels the SQL you would 
write in this case (i.e., no WHERE clause). It would be odd for the DAL api 
to force the user to construct a completely superfluous query (WHERE 
clause) when no filtering is desired.

Also, note that db(db.person).select(db.person.name) doesn't work at all 
for keyed tables (i.e., tables with a _primarkey attribute). In that case, 
if the api required a query, you would be forced to write something like 
db(db.person.pk1 != None).select(db.person.name).

Anthony

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to