Thanks,

after Bruce's post I realized I needed to inspect what DAL does on database 
(by checking result of database creation in pgAdmin 
III<http://www.pgadmin.org/>) 
and not just follow examples from the book (which worked without issues in 
sqlite). That helped me find a number of issues in my definition of DB 
tables. Still, that MACRO will be useful.

Thank you and BR
Loreia


On Friday, April 27, 2012 10:08:05 PM UTC+2, Cliff wrote:
>
> Field('block_names_id', db.block_names, requires=IS_EMPTY_OR(
>   IS_IN_DB(db, 'block_names.id', '%(block_name)s'))
> )
>
> On Friday, April 27, 2012 8:00:34 AM UTC-4, Loreia wrote:
>>
>> Hi,
>>
>> I define two tables in my application as:
>>
>>     db.define_table( "block_names"
>>                    , Field("block_name"                 ,default=None)
>>                     )
>>
>>     db.define_table( "block_data"
>>                    , Field("block_names_id"             ,default=None)
>>                    , Field("product_number"             ,default=None)
>>                    , Field("product_revision"           ,default=None)
>>                    , Field("product_path"           ,default=None)
>>                    , Field("branch"                 ,default=None)
>>                    , Field("bat_file_path"          ,default=None)
>>                    , Field("toolbox"                    ,default=None)
>>                     )
>>
>> I am trying to run following query:
>>     rows = db((db.block_names.id > 0)
>>                  &(db.block_names.id == 
>> db.block_data.block_names_id)).select(db.block_names.block_name, 
>> db.block_data.ALL)
>>
>> And I get this error:
>>   File ".../sqr_enumerate_pairs.py", line 77, in EnumeratePairs
>>     &(db.block_names.id == 
>> db.block_data.block_names_id)).select(db.block_names.block_name, 
>> db.block_data.ALL)
>>   File "/.../web2py/gluon/dal.py", line 7578, in select
>>     return adapter.select(self.query,fields,attributes)
>>   File "/.../web2py/gluon/dal.py", line 1315, in select
>>     rows = response(sql)
>>   File "/.../web2py/gluon/dal.py", line 1305, in response
>>     self.execute(sql)
>>   File "/.../web2py/gluon/dal.py", line 1392, in execute
>>     return self.log_execute(*a, **b)
>>   File "/.../web2py/gluon/dal.py", line 1386, in log_execute
>>     ret = self.cursor.execute(*a, **b)
>> ProgrammingError: operator does not exist: integer = character varying at 
>> character 309
>> HINT:  No operator matches the given name and argument type(s). You might 
>> need to add explicit type casts.
>>
>> I am using latest 1.99.7 Web2py, latest 9.1.2 Postgres, and latest 2.4.4 
>> psycopg2 driver.
>>
>> Any help is welcomed :-)
>>
>> BR
>> Loreia
>>
>

Reply via email to