jruby-pg 0.1-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +7 -0
  2. data/.gemtest +0 -0
  3. data/BSDL +22 -0
  4. data/ChangeLog +0 -0
  5. data/Contributors.rdoc +45 -0
  6. data/History.rdoc +270 -0
  7. data/LICENSE +56 -0
  8. data/Manifest.txt +44 -0
  9. data/POSTGRES +23 -0
  10. data/README-OS_X.rdoc +68 -0
  11. data/README-Windows.rdoc +67 -0
  12. data/README.ja.rdoc +14 -0
  13. data/README.rdoc +102 -0
  14. data/Rakefile +211 -0
  15. data/Rakefile.cross +273 -0
  16. data/ext/gvl_wrappers.c +13 -0
  17. data/ext/pg.c +545 -0
  18. data/ext/pg_connection.c +3643 -0
  19. data/ext/pg_errors.c +89 -0
  20. data/ext/pg_result.c +920 -0
  21. data/lib/pg.rb +52 -0
  22. data/lib/pg/connection.rb +179 -0
  23. data/lib/pg/constants.rb +11 -0
  24. data/lib/pg/exceptions.rb +11 -0
  25. data/lib/pg/result.rb +16 -0
  26. data/lib/pg_ext.jar +0 -0
  27. data/sample/array_insert.rb +20 -0
  28. data/sample/async_api.rb +106 -0
  29. data/sample/async_copyto.rb +39 -0
  30. data/sample/async_mixed.rb +56 -0
  31. data/sample/check_conn.rb +21 -0
  32. data/sample/copyfrom.rb +81 -0
  33. data/sample/copyto.rb +19 -0
  34. data/sample/cursor.rb +21 -0
  35. data/sample/disk_usage_report.rb +186 -0
  36. data/sample/issue-119.rb +94 -0
  37. data/sample/losample.rb +69 -0
  38. data/sample/minimal-testcase.rb +17 -0
  39. data/sample/notify_wait.rb +72 -0
  40. data/sample/pg_statistics.rb +294 -0
  41. data/sample/replication_monitor.rb +231 -0
  42. data/sample/test_binary_values.rb +33 -0
  43. data/sample/wal_shipper.rb +434 -0
  44. data/sample/warehouse_partitions.rb +320 -0
  45. data/spec/data/expected_trace.out +26 -0
  46. data/spec/data/random_binary_data +0 -0
  47. data/spec/lib/helpers.rb +350 -0
  48. data/spec/pg/connection_spec.rb +1276 -0
  49. data/spec/pg/result_spec.rb +345 -0
  50. data/spec/pg_spec.rb +44 -0
  51. metadata +190 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 2dfb4c57ca46dc6b58f0cb2eaff981a62599c940e111aa32dbc3c9bc42361411
4
+ data.tar.gz: 4ed715fef2318d31a929233b540eb4ae0aa1fcb95e61a9fb4f9a49cf76b5adc1
5
+ SHA512:
6
+ metadata.gz: 7450fdd70926bc32cea65f48f6920d85f04f74fbfad76a475109555bcb606a750837f680cee59da4492ea209e7143d46d1ad355efc5b1c76f8df1b6accee6434
7
+ data.tar.gz: 50fddb4fe836ce5c586911d2624d034555e25f254c6e5fddac1df4b2e28a1b1e9ece4726c8e9b832eb9078e5af7c6d915f375239ad6308777c830288f707c97b
File without changes
data/BSDL ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (C) 1993-2010 Yukihiro Matsumoto. All rights reserved.
2
+
3
+ Redistribution and use in source and binary forms, with or without
4
+ modification, are permitted provided that the following conditions
5
+ are met:
6
+ 1. Redistributions of source code must retain the above copyright
7
+ notice, this list of conditions and the following disclaimer.
8
+ 2. Redistributions in binary form must reproduce the above copyright
9
+ notice, this list of conditions and the following disclaimer in the
10
+ documentation and/or other materials provided with the distribution.
11
+
12
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
13
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
14
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
15
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
16
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
17
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
18
+ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
19
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
20
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
21
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
22
+ SUCH DAMAGE.
File without changes
@@ -0,0 +1,45 @@
1
+ Thanks to all the great people that have contributed code,
2
+ suggestions, and patches through the years. If you contribute a patch,
3
+ please include a patch for this file that adds your name to the list.
4
+
5
+ * Dennis Vshivkov <walrus@amur.ru>
6
+ * Gabriel Emerson <gemerson@evalsoft.com>
7
+ * Noboru Saitou <noborus@netlab.jp>
8
+ * Akinori MUSHA <knu@iDaemons.org>
9
+ * Andy Yu <is@gnuchina.org>
10
+ * Ceri Storey <cez@compsoc.man.ac.uk>
11
+ * Gavin Kistner <gavin@refinery.com>
12
+ * Henry T. So Jr. <henryso@panix.com>
13
+ * Jeremy Henty <jeremy@chaos.org.uk>
14
+ * <kasa@air.linkclub.or.jp>
15
+ * Leon Brooks <leon-ruby-postgres@cyberknights.com.au>
16
+ * Martin Hedenfalk <mahe@kth.se>
17
+ * Yukihiro Matsumoto <matz@zetabits.com>
18
+ * Eiji Matsumoto <usagi@ruby.club.or.jp>
19
+ * MoonWolf <moonwolf@moonwolf.com>
20
+ * <m_seki@mva.biglobe.ne.jp>
21
+ * Nate Haggard <nate@wordplace.com>
22
+ * Neil Conway <nconway@klamath.dyndns.org>
23
+ * Noboru Matui <silicon@mx1.freemail.ne.jp>
24
+ * Okada Jun <yun@be-in.org>
25
+ * Shirai,Kaoru <shirai@p1jp.com>
26
+ * Riley <wormwood@speakeasy.org>
27
+ * shibata <kshibata@vesta.ocn.ne.jp>
28
+ * <greentea@fa2.so-net.ne.jp>
29
+ * ts <decoux@moulon.inra.fr>
30
+ * Yuta TSUBOI <yuuta-t@is.aist-nara.ac.jp>
31
+ * Lugovoi Nikolai <meadow.nnick@gmail.com>
32
+ * Jeff Davis <ruby@j-davis.com>
33
+ * Bertram Scharpf <software@bertram-scharpf.de>
34
+ * Michael Granger <ged@FaerieMUD.org>
35
+ * Mahlon E. Smith <mahlon@martini.nu>
36
+ * Lars Kanis <kanis@comcard.de>
37
+ * Jason Yanowitz <me-bitbucket@jasonyanowitz.com>
38
+ * Charlie Savage <cfis@rubyforge.org>
39
+ * Rafał Bigaj <rafal.bigaj@gmail.com>
40
+ * Jason Yanowitz <me-bitbucket@jasonyanowitz.com>
41
+ * Greg Hazel <ghazel@gmail.com>
42
+ * Chris White <cwprogram@live.com>
43
+ * Aaron Patterson <aaron.patterson@gmail.com>
44
+ * Tim Felgentreff <timfelgentreff@gmail.com>
45
+
@@ -0,0 +1,270 @@
1
+ == v0.17.1 [2013-12-18] Michael Granger <ged@FaerieMUD.org>
2
+
3
+ Bugfixes:
4
+
5
+ - Fix compatibility with signal handlers defined in Ruby. This reverts
6
+ cancelation of queries running on top of the blocking libpq API (like
7
+ Connection#exec) in case of signals. As an alternative the #async_exec
8
+ can be used, which is reverted to use the non-blocking API, again.
9
+ - Wrap PQcancel to be called without GVL. It internally waits for
10
+ the canceling connection.
11
+
12
+ Documentation fixes:
13
+
14
+ - Fix documentation for PG::Connection::conndefaults.
15
+
16
+
17
+ == v0.17.0 [2013-09-15] Michael Granger <ged@FaerieMUD.org>
18
+
19
+ Bugfixes:
20
+
21
+ - Fix crash by calling PQsend* and PQisBusy without GVL (#171).
22
+
23
+ Enhancements:
24
+
25
+ - Add method PG::Connection#copy_data.
26
+ - Add a Gemfile to allow installation of dependencies with bundler.
27
+ - Add compatibility with rake-compiler-dev-box.
28
+ - Return self from PG::Result#check instead of nil. This allows
29
+ to stack method calls.
30
+
31
+
32
+ == v0.16.0 [2013-07-22] Michael Granger <ged@FaerieMUD.org>
33
+
34
+ Bugfixes:
35
+
36
+ - Avoid warnings about uninitialized instance variables.
37
+ - Use a more standard method of adding library and include directories.
38
+ This fixes build on AIX (Github #7) and Solaris (#164).
39
+ - Cancel the running query, if a thread is about to be killed (e.g. by CTRL-C).
40
+ - Fix GVL issue with wait_for_notify/notifies and notice callbacks.
41
+ - Set proper encoding on the string returned by quote_ident, escape_literal
42
+ and escape_identifier (#163).
43
+ - Use nil as PG::Error#result in case of a NULL-result from libpq (#166).
44
+ - Recalculate the timeout of conn#wait_for_notify and conn#block in case
45
+ of socket events that require re-runs of select().
46
+
47
+ Documentation fixes:
48
+
49
+ - Fix non working example for PGresult#error_field.
50
+
51
+ Enhancements:
52
+
53
+ - Add unique exception classes for each PostgreSQL error type (#5).
54
+ - Return result of the block in conn#transaction instead of nil (#158).
55
+ - Allow 'rake compile' and 'rake gem' on non mercurial repos.
56
+ - Add support for PG_DIAG_*_NAME error fields of PostgreSQL-9.3 (#161).
57
+
58
+
59
+ == v0.15.1 [2013-04-08] Michael Granger <ged@FaerieMUD.org>
60
+
61
+ Bugfixes:
62
+
63
+ - Shorten application_name to avoid warnings about truncated identifier.
64
+
65
+
66
+ == v0.15.0 [2013-03-03] Michael Granger <ged@FaerieMUD.org>
67
+
68
+ Bugfixes:
69
+
70
+ - Fix segfault in PG::Result#field_values when called with non String value.
71
+ - Fix encoding of messages delivered by notice callbacks.
72
+ - Fix text encoding for Connection#wait_for_notify and Connection#notifies.
73
+ - Fix 'Bad file descriptor' problems under Windows: wrong behaviour of
74
+ #wait_for_notify() and timeout handling of #block on Ruby 1.9.
75
+
76
+ Documentation fixes:
77
+
78
+ - conn#socket() can not be used with IO.for_fd() on Windows.
79
+
80
+ Enhancements:
81
+
82
+ - Tested under Ruby 2.0.0p0.
83
+ - Add single row mode of PostgreSQL 9.2.
84
+ - Set fallback_application_name to programm name $0. Thanks to Will Leinweber
85
+ for the patch.
86
+ - Release Ruby's GVL while calls to blocking libpq functions to allow better
87
+ concurrency in threaded applications.
88
+ - Refactor different variants of waiting for the connection socket.
89
+ - Make use of rb_thread_fd_select() on Ruby 1.9 and avoid deprecated
90
+ rb_thread_select().
91
+ - Add an example of how to insert array data using a prepared statement (#145).
92
+ - Add continous integration tests on travis-ci.org.
93
+ - Add PG::Result#each_row for iterative over result sets by row. Thanks to
94
+ Aaron Patterson for the patch.
95
+ - Add a PG::Connection#socket_io method for fetching a (non-autoclosing) IO
96
+ object for the connection's socket.
97
+
98
+ Specs:
99
+
100
+ - Fix various specs to run on older PostgreSQL and Ruby versions.
101
+ - Avoid fork() in specs to allow usage on Windows and JRuby.
102
+
103
+
104
+ == v0.14.1 [2012-09-02] Michael Granger <ged@FaerieMUD.org>
105
+
106
+ Important bugfix:
107
+
108
+ - Fix stack overflow bug in PG::Result#values and #column_values (#135). Thanks
109
+ to everyone who reported the bug, and Lars Kanis especially for figuring out
110
+ the problem.
111
+
112
+ PostgreSQL 9.2 beta fixes:
113
+
114
+ - Recognize PGRES_SINGLE_TUPLE as OK when checking PGresult (Jeremy Evans)
115
+
116
+ Documentation fixes:
117
+
118
+ - Add note about the usage scope of the result object received by the
119
+ #set_notice_receiver block. (Lars Kanis)
120
+ - Add PGRES_COPY_BOTH to documentation of PG::Result#result_status. (Lars Kanis)
121
+ - Add some documentation to PG::Result#fnumber (fix for #139)
122
+
123
+
124
+ == v0.14.0 [2012-06-17] Michael Granger <ged@FaerieMUD.org>
125
+
126
+ Bugfixes:
127
+ #47, #104
128
+
129
+
130
+ New Methods for PostgreSQL 9 and async API support:
131
+ PG
132
+ - ::library_version
133
+
134
+ PG::Connection
135
+ - ::ping
136
+ - #escape_literal
137
+ - #escape_identifier
138
+ - #set_default_encoding
139
+
140
+ PG::Result
141
+ - #check
142
+
143
+
144
+ New Samples:
145
+
146
+ This release also comes with a collection of contributed sample scripts for
147
+ doing resource-utilization reports, graphing database statistics,
148
+ monitoring for replication lag, shipping WAL files for replication,
149
+ automated tablespace partitioning, etc. See the samples/ directory.
150
+
151
+
152
+ == v0.13.2 [2012-02-22] Michael Granger <ged@FaerieMUD.org>
153
+
154
+ - Make builds against PostgreSQL earlier than 8.3 fail with a descriptive
155
+ message instead of a compile failure.
156
+
157
+
158
+ == v0.13.1 [2012-02-12] Michael Granger <ged@FaerieMUD.org>
159
+
160
+ - Made use of a finished PG::Connection raise a PG::Error instead of
161
+ a fatal error (#110).
162
+ - Added missing BSDL license file (#108)
163
+
164
+
165
+ == v0.13.0 [2012-02-09] Michael Granger <ged@FaerieMUD.org>
166
+
167
+ Reorganization of modules/classes to be better Ruby citizens (with backward-compatible aliases):
168
+ - Created toplevel namespace 'PG' to correspond with the gem name.
169
+ - Renamed PGconn to PG::Connection (with ::PGconn alias)
170
+ - Renamed PGresult to PG::Result (with ::PGresult alias)
171
+ - Renamed PGError to PG::Error (with ::PGError alias)
172
+ - Declare all constants inside PG::Constants, then include them in
173
+ PG::Connection and PG::Result for backward-compatibility, and
174
+ in PG for convenience.
175
+ - Split the extension source up by class/module.
176
+ - Removed old compatibility code for PostgreSQL versions < 8.3
177
+
178
+ Documentation:
179
+ - Clarified licensing, updated to Ruby 1.9's license.
180
+ - Merged authors list, added some missing people to the Contributor's
181
+ list.
182
+ - Cleaned up the sample/ directory
183
+ - Making contact info a bit clearer, link to the Google+ page and
184
+ the mailing list
185
+
186
+ Enhancements:
187
+ - Added a convenience method: PG.connect -> PG::Connection.new
188
+
189
+ Bugfixes:
190
+ - Fixed LATIN5-LATIN10 Postgres<->Ruby encoding conversions
191
+
192
+
193
+
194
+ == v0.12.2 [2012-01-03] Michael Granger <ged@FaerieMUD.org>
195
+
196
+ - Fix for the 1.8.7 breakage introduced by the st.h fix for alternative Ruby
197
+ implementations (#97 and #98). Thanks to Lars Kanis for the patch.
198
+ - Encode error messages with the connection's encoding under 1.9 (#96)
199
+
200
+
201
+ == v0.12.1 [2011-12-14] Michael Granger <ged@FaerieMUD.org>
202
+
203
+ - Made rake-compiler a dev dependency, as Rubygems doesn't use the Rakefile
204
+ for compiling the extension. Thanks to eolamey@bitbucket and Jeremy Evans
205
+ for pointing this out.
206
+ - Added an explicit include for ruby/st.h for implementations that need it
207
+ (fixes #95).
208
+
209
+
210
+ == v0.12.0 [2011-12-07] Michael Granger <ged@FaerieMUD.org>
211
+
212
+ - PGconn#wait_for_notify
213
+ * send nil as the payload argument if the NOTIFY didn't have one.
214
+ * accept a nil argument for no timeout (Sequel support)
215
+ * Fixed API docs
216
+ * Taint and encode event name and payload
217
+ - Handle errors while rb_thread_select()ing in PGconn#block.
218
+ (Brian Weaver).
219
+ - Fixes for Win32 async queries (Rafał Bigaj)
220
+ - Memory leak fixed: Closing opened WSA event. (rafal)
221
+ - Fixes for #66 Win32 asynchronous queries hang on connection
222
+ error. (rafal)
223
+ - Fixed a typo in PGconn#error_message's documentation
224
+ - fixing unused variable warnings for ruby 1.9.3 (Aaron Patterson)
225
+ - Build system bugfixes
226
+ - Converted to Hoe
227
+ - Updates for the Win32 binary gem builds (Lars Kanis)
228
+
229
+
230
+ == v0.11.0 [2011-02-09] Michael Granger <ged@FaerieMUD.org>
231
+
232
+ Enhancements:
233
+
234
+ * Added a PGresult#values method to fetch all result rows as an Array of
235
+ Arrays. Thanks to Jason Yanowitz (JYanowitz at enovafinancial dot com) for
236
+ the patch.
237
+
238
+
239
+ == v0.10.1 [2011-01-19] Michael Granger <ged@FaerieMUD.org>
240
+
241
+ Bugfixes:
242
+
243
+ * Add an include guard for pg.h
244
+ * Simplify the common case require of the ext
245
+ * Include the extconf header
246
+ * Fix compatibility with versions of PostgreSQL without PQgetCancel. (fixes #36)
247
+ * Fix require for natively-compiled extension under Windows. (fixes #55)
248
+ * Change rb_yield_splat() to rb_yield_values() for compatibility with Rubinius. (fixes #54)
249
+
250
+
251
+ == v0.10.0 [2010-12-01] Michael Granger <ged@FaerieMUD.org>
252
+
253
+ Enhancements:
254
+
255
+ * Added support for the payload of NOTIFY events (w/Mahlon E. Smith)
256
+ * Updated the build system with Rubygems suggestions from RubyConf 2010
257
+
258
+ Bugfixes:
259
+
260
+ * Fixed issue with PGconn#wait_for_notify that caused it to miss notifications that happened after
261
+ the LISTEN but before the wait_for_notify.
262
+
263
+ == v0.9.0 [2010-02-28] Michael Granger <ged@FaerieMUD.org>
264
+
265
+ Bugfixes.
266
+
267
+ == v0.8.0 [2009-03-28] Jeff Davis <davis.jeffrey@gmail.com>
268
+
269
+ Bugfixes, better Windows support.
270
+
data/LICENSE ADDED
@@ -0,0 +1,56 @@
1
+ Ruby is copyrighted free software by Yukihiro Matsumoto <matz@netlab.jp>.
2
+ You can redistribute it and/or modify it under either the terms of the
3
+ 2-clause BSDL (see the file BSDL), or the conditions below:
4
+
5
+ 1. You may make and give away verbatim copies of the source form of the
6
+ software without restriction, provided that you duplicate all of the
7
+ original copyright notices and associated disclaimers.
8
+
9
+ 2. You may modify your copy of the software in any way, provided that
10
+ you do at least ONE of the following:
11
+
12
+ a) place your modifications in the Public Domain or otherwise
13
+ make them Freely Available, such as by posting said
14
+ modifications to Usenet or an equivalent medium, or by allowing
15
+ the author to include your modifications in the software.
16
+
17
+ b) use the modified software only within your corporation or
18
+ organization.
19
+
20
+ c) give non-standard binaries non-standard names, with
21
+ instructions on where to get the original software distribution.
22
+
23
+ d) make other distribution arrangements with the author.
24
+
25
+ 3. You may distribute the software in object code or binary form,
26
+ provided that you do at least ONE of the following:
27
+
28
+ a) distribute the binaries and library files of the software,
29
+ together with instructions (in the manual page or equivalent)
30
+ on where to get the original distribution.
31
+
32
+ b) accompany the distribution with the machine-readable source of
33
+ the software.
34
+
35
+ c) give non-standard binaries non-standard names, with
36
+ instructions on where to get the original software distribution.
37
+
38
+ d) make other distribution arrangements with the author.
39
+
40
+ 4. You may modify and include the part of the software into any other
41
+ software (possibly commercial). But some files in the distribution
42
+ are not written by the author, so that they are not under these terms.
43
+
44
+ For the list of those files and their copying conditions, see the
45
+ file LEGAL.
46
+
47
+ 5. The scripts and library files supplied as input to or produced as
48
+ output from the software do not automatically fall under the
49
+ copyright of the software, but belong to whomever generated them,
50
+ and may be sold commercially, and may be aggregated with this
51
+ software.
52
+
53
+ 6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
54
+ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
55
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
56
+ PURPOSE.
@@ -0,0 +1,44 @@
1
+ .gemtest
2
+ BSDL
3
+ ChangeLog
4
+ Contributors.rdoc
5
+ History.rdoc
6
+ LICENSE
7
+ Manifest.txt
8
+ POSTGRES
9
+ README-OS_X.rdoc
10
+ README-Windows.rdoc
11
+ README.ja.rdoc
12
+ README.rdoc
13
+ Rakefile
14
+ Rakefile.cross
15
+ lib/pg_ext.jar
16
+ lib/pg.rb
17
+ lib/pg/connection.rb
18
+ lib/pg/constants.rb
19
+ lib/pg/exceptions.rb
20
+ lib/pg/result.rb
21
+ sample/array_insert.rb
22
+ sample/async_api.rb
23
+ sample/async_copyto.rb
24
+ sample/async_mixed.rb
25
+ sample/check_conn.rb
26
+ sample/copyfrom.rb
27
+ sample/copyto.rb
28
+ sample/cursor.rb
29
+ sample/disk_usage_report.rb
30
+ sample/issue-119.rb
31
+ sample/losample.rb
32
+ sample/minimal-testcase.rb
33
+ sample/notify_wait.rb
34
+ sample/pg_statistics.rb
35
+ sample/replication_monitor.rb
36
+ sample/test_binary_values.rb
37
+ sample/wal_shipper.rb
38
+ sample/warehouse_partitions.rb
39
+ spec/data/expected_trace.out
40
+ spec/data/random_binary_data
41
+ spec/lib/helpers.rb
42
+ spec/pg/connection_spec.rb
43
+ spec/pg/result_spec.rb
44
+ spec/pg_spec.rb