From d0467c33173e0a7a282e0116b2e2fedb27de34b6 Mon Sep 17 00:00:00 2001 From: Chapman Flack Date: Sun, 18 Oct 2020 19:56:34 -0400 Subject: [PATCH 1/2] Branch 'master' is now dev for a future 2.0 It is not recommended for production. Released versions at the moment are from REL1_6_STABLE (relatively modern, Java 9+, PostgreSQL 9.5+) or from REL1_5_STABLE (if support for Java < 9 or PostgreSQL < 9.5 is needed). --- pljava-ant/pom.xml | 2 +- pljava-api/pom.xml | 2 +- pljava-examples/pom.xml | 2 +- pljava-packaging/pom.xml | 2 +- pljava-pgxs/pom.xml | 2 +- pljava-so/pom.xml | 2 +- pljava/pom.xml | 2 +- pom.xml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/pljava-ant/pom.xml b/pljava-ant/pom.xml index 01ddaecbc..15e6c6751 100644 --- a/pljava-ant/pom.xml +++ b/pljava-ant/pom.xml @@ -4,7 +4,7 @@ org.postgresql pljava.app - 1.6.0-SNAPSHOT + 2-SNAPSHOT pljava-ant PL/Java Ant tasks diff --git a/pljava-api/pom.xml b/pljava-api/pom.xml index f0da547ae..314d75238 100644 --- a/pljava-api/pom.xml +++ b/pljava-api/pom.xml @@ -4,7 +4,7 @@ org.postgresql pljava.app - 1.6.0-SNAPSHOT + 2-SNAPSHOT pljava-api PL/Java API diff --git a/pljava-examples/pom.xml b/pljava-examples/pom.xml index 9d6f7b468..973cf4bf5 100644 --- a/pljava-examples/pom.xml +++ b/pljava-examples/pom.xml @@ -4,7 +4,7 @@ org.postgresql pljava.app - 1.6.0-SNAPSHOT + 2-SNAPSHOT pljava-examples PL/Java examples diff --git a/pljava-packaging/pom.xml b/pljava-packaging/pom.xml index 82ea1e5bb..a77b87632 100644 --- a/pljava-packaging/pom.xml +++ b/pljava-packaging/pom.xml @@ -4,7 +4,7 @@ org.postgresql pljava.app - 1.6.0-SNAPSHOT + 2-SNAPSHOT pljava-packaging PL/Java packaging diff --git a/pljava-pgxs/pom.xml b/pljava-pgxs/pom.xml index 7b929397b..19896dbde 100644 --- a/pljava-pgxs/pom.xml +++ b/pljava-pgxs/pom.xml @@ -5,7 +5,7 @@ org.postgresql pljava.app - 1.6.0-SNAPSHOT + 2-SNAPSHOT pljava-pgxs diff --git a/pljava-so/pom.xml b/pljava-so/pom.xml index ae33321fb..dbd52812e 100644 --- a/pljava-so/pom.xml +++ b/pljava-so/pom.xml @@ -4,7 +4,7 @@ org.postgresql pljava.app - 1.6.0-SNAPSHOT + 2-SNAPSHOT pljava-so PL/Java backend native code diff --git a/pljava/pom.xml b/pljava/pom.xml index bf9ab6111..fb9b23f10 100644 --- a/pljava/pom.xml +++ b/pljava/pom.xml @@ -4,7 +4,7 @@ org.postgresql pljava.app - 1.6.0-SNAPSHOT + 2-SNAPSHOT pljava PL/Java backend Java code diff --git a/pom.xml b/pom.xml index 2da8943d1..7ebb4c293 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 org.postgresql pljava.app - 1.6.0-SNAPSHOT + 2-SNAPSHOT pom PostgreSQL PL/Java https://tada.github.io/pljava/ From be307abe44050e7b89877a534d5b7684e2266e1c Mon Sep 17 00:00:00 2001 From: Francisco Miguel Biete Banon Date: Fri, 21 Oct 2022 13:54:36 +0100 Subject: [PATCH 2/2] Support PostgreSQL v15 String is a PostgreSQL type, rename pljava String to PLJString --- pljava-so/src/main/c/type/String.c | 16 ++++++++-------- pljava-so/src/main/include/pljava/type/String.h | 8 ++++---- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/pljava-so/src/main/c/type/String.c b/pljava-so/src/main/c/type/String.c index 4b58f622f..01e2a18b2 100644 --- a/pljava-so/src/main/c/type/String.c +++ b/pljava-so/src/main/c/type/String.c @@ -59,9 +59,9 @@ jvalue _String_coerceDatum(Type self, Datum arg) { jvalue result; char* tmp = DatumGetCString(FunctionCall3( - &((String)self)->textOutput, + &((PLJString)self)->textOutput, arg, - ObjectIdGetDatum(((String)self)->elementType), + ObjectIdGetDatum(((PLJString)self)->elementType), Int32GetDatum(-1))); result.l = String_createJavaStringFromNTS(tmp); pfree(tmp); @@ -83,19 +83,19 @@ Datum _String_coerceObject(Type self, jobject jstr) JNI_deleteLocalRef(jstr); ret = FunctionCall3( - &((String)self)->textInput, + &((PLJString)self)->textInput, CStringGetDatum(tmp), - ObjectIdGetDatum(((String)self)->elementType), + ObjectIdGetDatum(((PLJString)self)->elementType), Int32GetDatum(-1)); pfree(tmp); return ret; } -static String String_create(TypeClass cls, Oid typeId) +static PLJString String_create(TypeClass cls, Oid typeId) { HeapTuple typeTup = PgObject_getValidTuple(TYPEOID, typeId, "type"); Form_pg_type pgType = (Form_pg_type)GETSTRUCT(typeTup); - String self = (String)TypeClass_allocInstance(cls, typeId); + PLJString self = (PLJString)TypeClass_allocInstance(cls, typeId); MemoryContext ctx = GetMemoryChunkContext(self); fmgr_info_cxt(pgType->typoutput, &self->textOutput, ctx); fmgr_info_cxt(pgType->typinput, &self->textInput, ctx); @@ -109,7 +109,7 @@ Type String_obtain(Oid typeId) return (Type)StringClass_obtain(s_StringClass, typeId); } -String StringClass_obtain(TypeClass self, Oid typeId) +PLJString StringClass_obtain(TypeClass self, Oid typeId) { return String_create(self, typeId); } @@ -126,7 +126,7 @@ jstring String_createJavaString(text* t) Size srcLen = VARSIZE(t) - VARHDRSZ; if(srcLen == 0) return s_the_empty_string; - + if ( s_two_step_conversion ) { utf8 = (char*)pg_do_encoding_conversion((unsigned char*)src, diff --git a/pljava-so/src/main/include/pljava/type/String.h b/pljava-so/src/main/include/pljava/type/String.h index 6abf07520..a03f915d3 100644 --- a/pljava-so/src/main/include/pljava/type/String.h +++ b/pljava-so/src/main/include/pljava/type/String.h @@ -19,9 +19,9 @@ extern "C" { * The String class extends the Type and adds the members necessary to * perform standard Postgres textin/textout conversion. An instance of this * class will be used for all types that are not explicitly mapped. - * + * * The class also has some convenience routings for Java String manipulation. - * + * * @author Thomas Hallgren * **************************************************************************/ @@ -29,7 +29,7 @@ extern "C" { extern jclass s_Object_class; extern jclass s_String_class; struct String_; -typedef struct String_* String; +typedef struct String_* PLJString; /* * Create a Java String object from a null terminated string. Conversion is @@ -73,7 +73,7 @@ extern text* String_createText(jstring javaString); extern Type String_obtain(Oid typeId); -extern String StringClass_obtain(TypeClass self, Oid typeId); +extern PLJString StringClass_obtain(TypeClass self, Oid typeId); #ifdef __cplusplus }