This is a backward compatibility issues. The fact that it inserts a 't' 
instead of a 'T' is more of a concern to me. How was the query built?

The source clearly says:
   TRUE = 'T'
   FALSE = 'F'

On Thursday, 23 May 2013 16:21:18 UTC-5, Cliff Kachinske wrote:
>
> auth.signature appends a "boolean" field called is_active to a table.  The 
> default is True.
>
> Under the covers it's not really boolean, it's char(1).  When you insert a 
> record, is_active is set to "t".  That's right, a lowercase t.
>
> Today I had the kind of problem where queries were missing records.  It 
> turns out that the DAL was emitting queries looking for 'T' in is_active.
>
> The queries were missing records because Postgres is case sensitive in 
> char fields.  
>
> I don't really understand why the dal adapters for Postgres transmogrify 
> boolean fields to char(1) when Postgres supports boolean fields.  The nice 
> thing about that is Postgres boolean fields do not care about case.
>
> The easy fix for this problem is make sure that any fields you have 
> defined as boolean in your models are also boolean in Postgres.
>

-- 

--- 
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/groups/opt_out.


Reply via email to