Skip site navigation (1) Skip section navigation (2)

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

From: Bruce Momjian - CVS <momjian(at)hub(dot)org>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql/src/interfaces/jdbc/org/postgresql jdbc2 ...
Date: 2001-08-26 00:54:42
Message-ID: 200108260054.f7Q0sgb39257@hub.org (view raw or flat)
Thread:
Lists: pgsql-committers
CVSROOT:	/home/projects/pgsql/cvsroot
Module name:	pgsql
Changes by:	momjian(at)hub(dot)org	01/08/25 20:54:42

Modified files:
	src/interfaces/jdbc/org/postgresql/jdbc2: PreparedStatement.java 
	src/interfaces/jdbc/org/postgresql/util: Serialize.java 

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 Serialize.java 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.


pgsql-committers by date

Next:From: Bruce Momjian - CVSDate: 2001-08-26 00:55:15
Subject: pgsql/src/test/regress resultmap
Previous:From: Tom LaneDate: 2001-08-25 23:24:39
Subject: pgsql/src/backend/access/transam clog.c

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group