pgsql/src/interfaces/jdbc/org/postgresql jdbc2 ...

pgsql/src/interfaces/jdbc/org/postgresql jdbc2 ...

Post by Bruce Momjian - C » Tue, 28 Aug 2001 23:48:56

CVSROOT:        /home/projects/pgsql/cvsroot
Module name:    pgsql

Modified files:

Log message:
        The attached file: SerializePatch2.tgz, contains a patch for
        org.postgresql.util.Serialize and org.postgresql.jdbc2.PreparedStatement
        that  fixes the ability to "serialize" a simple java class into a
        postgres table.

        The current cvs seems completely broken in this support, so the patch
        puts it  into working condition, granted that there are many limitations
        with  serializing java classes into Postgres.

        The code to do serialize appears to have been in the driver since
        Postgres  6.4, according to some comments in the source.  My code is not
        adding any  totally new ability to the driver, rather just fixing what
        is there so that  it actually is usable.  I do not think that it should
        affect any existing  functions of the driver that people regularly
        depend on.

        The code is activated if you use jdbc2.PreparedStatement and try to
        setObject  some java class type that is unrecognized, like not String or
        not some other  primitive type.  This will cause a sequence of function
        calls that results in  an instance of Serialize being instantiated for
        the class type passed.  The  Serialize constructor will query pg_class
        to see if it can find an existing  table that matches the name of the
        java class. If found, it will continue and  try to use the table to
        store the object, otherwise an SQL exception is  thrown and no harm is
        done.  Serialize.create() has to be used to setup the  table for a java
        class before anything can really happen with this code other  than an
        SQLException (unless by some freak chance a table exists that it  thinks
        it can use).

        I saw a difference in between 7.1.3 and 7.2devel that I
        didn't  notice before, so I had to redo my changes from the 7.2devel
        version (why I  had to resend this patch now).  I was missing the
        fixString stuff, which is  nice and is imporant to ensure the inserts
        will not fail due to embedded  single quote or unescaped backslashes. I
        changed that fixString function in  Serialize just a little since there
        is no need to muddle with escaping  newlines: only escaping single quote
        and literal backslashes is needed.  Postgres appears to insert newlines
        within strings without trouble.

---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate

message can get through to the mailing list cleanly


1. pgsql/src/interfaces/jdbc/org/postgresql/jdbc2 ...

CVSROOT:        /cvsroot
Module name:    pgsql

Modified files:

Log message:

---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?

2. Windows 95, ODBC and Open Client???

3. pgsql/src/interfaces/jdbc/org/postgresql jdbc2 ...

4. cannot recover certain table

5. pgsql/src/interfaces/jdbc/org/postgresql/jdbc2 (

6. Is there a maximum row size limitation?

7. pgsql/src/interfaces/jdbc/org/postgresql/jdbc2 ...

8. MSaccess DB security

9. pgsql/src/interfaces/jdbc/org/postgresql jdbc2 ...

10. pgsql/src/interfaces/jdbc/org/postgresql/jdbc2/optional

11. pgsql/src/interfaces/jdbc/org/postgresql/jdbc2 ...