Bitfields always atomic? Other way to store attributes?

From: Bryce Nesbitt <bryce1(at)obviously(dot)com>
To: pgsql-sql(at)postgresql(dot)org
Subject: Bitfields always atomic? Other way to store attributes?
Date: 2006-03-26 21:47:34
Message-ID: 44270BF6.6080109@obviously.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Dear List;

If I have two threads modifying the same "bit" field:
thread1=> update table set bf=bf | '01000'
thread2=> update table set bf=bf | '10000'
Will this operation always be safe (e.g. result in bf='11000')? Or must
I wrap things in
explicit transactions?

My application is to give attributes to an address table. But maybe
there is a better way?

I want to mark each addresses with attributes, e.g. the person may be a
"friend", "on my holiday card list", "owe me money", be an "employee", a
"volunteer on the xxx project", or none of the above.

I could assign each role a bit.

Or, create a string field: "Friend,Money, Emp,VolXXX".

Or, create related tables:
friend_pk, address_id
cardlist_pk, address_id
money_pk, address_id, amount_owed
volunteer_pk, address_id

Any thoughts?

-Bryce Nesbitt

--
----
Visit http://www.obviously.com/

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Markus Schaber 2006-03-27 10:41:32 Problem using set-returning functions
Previous Message Volkan YAZICI 2006-03-26 05:56:25 Re: Expressing a result set as an array (and vice versa)?