the docs say that .subselect is supported. Changing to .nested_select works ok
However, if you make a trivial subquery like:
sub = db(db.pet.name.contains("f")).nested_select(db.pet.id) rows = db(db.pet.id.belongs(sub)).select()
for row in rows:
print(row.name)
It crashes with this traceback
Traceback (most recent call last):
File "/home/alan-etkin/Pruebas/test_case_subqueries.py", line 25, in <module>
rows = db(db.pet.id.belongs(sub)).select()
File "/home/alan-etkin/iapydal_venv/lib/python3.14/site-packages/pydal/objects.py", line 2971, in select
return adapter.select(self.query, fields, attributes)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/alan-etkin/iapydal_venv/lib/python3.14/site-packages/pydal/adapters/sqlite.py", line 91, in select
return super(SQLite, self).select(query, fields, attributes)
~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/alan-etkin/iapydal_venv/lib/python3.14/site-packages/pydal/adapters/base.py", line 906, in select
colnames, sql = self._select_wcols(query, fields, **attributes)
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/alan-etkin/iapydal_venv/lib/python3.14/site-packages/pydal/adapters/base.py", line 792, in _select_wcols
query = self.expand(query, query_env=query_env)
File "/home/alan-etkin/iapydal_venv/lib/python3.14/site-packages/pydal/adapters/base.py", line 497, in _expand
rv = op(first, second, **optional_args)
File "/home/alan-etkin/iapydal_venv/lib/python3.14/site-packages/pydal/dialects/base.py", line 291, in belongs
sub = second._compile(query_env.get("current_scope", []))[1][:-1]
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/alan-etkin/iapydal_venv/lib/python3.14/site-packages/pydal/objects.py", line 1454, in _compile
colnames, sql = adapter._select_wcols(
~~~~~~~~~~~~~~~~~~~~~^
self._query, self._qfields, **attributes
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/home/alan-etkin/iapydal_venv/lib/python3.14/site-packages/pydal/adapters/base.py", line 694, in _select_wcols
raise SyntaxError("Set: no tables selected")
SyntaxError: Set: no tables selected