Re: User Defined Types in Java

Поиск
Список
Период
Сортировка
От Thomas Hallgren
Тема Re: User Defined Types in Java
Дата
Msg-id 43EB62AF.5030206@tada.se
обсуждение исходный текст
Ответ на Re: User Defined Types in Java  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
Tom Lane wrote:
> Thomas Hallgren <thomas@tada.se> writes:
>   
>> Tom Lane wrote:
>>     
>>> In particular, it seems unsafe to use a Java class as a PG UDT,
>>> because the method pointers wouldn't remain the same across
>>> backend runs.
>>>
>>>       
>> I'm not sure I understand what you mean.
>>     
>
> Doesn't a Java object contain a method-table pointer that is used at
> runtime to dispatch method calls on the object?  If the object is dumped
> bitwise into a PG table, and then reloaded into another backend session
> (which maybe has loaded Java at different addresses), that pointer will
> be invalid.
>   
Ah, now I understand. I'm not planning on using the binary image of the 
Java object as such. There's no API that would allow me to do that (JNI 
uses handles, not pointers).

Java has a number of standards for how objects can be 
serialized/deserialized in a safe, JVM independent way. If the class of 
the object is known at all times (as it will be for all UDT's), I can 
use a DataInputStream/DataOutputStream pair to read/write data. It's 
very similar to how the complex example type uses pg_sendxxx and 
pg_getmsgxxx functions. The Java implementation of that example will 
also use 16 bytes for storage.

More complex types can use the standard Java serialization mechanism. It 
will waste some more space (must be declared variable in length) but it 
maintains data integrity over time through serialVersionUUID's (a 64 bit 
number generated based on the constitution of the class).

JDBC defines a standard that involves usage of three different 
interfaces, SQLData, SQLInput, and SQLOutput. I plan to support that also.

Kind Regards,
Thomas Hallgren



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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: PostgreSQL 8.0.6 crash
Следующее
От: "Mark Woodward"
Дата:
Сообщение: Re: PostgreSQL 8.0.6 crash