Skip to content

Commit 00132ea

Browse files
committed
Initial string support for FG;
1 parent 74c0f71 commit 00132ea

File tree

5 files changed

+266
-125
lines changed

5 files changed

+266
-125
lines changed

README.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,12 @@ For installation, execute
2828
make install
2929
```
3030

31-
Java settings can be set in `postgres.conf` via the following options:
31+
Pre-load the library via adding to `postgresql.conf`:
32+
```
33+
shared_preload_libraries = '$libdir/plunijava'
34+
```
35+
36+
Java settings can be set via the following options:
3237
```
3338
pluj.libjvm = '/jdk-path/lib/server/libjvm.so'
3439
pluj.jvmoptions = '-Djava.class.path='

java/src/ai/sedn/plunijava/Tests.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,17 @@ public static double test_double4(double[][] in) throws SQLException {
9797
return ret;
9898
}
9999

100+
/*
101+
* String
102+
*/
103+
public static String test_string1(String in) throws SQLException {
104+
return in;
105+
}
106+
107+
public static String test_string2(String[] in) throws SQLException {
108+
return in[0];
109+
}
110+
100111
/*
101112
* Complex types
102113
*/
@@ -118,6 +129,13 @@ public static TestType1 test_complextype2(TestType1[] in) {
118129
return R;
119130
}
120131

132+
public static TestType2 test_complextype3(TestType2 in) {
133+
TestType2 R = new TestType2();
134+
R.A = in.A;
135+
136+
return R;
137+
}
138+
121139
/*
122140
* Setof return
123141
*/

plunijava--test.sql

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,15 @@ SELECT f_test_double4('{{1.23,2.2,3.,4.23,5.2},{5.6,4.45,3.3434,2.3,1.3}}');
6767
SELECT b_test_double4('{{6.,5.34,4.1,3.434,2.4,1.23},{1.75,2.354,3.34,4.2,5.4,6.64}}');
6868
SELECT g_test_double4('{{1.1,2.24,2.232,1.1},{1.4,2.23,2.65,1.676}}');
6969

70+
--string
71+
CREATE OR REPLACE FUNCTION f_test_string1(text) RETURNS text AS 'F|ai/sedn/plunijava/Tests|test_string1|(Ljava/lang/String;)Ljava/lang/String;' LANGUAGE UJAVA;
72+
73+
SELECT f_test_string1('HELLO WORLD!');
74+
75+
CREATE OR REPLACE FUNCTION f_test_string2(text[]) RETURNS text AS 'F|ai/sedn/plunijava/Tests|test_string2|([Ljava/lang/String;)Ljava/lang/String;' LANGUAGE UJAVA;
76+
77+
SELECT f_test_string2(ARRAY['1. HELLO WORLD!','2. HELLO WORLD!']);
78+
7079
--complex types
7180
CREATE TYPE TESTTYPE1 as (A int, B float8);
7281

@@ -86,6 +95,12 @@ SELECT f_test_complextype2(ARRAY[(1,0.1)::TESTTYPE1]);
8695
SELECT b_test_complextype2(ARRAY[(2,0.2)::TESTTYPE1]);
8796
SELECT g_test_complextype2(ARRAY[(3,0.3)::TESTTYPE1]);
8897

98+
CREATE TYPE TESTTYPE2 as (A text);
99+
CREATE OR REPLACE FUNCTION f_test_complextype3(TESTTYPE2) RETURNS TESTTYPE2 AS 'F|ai/sedn/plunijava/Tests|test_complextype3|(Lai/sedn/plunijava/TestType2;)Lai/sedn/plunijava/TestType2;' LANGUAGE UJAVA;
100+
101+
SELECT f_test_complextype3('("HELLO WORLD!")'::TESTTYPE2);
102+
103+
89104
--setof
90105
CREATE OR REPLACE FUNCTION f_test_setof1(TESTTYPE1[]) RETURNS SETOF TESTTYPE1 AS 'F|ai/sedn/plunijava/Tests|test_setof1|([Lai/sedn/plunijava/TestType1;)Ljava/util/Iterator;' LANGUAGE UJAVA;
91106

@@ -102,4 +117,5 @@ SELECT f_test_njdbc1();
102117
--Cleanup
103118
DROP TABLE test_table1;
104119
DROP TYPE TESTTYPE1 CASCADE;
120+
DROP TYPE TESTTYPE2 CASCADE;
105121
DROP EXTENSION PLUNIJAVA CASCADE;

0 commit comments

Comments
 (0)