globegit-postgresql-plruby 0.5.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (122) hide show
  1. data/Changes +121 -0
  2. data/README.markdown +155 -0
  3. data/Rakefile +48 -0
  4. data/docs/plruby.rb +1931 -0
  5. data/ex_trans.sql +33 -0
  6. data/extconf.rb +267 -0
  7. data/plruby.html +1454 -0
  8. data/plruby.rd +1571 -0
  9. data/postgresql-plruby.gemspec +56 -0
  10. data/src/conversions.h +5 -0
  11. data/src/conversions/basic/conversions.h +25 -0
  12. data/src/conversions/basic/extconf.rb +8 -0
  13. data/src/conversions/basic/plruby_basic.c +357 -0
  14. data/src/conversions/bitstring/bitstring.sql +75 -0
  15. data/src/conversions/bitstring/conversions.h +15 -0
  16. data/src/conversions/bitstring/extconf.rb +8 -0
  17. data/src/conversions/bitstring/plruby_bitstring.c +579 -0
  18. data/src/conversions/convcommon.h +129 -0
  19. data/src/conversions/datetime/conversions.h +13 -0
  20. data/src/conversions/datetime/extconf.rb +8 -0
  21. data/src/conversions/datetime/plruby_datetime.c +269 -0
  22. data/src/conversions/geometry/conversions.h +37 -0
  23. data/src/conversions/geometry/extconf.rb +8 -0
  24. data/src/conversions/geometry/geometry.sql +196 -0
  25. data/src/conversions/geometry/plruby_geometry.c +2494 -0
  26. data/src/conversions/network/conversions.h +21 -0
  27. data/src/conversions/network/extconf.rb +8 -0
  28. data/src/conversions/network/network.sql +63 -0
  29. data/src/conversions/network/plruby_network.c +537 -0
  30. data/src/package.h +20 -0
  31. data/src/plpl.c +1708 -0
  32. data/src/plplan.c +893 -0
  33. data/src/plruby.c +1676 -0
  34. data/src/plruby.h +324 -0
  35. data/src/pltrans.c +388 -0
  36. data/test/conv_bitstring/b.rb +45 -0
  37. data/test/conv_bitstring/runtest +26 -0
  38. data/test/conv_bitstring/test.expected.73 +148 -0
  39. data/test/conv_bitstring/test.expected.74 +148 -0
  40. data/test/conv_bitstring/test.expected.80 +148 -0
  41. data/test/conv_bitstring/test.expected.81 +148 -0
  42. data/test/conv_bitstring/test.expected.82 +148 -0
  43. data/test/conv_bitstring/test.expected.83 +148 -0
  44. data/test/conv_bitstring/test.expected.84 +148 -0
  45. data/test/conv_bitstring/test.out +148 -0
  46. data/test/conv_bitstring/test_mklang.sql +8 -0
  47. data/test/conv_bitstring/test_queries.sql +63 -0
  48. data/test/conv_bitstring/test_queries.sql.in +63 -0
  49. data/test/conv_geometry/b.rb +45 -0
  50. data/test/conv_geometry/runtest +26 -0
  51. data/test/conv_geometry/test.expected.73 +265 -0
  52. data/test/conv_geometry/test.expected.74 +265 -0
  53. data/test/conv_geometry/test.expected.80 +265 -0
  54. data/test/conv_geometry/test.expected.81 +265 -0
  55. data/test/conv_geometry/test.expected.82 +265 -0
  56. data/test/conv_geometry/test.expected.83 +265 -0
  57. data/test/conv_geometry/test.expected.84 +265 -0
  58. data/test/conv_geometry/test.out +265 -0
  59. data/test/conv_geometry/test_mklang.sql +8 -0
  60. data/test/conv_geometry/test_queries.sql +194 -0
  61. data/test/conv_geometry/test_queries.sql.in +194 -0
  62. data/test/conv_network/b.rb +45 -0
  63. data/test/conv_network/runtest +26 -0
  64. data/test/conv_network/test.expected.73 +213 -0
  65. data/test/conv_network/test.expected.74 +237 -0
  66. data/test/conv_network/test.expected.80 +237 -0
  67. data/test/conv_network/test.expected.81 +237 -0
  68. data/test/conv_network/test.expected.82 +237 -0
  69. data/test/conv_network/test.expected.83 +237 -0
  70. data/test/conv_network/test.expected.84 +237 -0
  71. data/test/conv_network/test.out +237 -0
  72. data/test/conv_network/test_mklang.sql +8 -0
  73. data/test/conv_network/test_queries.sql +60 -0
  74. data/test/conv_network/test_queries.sql.in +60 -0
  75. data/test/plp/b.rb +34 -0
  76. data/test/plp/runtest +29 -0
  77. data/test/plp/test.expected.73 +472 -0
  78. data/test/plp/test.expected.74 +472 -0
  79. data/test/plp/test.expected.75 +472 -0
  80. data/test/plp/test.expected.80 +472 -0
  81. data/test/plp/test.expected.81 +472 -0
  82. data/test/plp/test.expected.82 +472 -0
  83. data/test/plp/test.expected.83 +472 -0
  84. data/test/plp/test.expected.84 +472 -0
  85. data/test/plp/test.out +472 -0
  86. data/test/plp/test_mklang.sql +8 -0
  87. data/test/plp/test_queries.sql +273 -0
  88. data/test/plp/test_setup.sql +931 -0
  89. data/test/plp/test_setup.sql.in +931 -0
  90. data/test/plt/b.rb +34 -0
  91. data/test/plt/runtest +29 -0
  92. data/test/plt/test.expected.73 +178 -0
  93. data/test/plt/test.expected.74 +178 -0
  94. data/test/plt/test.expected.75 +178 -0
  95. data/test/plt/test.expected.80 +178 -0
  96. data/test/plt/test.expected.81 +178 -0
  97. data/test/plt/test.expected.82 +178 -0
  98. data/test/plt/test.expected.83 +164 -0
  99. data/test/plt/test.expected.84 +168 -0
  100. data/test/plt/test.out +168 -0
  101. data/test/plt/test_mklang.sql +8 -0
  102. data/test/plt/test_queries.sql +72 -0
  103. data/test/plt/test_setup.sql +252 -0
  104. data/test/plt/test_setup.sql.in +252 -0
  105. data/test/range/b.rb +45 -0
  106. data/test/range/runtest +26 -0
  107. data/test/range/test.expected.73 +396 -0
  108. data/test/range/test.expected.73.in +396 -0
  109. data/test/range/test.expected.74 +396 -0
  110. data/test/range/test.expected.74.in +396 -0
  111. data/test/range/test.expected.75 +396 -0
  112. data/test/range/test.expected.75.in +396 -0
  113. data/test/range/test.expected.80 +396 -0
  114. data/test/range/test.expected.81 +397 -0
  115. data/test/range/test.expected.82 +397 -0
  116. data/test/range/test.expected.83 +397 -0
  117. data/test/range/test.expected.84 +399 -0
  118. data/test/range/test.out +399 -0
  119. data/test/range/test_mklang.sql +8 -0
  120. data/test/range/test_queries.sql +249 -0
  121. data/test/range/test_queries.sql.in +249 -0
  122. metadata +207 -0
@@ -0,0 +1,249 @@
1
+ ---
2
+ --- test from postgreSQL
3
+ ---
4
+ SELECT * FROM pg_settings WHERE name LIKE 'enable%';
5
+
6
+ CREATE TABLE foo2(fooid int, f2 int);
7
+ INSERT INTO foo2 VALUES(1, 11);
8
+ INSERT INTO foo2 VALUES(2, 22);
9
+ INSERT INTO foo2 VALUES(1, 111);
10
+
11
+ CREATE FUNCTION foot(int) returns setof foo2 as '
12
+ "SELECT * FROM foo2 WHERE fooid = #{args[0]}"'
13
+ language 'plruby';
14
+
15
+ -- supposed to fail with ERROR
16
+ select * from foo2, foot(foo2.fooid) z where foo2.f2 = z.f2;
17
+
18
+ -- function in subselect
19
+ select * from foo2 where f2 in (
20
+ select f2 from foot(foo2.fooid) z where z.fooid = foo2.fooid
21
+ ) ORDER BY 1,2;
22
+
23
+ -- function in subselect
24
+ select * from foo2 where f2 in (
25
+ select f2 from foot(1) z where z.fooid = foo2.fooid
26
+ ) ORDER BY 1,2;
27
+
28
+ -- function in subselect
29
+ select * from foo2 where f2 in (
30
+ select f2 from foot(foo2.fooid) z where z.fooid = 1
31
+ ) ORDER BY 1,2;
32
+
33
+ -- nested functions
34
+ select foot.fooid, foot.f2 from foot(sin(pi()/2)::int) ORDER BY 1,2;
35
+
36
+ CREATE TABLE foo (fooid int, foosubid int, fooname text, primary key(fooid,foosubid));
37
+ INSERT INTO foo VALUES(1,1,'Joe');
38
+ INSERT INTO foo VALUES(1,2,'Ed');
39
+ INSERT INTO foo VALUES(2,1,'Mary');
40
+
41
+ -- sql, proretset = f, prorettype = b
42
+ CREATE FUNCTION getfoo(int) RETURNS int AS '
43
+ args[0]
44
+ ' language 'plruby';
45
+
46
+ SELECT * FROM getfoo(1) AS t1;
47
+ CREATE VIEW vw_getfoo AS SELECT * FROM getfoo(1);
48
+ SELECT * FROM vw_getfoo;
49
+
50
+ -- sql, proretset = t, prorettype = b
51
+ DROP VIEW vw_getfoo;
52
+ DROP FUNCTION getfoo(int);
53
+
54
+ CREATE FUNCTION getfoo(int) RETURNS setof int AS '
55
+ "SELECT fooid FROM foo WHERE fooid = #{args[0]}"
56
+ ' language 'plruby';
57
+
58
+ SELECT * FROM getfoo(1) AS t1;
59
+ CREATE VIEW vw_getfoo AS SELECT * FROM getfoo(1);
60
+ SELECT * FROM vw_getfoo;
61
+
62
+ -- sql, proretset = t, prorettype = b
63
+ DROP VIEW vw_getfoo;
64
+ DROP FUNCTION getfoo(int);
65
+
66
+ CREATE FUNCTION getfoo(int) RETURNS setof text AS '
67
+ "SELECT fooname FROM foo WHERE fooid = #{args[0]}"
68
+ ' language 'plruby';
69
+
70
+ SELECT * FROM getfoo(1) AS t1;
71
+ CREATE VIEW vw_getfoo AS SELECT * FROM getfoo(1);
72
+ SELECT * FROM vw_getfoo;
73
+
74
+ -- sql, proretset = t, prorettype = c
75
+ DROP VIEW vw_getfoo;
76
+ DROP FUNCTION getfoo(int);
77
+
78
+ CREATE FUNCTION getfoo(int) RETURNS setof foo AS '
79
+ "SELECT * FROM foo WHERE fooid = #{args[0]}"
80
+ ' language 'plruby';
81
+
82
+ SELECT * FROM getfoo(1) AS t1;
83
+ CREATE VIEW vw_getfoo AS SELECT * FROM getfoo(1);
84
+ SELECT * FROM vw_getfoo;
85
+
86
+ -- sql, proretset = t, prorettype = record
87
+ DROP VIEW vw_getfoo;
88
+ DROP FUNCTION getfoo(int);
89
+
90
+ CREATE FUNCTION getfoo(int) RETURNS setof record AS '
91
+ "SELECT * FROM foo WHERE fooid = #{args[0]}"
92
+ ' language 'plruby';
93
+
94
+ SELECT * FROM getfoo(1) AS t1(fooid int, foosubid int, fooname text);
95
+ CREATE VIEW vw_getfoo AS SELECT * FROM getfoo(1) AS (fooid int, foosubid int, fooname text);
96
+ SELECT * FROM vw_getfoo;
97
+
98
+ -- plpgsql, proretset = f, prorettype = b
99
+ DROP VIEW vw_getfoo;
100
+ DROP FUNCTION getfoo(int);
101
+
102
+ CREATE FUNCTION getfoo(int) RETURNS setof int AS '
103
+ PL.exec("SELECT fooid FROM foo WHERE fooid = #{args[0]}") do |row|
104
+ yield row.values
105
+ end
106
+ ' language 'plruby';
107
+
108
+ SELECT * FROM getfoo(1) AS t1;
109
+ CREATE VIEW vw_getfoo AS SELECT * FROM getfoo(1);
110
+ SELECT * FROM vw_getfoo;
111
+
112
+ -- plpgsql, proretset = f, prorettype = c
113
+ DROP VIEW vw_getfoo;
114
+ DROP FUNCTION getfoo(int);
115
+
116
+ CREATE FUNCTION getfoo(int) RETURNS setof foo AS '
117
+ PL.exec("SELECT * FROM foo WHERE fooid = #{args[0]}", nil, "value") do |r|
118
+ yield r
119
+ end
120
+ ' language 'plruby';
121
+
122
+ SELECT * FROM getfoo(1) AS t1;
123
+ CREATE VIEW vw_getfoo AS SELECT * FROM getfoo(1);
124
+ SELECT * FROM vw_getfoo;
125
+
126
+ DROP VIEW vw_getfoo;
127
+ DROP FUNCTION getfoo(int);
128
+ DROP FUNCTION foot(int);
129
+ DROP TABLE foo2;
130
+ DROP TABLE foo;
131
+
132
+ -- Rescan tests --
133
+ CREATE TABLE foorescan (fooid int, foosubid int, fooname text, primary key(fooid,foosubid));
134
+ INSERT INTO foorescan values(5000,1,'abc.5000.1');
135
+ INSERT INTO foorescan values(5001,1,'abc.5001.1');
136
+ INSERT INTO foorescan values(5002,1,'abc.5002.1');
137
+ INSERT INTO foorescan values(5003,1,'abc.5003.1');
138
+ INSERT INTO foorescan values(5004,1,'abc.5004.1');
139
+ INSERT INTO foorescan values(5005,1,'abc.5005.1');
140
+ INSERT INTO foorescan values(5006,1,'abc.5006.1');
141
+ INSERT INTO foorescan values(5007,1,'abc.5007.1');
142
+ INSERT INTO foorescan values(5008,1,'abc.5008.1');
143
+ INSERT INTO foorescan values(5009,1,'abc.5009.1');
144
+
145
+ INSERT INTO foorescan values(5000,2,'abc.5000.2');
146
+ INSERT INTO foorescan values(5001,2,'abc.5001.2');
147
+ INSERT INTO foorescan values(5002,2,'abc.5002.2');
148
+ INSERT INTO foorescan values(5003,2,'abc.5003.2');
149
+ INSERT INTO foorescan values(5004,2,'abc.5004.2');
150
+ INSERT INTO foorescan values(5005,2,'abc.5005.2');
151
+ INSERT INTO foorescan values(5006,2,'abc.5006.2');
152
+ INSERT INTO foorescan values(5007,2,'abc.5007.2');
153
+ INSERT INTO foorescan values(5008,2,'abc.5008.2');
154
+ INSERT INTO foorescan values(5009,2,'abc.5009.2');
155
+
156
+ INSERT INTO foorescan values(5000,3,'abc.5000.3');
157
+ INSERT INTO foorescan values(5001,3,'abc.5001.3');
158
+ INSERT INTO foorescan values(5002,3,'abc.5002.3');
159
+ INSERT INTO foorescan values(5003,3,'abc.5003.3');
160
+ INSERT INTO foorescan values(5004,3,'abc.5004.3');
161
+ INSERT INTO foorescan values(5005,3,'abc.5005.3');
162
+ INSERT INTO foorescan values(5006,3,'abc.5006.3');
163
+ INSERT INTO foorescan values(5007,3,'abc.5007.3');
164
+ INSERT INTO foorescan values(5008,3,'abc.5008.3');
165
+ INSERT INTO foorescan values(5009,3,'abc.5009.3');
166
+
167
+ INSERT INTO foorescan values(5000,4,'abc.5000.4');
168
+ INSERT INTO foorescan values(5001,4,'abc.5001.4');
169
+ INSERT INTO foorescan values(5002,4,'abc.5002.4');
170
+ INSERT INTO foorescan values(5003,4,'abc.5003.4');
171
+ INSERT INTO foorescan values(5004,4,'abc.5004.4');
172
+ INSERT INTO foorescan values(5005,4,'abc.5005.4');
173
+ INSERT INTO foorescan values(5006,4,'abc.5006.4');
174
+ INSERT INTO foorescan values(5007,4,'abc.5007.4');
175
+ INSERT INTO foorescan values(5008,4,'abc.5008.4');
176
+ INSERT INTO foorescan values(5009,4,'abc.5009.4');
177
+
178
+ INSERT INTO foorescan values(5000,5,'abc.5000.5');
179
+ INSERT INTO foorescan values(5001,5,'abc.5001.5');
180
+ INSERT INTO foorescan values(5002,5,'abc.5002.5');
181
+ INSERT INTO foorescan values(5003,5,'abc.5003.5');
182
+ INSERT INTO foorescan values(5004,5,'abc.5004.5');
183
+ INSERT INTO foorescan values(5005,5,'abc.5005.5');
184
+ INSERT INTO foorescan values(5006,5,'abc.5006.5');
185
+ INSERT INTO foorescan values(5007,5,'abc.5007.5');
186
+ INSERT INTO foorescan values(5008,5,'abc.5008.5');
187
+ INSERT INTO foorescan values(5009,5,'abc.5009.5');
188
+
189
+ CREATE FUNCTION foorescan(int,int) RETURNS setof foorescan AS '
190
+ "SELECT * FROM foorescan WHERE fooid >= #{args[0]} and fooid < #{args[1]}"
191
+ ' language 'plruby';
192
+
193
+ --invokes ExecFunctionReScan
194
+ SELECT * FROM foorescan f WHERE f.fooid IN (
195
+ SELECT fooid FROM foorescan(5002,5004)
196
+ ) ORDER BY 1,2;
197
+
198
+ CREATE VIEW vw_foorescan AS SELECT * FROM foorescan(5002,5004);
199
+
200
+ --invokes ExecFunctionReScan
201
+
202
+ SELECT * FROM foorescan f WHERE f.fooid IN (
203
+ SELECT fooid FROM vw_foorescan
204
+ ) ORDER BY 1,2;
205
+
206
+ CREATE TABLE barrescan (fooid int primary key);
207
+ INSERT INTO barrescan values(5003);
208
+ INSERT INTO barrescan values(5004);
209
+ INSERT INTO barrescan values(5005);
210
+ INSERT INTO barrescan values(5006);
211
+ INSERT INTO barrescan values(5007);
212
+ INSERT INTO barrescan values(5008);
213
+
214
+ CREATE FUNCTION foorescan(int) RETURNS setof foorescan AS '
215
+ "SELECT * FROM foorescan WHERE fooid = #{args[0]}"
216
+ ' language 'plruby';
217
+
218
+ --invokes ExecFunctionReScan with chgParam != NULL
219
+ SELECT f.* FROM barrescan b, foorescan f
220
+ WHERE f.fooid = b.fooid AND b.fooid IN (
221
+ SELECT fooid FROM foorescan(b.fooid)
222
+ ) ORDER BY 1,2;
223
+
224
+ SELECT b.fooid, max(f.foosubid) FROM barrescan b, foorescan f
225
+ WHERE f.fooid = b.fooid AND b.fooid IN (
226
+ SELECT fooid FROM foorescan(b.fooid)
227
+ ) GROUP BY b.fooid ORDER BY 1,2;
228
+
229
+ CREATE VIEW fooview1 AS SELECT f.* FROM barrescan b, foorescan f
230
+ WHERE f.fooid = b.fooid AND b.fooid IN (
231
+ SELECT fooid FROM foorescan(b.fooid)
232
+ ) ORDER BY 1,2;
233
+
234
+ SELECT * FROM fooview1 AS fv WHERE fv.fooid = 5004;
235
+
236
+ CREATE VIEW fooview2 AS SELECT b.fooid, max(f.foosubid) AS maxsubid
237
+ FROM barrescan b, foorescan f WHERE f.fooid = b.fooid AND b.fooid IN (
238
+ SELECT fooid FROM foorescan(b.fooid)
239
+ ) GROUP BY b.fooid ORDER BY 1,2;
240
+
241
+ SELECT * FROM fooview2 AS fv WHERE fv.maxsubid = 5;
242
+
243
+ DROP VIEW vw_foorescan;
244
+ DROP VIEW fooview1;
245
+ DROP VIEW fooview2;
246
+ DROP FUNCTION foorescan(int,int);
247
+ DROP FUNCTION foorescan(int);
248
+ DROP TABLE foorescan;
249
+ DROP TABLE barrescan;
metadata ADDED
@@ -0,0 +1,207 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: globegit-postgresql-plruby
3
+ version: !ruby/object:Gem::Version
4
+ hash: 3
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 5
9
+ - 4
10
+ version: 0.5.4
11
+ platform: ruby
12
+ authors:
13
+ - Akinori MUSHA
14
+ - Guy Decoux
15
+ autorequire:
16
+ bindir: bin
17
+ cert_chain: []
18
+
19
+ date: 2011-05-24 00:00:00 -06:00
20
+ default_executable:
21
+ dependencies: []
22
+
23
+ description: " PL/Ruby is a loadable procedural language for the PostgreSQL database\n system that enables the Ruby language to create functions and trigger\n procedures.\n"
24
+ email: akinori@musha.org
25
+ executables: []
26
+
27
+ extensions:
28
+ - extconf.rb
29
+ extra_rdoc_files:
30
+ - README.markdown
31
+ - Changes
32
+ files:
33
+ - docs/plruby.rb
34
+ - Rakefile
35
+ - ex_trans.sql
36
+ - extconf.rb
37
+ - README.markdown
38
+ - plruby.rd
39
+ - postgresql-plruby.gemspec
40
+ - src/pltrans.c
41
+ - src/plruby.c
42
+ - src/plplan.c
43
+ - src/conversions/bitstring/bitstring.sql
44
+ - src/conversions/bitstring/extconf.rb
45
+ - src/conversions/bitstring/plruby_bitstring.c
46
+ - src/conversions/bitstring/conversions.h
47
+ - src/conversions/convcommon.h
48
+ - src/conversions/datetime/plruby_datetime.c
49
+ - src/conversions/datetime/extconf.rb
50
+ - src/conversions/datetime/conversions.h
51
+ - src/conversions/network/extconf.rb
52
+ - src/conversions/network/network.sql
53
+ - src/conversions/network/plruby_network.c
54
+ - src/conversions/network/conversions.h
55
+ - src/conversions/geometry/extconf.rb
56
+ - src/conversions/geometry/geometry.sql
57
+ - src/conversions/geometry/conversions.h
58
+ - src/conversions/geometry/plruby_geometry.c
59
+ - src/conversions/basic/extconf.rb
60
+ - src/conversions/basic/plruby_basic.c
61
+ - src/conversions/basic/conversions.h
62
+ - src/plpl.c
63
+ - src/package.h
64
+ - src/plruby.h
65
+ - src/conversions.h
66
+ - test/conv_bitstring/test.expected.80
67
+ - test/conv_bitstring/test_queries.sql.in
68
+ - test/conv_bitstring/test.expected.81
69
+ - test/conv_bitstring/test.expected.73
70
+ - test/conv_bitstring/test.expected.84
71
+ - test/conv_bitstring/runtest
72
+ - test/conv_bitstring/test_queries.sql
73
+ - test/conv_bitstring/test.expected.82
74
+ - test/conv_bitstring/test.out
75
+ - test/conv_bitstring/test.expected.74
76
+ - test/conv_bitstring/b.rb
77
+ - test/conv_bitstring/test_mklang.sql
78
+ - test/conv_bitstring/test.expected.83
79
+ - test/conv_network/test.expected.80
80
+ - test/conv_network/test_queries.sql.in
81
+ - test/conv_network/test.expected.81
82
+ - test/conv_network/test.expected.73
83
+ - test/conv_network/test.expected.84
84
+ - test/conv_network/runtest
85
+ - test/conv_network/test_queries.sql
86
+ - test/conv_network/test.expected.82
87
+ - test/conv_network/test.out
88
+ - test/conv_network/test.expected.74
89
+ - test/conv_network/b.rb
90
+ - test/conv_network/test_mklang.sql
91
+ - test/conv_network/test.expected.83
92
+ - test/plp/test.expected.75
93
+ - test/plp/test.expected.80
94
+ - test/plp/test_setup.sql
95
+ - test/plp/test.expected.81
96
+ - test/plp/test.expected.73
97
+ - test/plp/test_setup.sql.in
98
+ - test/plp/test.expected.84
99
+ - test/plp/runtest
100
+ - test/plp/test_queries.sql
101
+ - test/plp/test.expected.82
102
+ - test/plp/test.out
103
+ - test/plp/test.expected.74
104
+ - test/plp/b.rb
105
+ - test/plp/test_mklang.sql
106
+ - test/plp/test.expected.83
107
+ - test/plt/test.expected.75
108
+ - test/plt/test.expected.80
109
+ - test/plt/test_setup.sql
110
+ - test/plt/test.expected.81
111
+ - test/plt/test.expected.73
112
+ - test/plt/test_setup.sql.in
113
+ - test/plt/test.expected.84
114
+ - test/plt/runtest
115
+ - test/plt/test_queries.sql
116
+ - test/plt/test.expected.82
117
+ - test/plt/test.out
118
+ - test/plt/test.expected.74
119
+ - test/plt/b.rb
120
+ - test/plt/test_mklang.sql
121
+ - test/plt/test.expected.83
122
+ - test/conv_geometry/test.expected.80
123
+ - test/conv_geometry/test_queries.sql.in
124
+ - test/conv_geometry/test.expected.81
125
+ - test/conv_geometry/test.expected.73
126
+ - test/conv_geometry/test.expected.84
127
+ - test/conv_geometry/runtest
128
+ - test/conv_geometry/test_queries.sql
129
+ - test/conv_geometry/test.expected.82
130
+ - test/conv_geometry/test.out
131
+ - test/conv_geometry/test.expected.74
132
+ - test/conv_geometry/b.rb
133
+ - test/conv_geometry/test_mklang.sql
134
+ - test/conv_geometry/test.expected.83
135
+ - test/range/test.expected.75
136
+ - test/range/test.expected.80
137
+ - test/range/test_queries.sql.in
138
+ - test/range/test.expected.81
139
+ - test/range/test.expected.73
140
+ - test/range/test.expected.73.in
141
+ - test/range/test.expected.74.in
142
+ - test/range/test.expected.75.in
143
+ - test/range/test.expected.84
144
+ - test/range/runtest
145
+ - test/range/test_queries.sql
146
+ - test/range/test.expected.82
147
+ - test/range/test.out
148
+ - test/range/test.expected.74
149
+ - test/range/b.rb
150
+ - test/range/test_mklang.sql
151
+ - test/range/test.expected.83
152
+ - plruby.html
153
+ - Changes
154
+ has_rdoc: true
155
+ homepage: https://github.com/knu/postgresql-plruby
156
+ licenses:
157
+ - Ruby
158
+ post_install_message: |+
159
+
160
+ Now run the following commands from within a postgresql shell in order
161
+ to create the plruby language on in database server:
162
+
163
+ create function plruby_call_handler() returns language_handler
164
+ as '/usr/local/lib/ruby/gems/1.8/gems/postgresql-plruby-0.5.4/src/plruby.so'
165
+ language 'C';
166
+
167
+ create trusted language 'plruby'
168
+ handler plruby_call_handler
169
+ lancompiler 'PL/Ruby';
170
+
171
+ NOTE: Your actual path to plruby.so may be different. Possible
172
+ paths to the plruby binary are:
173
+
174
+ /home/dberger/.gem/ruby/1.8/gems/postgresql-plruby-0.5.4/src/plruby.so
175
+ /usr/local/lib/ruby/gems/1.8/gems/postgresql-plruby-0.5.4/src/plruby.so
176
+
177
+ rdoc_options: []
178
+
179
+ require_paths:
180
+ - lib
181
+ required_ruby_version: !ruby/object:Gem::Requirement
182
+ none: false
183
+ requirements:
184
+ - - ">="
185
+ - !ruby/object:Gem::Version
186
+ hash: 3
187
+ segments:
188
+ - 0
189
+ version: "0"
190
+ required_rubygems_version: !ruby/object:Gem::Requirement
191
+ none: false
192
+ requirements:
193
+ - - ">="
194
+ - !ruby/object:Gem::Version
195
+ hash: 3
196
+ segments:
197
+ - 0
198
+ version: "0"
199
+ requirements: []
200
+
201
+ rubyforge_project: plruby
202
+ rubygems_version: 1.6.2
203
+ signing_key:
204
+ specification_version: 3
205
+ summary: Enable Ruby for use as a procedural language within PostgreSQL
206
+ test_files: []
207
+