I have pulled the last mercurial version and get this new exception in
a query. This behavior is new, older versions of web2py don't return
this error:

Note: the app is a wxPython application that queries a PostgreSQL
database with web2py and gui2py:
http://code.google.com/p/gestionlibre.gui

....
  File "/home/alan/web2py/web2py-hg/gluon/validators.py", line 469, in
options
    self.options() #
  File "/home/alan/web2py/web2py-hg/gluon/validators.py", line 469, in
options
    self.options() #
  File "/home/alan/web2py/web2py-hg/gluon/validators.py", line 469, in
options
    self.options() #
  File "/home/alan/web2py/web2py-hg/gluon/validators.py", line 469, in
options
    self.options() #
  File "/home/alan/web2py/web2py-hg/gluon/validators.py", line 469, in
options
    self.options() #
  File "/home/alan/web2py/web2py-hg/gluon/validators.py", line 463, in
options
    self.build_set()
  File "/home/alan/web2py/web2py-hg/gluon/validators.py", line 451, in
build_set
    records = self.dbset.select(*fields, **dd)
  File "/home/alan/web2py/web2py-hg/gluon/dal.py", line 7379, in
select
    return adapter.select(self.query,fields,attributes)
  File "/home/alan/web2py/web2py-hg/gluon/dal.py", line 1301, in
select
    sql = self._select(query, fields, attributes)
  File "/home/alan/web2py/web2py-hg/gluon/dal.py", line 1265, in
_select
    sql_t = ', '.join(alias(t) for t in tablenames)
  File "/home/alan/web2py/web2py-hg/gluon/dal.py", line 1265, in
<genexpr>
    sql_t = ', '.join(alias(t) for t in tablenames)
RuntimeError: maximum recursion depth exceeded while calling a Python
object

Here is a part of the model wich I suppose is relevant

    # Source Document (transactions records)
    db.define_table('operation',
        Field('operation_id', 'id', label = T("id")),
        Field('code', unique = True, label = T("code")),
        Field('description', label = T("description")),
        Field('customer_id', 'reference customer', label =
T("customer")), # reference
        Field('supplier_id', 'reference supplier', label =
T("supplier")), # reference
        Field('detail', type='string', length=60,
comment=T('Observations'), label = T("detail")),
        Field('payment_terms_id', 'reference payment_terms',
comment=T('Terms of payment'), label = T("payment terms")), #
reference
        Field('term', type='string', length=50, label = T("term")),
        Field('amount', type='double', label = T("amount")),
        Field('balance', type='double', label = T("balance")),
        Field('posted', type='datetime', default = now, label =
T("posted")),
        Field('issue', type='datetime', label = T("issue")),
        Field('document_id', 'reference document', comment=T('Points
to order / invoice / packingslips'), label = T("document")), #
reference
        Field('branch', label = T("branch")),
        Field('number', type='integer', default=0, label =
T("number")),
        Field('due_date', type='datetime', label = T("due date")),
        Field('type', type='string', length=1,
requires=IS_IN_SET({'T': 'Stock','S': 'Sales','P': 'Purchases'}),
label = T("type")), # reference? types: T: Stock, S: Sales, P:
Purchases
        Field('canceled', type='boolean', default=False,
comment=T('False if deferred payment (df), True if paid with cash, ch
(check) or current account'), label = T("canceled")),
        Field('processed', type='boolean', default=False, label =
T("processed")),
        Field('voided', type='boolean', default=False, label =
T("voided")), # ¿anulado?
        Field('fund_id', 'reference fund', label = T("fund")), #
reference
        Field('cost_center_id', 'reference cost_center', label =
T("cost center")), # reference
        Field('module', type='integer', default=0,
comment=T('Referenced table'), label = T("module")), # reference?
        Field('observations', type='string', length=50, label =
T("observations")),
        Field('cancellation', type='boolean', default=False, label =
T("cancellation")),
        Field('avoidance', type='boolean', default=False, label =
T("avoidance")), # ¿anulación?
        Field('file_id', 'reference file', label = T("file")), #
¿legajo? # reference
        Field('payroll_id', 'reference payroll', label =
T("payroll")), # reference
        Field('user_id', 'reference auth_user', label = T("user")), #
reference
        Field('hour', type='datetime', label = T("hour")),
        Field('replicated', type='datetime', label = T("replicated")),
        Field('subcustomer_id', 'reference subcustomer', label =
T("subcustomer")), # reference
        Field('salesperson_id', 'reference salesperson', label =
T("salesperson")), # reference
        Field('printed', type='boolean', default=False, label =
T("printed")),
        Field('jurisdiction_id', 'reference jurisdiction', label =
T("jurisdiction")), # reference
        Field('replica', type='boolean', default=False, label =
T("replica")),
        format=operation_format,
        sequence_name = "operation_operation_id_Seq",
        migrate=migrate, fake_migrate=fake_migrate)

Is it possible that a change in the framework code can be producing
the error in the app query?

Reply via email to