Re: tightening up on use of oid 0

Поиск
Список
Период
Сортировка
От Oliver Jowett
Тема Re: tightening up on use of oid 0
Дата
Msg-id 416E5B40.1060901@opencloud.com
обсуждение исходный текст
Ответ на tightening up on use of oid 0  (Oliver Jowett <oliver@opencloud.com>)
Ответы Re: tightening up on use of oid 0
Список pgsql-jdbc
Kris Jurka wrote:

> I was looking at the assorted changes to the PGobject extensions and I'm
> unclear on exactly how NULL is handled.  Consider PGmoney has tests for
> NULL in equals, clone, and getValue, but PGbox does not.  Is this simply
> an oversight or is there something more profound going on here.

I ended up with two approaches for this.

For those types where there was already a field I could hijack to
represent NULL -- e.g. PGbox's points array -- I used that to represent
null values. The singleton NULL is just a normal object that happens to
have a null value. You can have several different objects that all
represent null if you like, and you can mutate an object representing a
null value just like any other object of the type. This is consistent
with the way other instances of the type operate, but it's slightly
dangerous as it's possible to modify the NULL singleton so it no longer
has a null value (pity we don't have 'const'..)

For the other types that didn't have a suitable field, I'd have needed
to add a field to every instance of the type to indicate whether the
object was a null or not. Instead, I used the identity of the NULL
singleton to decide when an object is null. In that case, there is only
ever one object that represents a null, and the actual value it holds is
irrelevant -- getValue() etc. check the identity of 'this' before
looking at the actual value.

It's hardly ideal but it kept the changes to a minimum. If you don't
mind a more invasive set of changes, I can probably come up with
something better.

-O

В списке pgsql-jdbc по дате отправления:

Предыдущее
От: Kris Jurka
Дата:
Сообщение: Re: messages_*.class in CVS
Следующее
От: Kris Jurka
Дата:
Сообщение: Re: tightening up on use of oid 0