Any chance you can tell us which versions broke it?

On Feb 12, 8:30 am, Alan Etkin <[email protected]> wrote:
> 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