Re: [PHP-DB] boolean values in postgresql

2005-02-23 Thread Bret Hughes
On Wed, 2005-02-23 at 08:41, Martin Norland wrote:
> Bret Hughes wrote:
> > I am adding some functionality to a php/postgres based system and have a
> > value that I want to be a boolean.  digging around the pg doc I see the
> > boolean datatype.  Cool I say.  So I happily alter the table and add the
> > boolean column notify  all is good until I retrieve it using
> > pg_fetch_object and get a t or f back in myobject->notify
> > 
> > Rats says I.  a simple if ($myobject->notify) { blah } contruct won't
> > work.
> > 
> > So.. after reading a lot of stuff from both the php and pg doc and STFW
> > until my eyes are tired, I am coming to you guys for advice.
> > 
> > Assumption:  There is no easy way to map a pg boolean data type to a
> > value that will evaluate simply in php.  I know I can code it but I
> > would really like to keep this as simple as possible
> > 
> > Question:  Assuming the above assumption is correct, what is the most
> > efficient way to define a column that will take only two values who's
> > values will evaluate as intended in php?
> > 
> > I am going to punt an go with a smallint unlet there is a way to store a
> > bit.  I am  trying to get my head around bytea right now but thought I
> > would ask while I am reading.
> > 
> > Bret
> 
> Personally I would go with the smallint - but another option you have, 
> if you really want to use their boolean, is leaving the boolean and 
> always selecting it as:
> 
> SELECT (boolean_field = 't') AS boolean_field FROM table;
> 
> of course, using a smallint will work 'universally' if you ever changed 
> databases - which may or may not be of interest.

Thanks for all the comments guys,

I ended up going with a bit string with length 1.  tiny storage and
although the update is sort of cumbersome, It does not happen often ( so
far only in one place in the class that manages it ) the checking of the
value is as intuitive as I had wanted to make it.  
from \d in psql:

 notify   | bit(1)  | 

a partial update statement:

$query = "update mytable" .
" set notify = B'" . rtrim($notify) . "'::bit(1) ".
"where whatever  = 'whoknows'"

and nothing has to be done special for selects and evaluation of the
value.


I would have liked it to work with true/false boolean values but I guess
you cannot have everything.

Since no one schema provided all the features I wanted as far as storage
space and interoperability with php I let the fact that I had not worked
with bit strings and figured there was something to be learned and the
space saving to sway my decision.  It is still in development and I may
change it later but for now I sort of like it.  

I have not read how the value is actually stored and would be surprised
if it is actually less than a byte bit still sort of fun.

Bret

-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] boolean values in postgresql

2005-02-23 Thread Martin Norland
Bret Hughes wrote:
I am adding some functionality to a php/postgres based system and have a
value that I want to be a boolean.  digging around the pg doc I see the
boolean datatype.  Cool I say.  So I happily alter the table and add the
boolean column notify  all is good until I retrieve it using
pg_fetch_object and get a t or f back in myobject->notify
Rats says I.  a simple if ($myobject->notify) { blah } contruct won't
work.
So.. after reading a lot of stuff from both the php and pg doc and STFW
until my eyes are tired, I am coming to you guys for advice.
Assumption:  There is no easy way to map a pg boolean data type to a
value that will evaluate simply in php.  I know I can code it but I
would really like to keep this as simple as possible
Question:  Assuming the above assumption is correct, what is the most
efficient way to define a column that will take only two values who's
values will evaluate as intended in php?
I am going to punt an go with a smallint unlet there is a way to store a
bit.  I am  trying to get my head around bytea right now but thought I
would ask while I am reading.
Bret
Personally I would go with the smallint - but another option you have, 
if you really want to use their boolean, is leaving the boolean and 
always selecting it as:

SELECT (boolean_field = 't') AS boolean_field FROM table;
of course, using a smallint will work 'universally' if you ever changed 
databases - which may or may not be of interest.

Cheers,
--
- Martin Norland, Sys Admin / Database / Web Developer, International 
Outreach x3257
The opinion(s) contained within this email do not necessarily represent 
those of St. Jude Children's Research Hospital.

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Re: [PHP-DB] boolean values in postgresql

2005-02-23 Thread Robby Russell
On Mon, 2005-02-21 at 20:54 -0600, Bret Hughes wrote:
> I am adding some functionality to a php/postgres based system and have a
> value that I want to be a boolean.  digging around the pg doc I see the
> boolean datatype.  Cool I say.  So I happily alter the table and add the
> boolean column notify  all is good until I retrieve it using
> pg_fetch_object and get a t or f back in myobject->notify
> 
> Rats says I.  a simple if ($myobject->notify) { blah } contruct won't
> work.
> 
> So.. after reading a lot of stuff from both the php and pg doc and STFW
> until my eyes are tired, I am coming to you guys for advice.
> 
> Assumption:  There is no easy way to map a pg boolean data type to a
> value that will evaluate simply in php.  I know I can code it but I
> would really like to keep this as simple as possible
> 

Couldn't you just check on 't' or 'f'? 


> Question:  Assuming the above assumption is correct, what is the most
> efficient way to define a column that will take only two values who's
> values will evaluate as intended in php?
> 
> I am going to punt an go with a smallint unlet there is a way to store a
> bit.  I am  trying to get my head around bytea right now but thought I
> would ask while I am reading.
> 
> Bret
> 
-- 
/***
* Robby Russell | Owner.Developer.Geek
* PLANET ARGON  | www.planetargon.com
* Portland, OR  | [EMAIL PROTECTED]
* 503.351.4730  | blog.planetargon.com
* PHP/PostgreSQL Hosting & Development
* --- Now hosting Ruby on Rails Apps ---
/

-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-DB] boolean values in postgresql

2005-02-21 Thread Bret Hughes
I am adding some functionality to a php/postgres based system and have a
value that I want to be a boolean.  digging around the pg doc I see the
boolean datatype.  Cool I say.  So I happily alter the table and add the
boolean column notify  all is good until I retrieve it using
pg_fetch_object and get a t or f back in myobject->notify

Rats says I.  a simple if ($myobject->notify) { blah } contruct won't
work.

So.. after reading a lot of stuff from both the php and pg doc and STFW
until my eyes are tired, I am coming to you guys for advice.

Assumption:  There is no easy way to map a pg boolean data type to a
value that will evaluate simply in php.  I know I can code it but I
would really like to keep this as simple as possible

Question:  Assuming the above assumption is correct, what is the most
efficient way to define a column that will take only two values who's
values will evaluate as intended in php?

I am going to punt an go with a smallint unlet there is a way to store a
bit.  I am  trying to get my head around bytea right now but thought I
would ask while I am reading.

Bret

-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php