pg 0.18.3 → 1.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- checksums.yaml.gz.sig +0 -0
- data/.appveyor.yml +36 -0
- data/.gems +6 -0
- data/.github/workflows/binary-gems.yml +86 -0
- data/.github/workflows/source-gem.yml +129 -0
- data/.gitignore +13 -0
- data/.hgsigs +34 -0
- data/.hgtags +41 -0
- data/.irbrc +23 -0
- data/.pryrc +23 -0
- data/.tm_properties +21 -0
- data/.travis.yml +49 -0
- data/BSDL +2 -2
- data/Gemfile +14 -0
- data/History.rdoc +448 -4
- data/Manifest.txt +8 -21
- data/README-Windows.rdoc +4 -4
- data/README.ja.rdoc +1 -2
- data/README.rdoc +69 -17
- data/Rakefile +33 -135
- data/Rakefile.cross +70 -69
- data/certs/ged.pem +24 -0
- data/certs/larskanis-2022.pem +26 -0
- data/ext/errorcodes.def +109 -0
- data/ext/errorcodes.rb +1 -1
- data/ext/errorcodes.txt +35 -2
- data/ext/extconf.rb +120 -54
- data/ext/gvl_wrappers.c +8 -0
- data/ext/gvl_wrappers.h +44 -33
- data/ext/pg.c +213 -171
- data/ext/pg.h +92 -98
- data/ext/pg_binary_decoder.c +84 -15
- data/ext/pg_binary_encoder.c +24 -21
- data/ext/pg_coder.c +175 -39
- data/ext/pg_connection.c +1730 -1135
- data/ext/pg_copy_coder.c +94 -27
- data/ext/pg_record_coder.c +521 -0
- data/ext/pg_result.c +640 -221
- data/ext/pg_text_decoder.c +608 -40
- data/ext/pg_text_encoder.c +253 -99
- data/ext/pg_tuple.c +569 -0
- data/ext/pg_type_map.c +61 -21
- data/ext/pg_type_map_all_strings.c +19 -5
- data/ext/pg_type_map_by_class.c +54 -24
- data/ext/pg_type_map_by_column.c +79 -40
- data/ext/pg_type_map_by_mri_type.c +48 -19
- data/ext/pg_type_map_by_oid.c +55 -25
- data/ext/pg_type_map_in_ruby.c +51 -20
- data/ext/{util.c → pg_util.c} +12 -12
- data/ext/{util.h → pg_util.h} +2 -2
- data/lib/pg/basic_type_map_based_on_result.rb +47 -0
- data/lib/pg/basic_type_map_for_queries.rb +193 -0
- data/lib/pg/basic_type_map_for_results.rb +81 -0
- data/lib/pg/basic_type_registry.rb +301 -0
- data/lib/pg/binary_decoder.rb +23 -0
- data/lib/pg/coder.rb +24 -3
- data/lib/pg/connection.rb +723 -65
- data/lib/pg/constants.rb +2 -1
- data/lib/pg/exceptions.rb +9 -2
- data/lib/pg/result.rb +24 -7
- data/lib/pg/text_decoder.rb +24 -22
- data/lib/pg/text_encoder.rb +40 -8
- data/lib/pg/tuple.rb +30 -0
- data/lib/pg/type_map_by_column.rb +3 -2
- data/lib/pg/version.rb +4 -0
- data/lib/pg.rb +61 -36
- data/misc/openssl-pg-segfault.rb +31 -0
- data/misc/postgres/History.txt +9 -0
- data/misc/postgres/Manifest.txt +5 -0
- data/misc/postgres/README.txt +21 -0
- data/misc/postgres/Rakefile +21 -0
- data/misc/postgres/lib/postgres.rb +16 -0
- data/misc/ruby-pg/History.txt +9 -0
- data/misc/ruby-pg/Manifest.txt +5 -0
- data/misc/ruby-pg/README.txt +21 -0
- data/misc/ruby-pg/Rakefile +21 -0
- data/misc/ruby-pg/lib/ruby/pg.rb +16 -0
- data/pg.gemspec +32 -0
- data/rakelib/task_extension.rb +46 -0
- data/sample/array_insert.rb +1 -1
- data/sample/async_api.rb +4 -8
- data/sample/async_copyto.rb +1 -1
- data/sample/async_mixed.rb +1 -1
- data/sample/check_conn.rb +1 -1
- data/sample/copydata.rb +71 -0
- data/sample/copyfrom.rb +1 -1
- data/sample/copyto.rb +1 -1
- data/sample/cursor.rb +1 -1
- data/sample/disk_usage_report.rb +6 -15
- data/sample/issue-119.rb +2 -2
- data/sample/losample.rb +1 -1
- data/sample/minimal-testcase.rb +2 -2
- data/sample/notify_wait.rb +1 -1
- data/sample/pg_statistics.rb +6 -15
- data/sample/replication_monitor.rb +9 -18
- data/sample/test_binary_values.rb +1 -1
- data/sample/wal_shipper.rb +2 -2
- data/sample/warehouse_partitions.rb +8 -17
- data.tar.gz.sig +0 -0
- metadata +80 -230
- metadata.gz.sig +0 -0
- data/ChangeLog +0 -5804
- data/lib/pg/basic_type_mapping.rb +0 -399
- data/spec/data/expected_trace.out +0 -26
- data/spec/data/random_binary_data +0 -0
- data/spec/helpers.rb +0 -355
- data/spec/pg/basic_type_mapping_spec.rb +0 -251
- data/spec/pg/connection_spec.rb +0 -1538
- data/spec/pg/result_spec.rb +0 -449
- data/spec/pg/type_map_by_class_spec.rb +0 -138
- data/spec/pg/type_map_by_column_spec.rb +0 -222
- data/spec/pg/type_map_by_mri_type_spec.rb +0 -136
- data/spec/pg/type_map_by_oid_spec.rb +0 -149
- data/spec/pg/type_map_in_ruby_spec.rb +0 -164
- data/spec/pg/type_map_spec.rb +0 -22
- data/spec/pg/type_spec.rb +0 -690
- data/spec/pg_spec.rb +0 -50
data/ext/gvl_wrappers.h
CHANGED
|
@@ -15,13 +15,10 @@
|
|
|
15
15
|
#ifndef __gvl_wrappers_h
|
|
16
16
|
#define __gvl_wrappers_h
|
|
17
17
|
|
|
18
|
-
#
|
|
19
|
-
extern void *rb_thread_call_with_gvl(void *(*func)(void *), void *data1);
|
|
20
|
-
#endif
|
|
18
|
+
#include <ruby/thread.h>
|
|
21
19
|
|
|
22
|
-
#
|
|
23
|
-
|
|
24
|
-
rb_unblock_function_t *ubf, void *data2);
|
|
20
|
+
#ifdef RUBY_EXTCONF_H
|
|
21
|
+
# include RUBY_EXTCONF_H
|
|
25
22
|
#endif
|
|
26
23
|
|
|
27
24
|
#define DEFINE_PARAM_LIST1(type, name) \
|
|
@@ -53,20 +50,21 @@ extern void *rb_thread_call_without_gvl(void *(*func)(void *), void *data1,
|
|
|
53
50
|
return NULL; \
|
|
54
51
|
}
|
|
55
52
|
|
|
56
|
-
#
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
53
|
+
#ifdef ENABLE_GVL_UNLOCK
|
|
54
|
+
#define DEFINE_GVL_STUB(name, when_non_void, rettype, lastparamtype, lastparamname) \
|
|
55
|
+
rettype gvl_##name(FOR_EACH_PARAM_OF_##name(DEFINE_PARAM_LIST3) lastparamtype lastparamname){ \
|
|
56
|
+
struct gvl_wrapper_##name##_params params = { \
|
|
57
|
+
{FOR_EACH_PARAM_OF_##name(DEFINE_PARAM_LIST1) lastparamname}, when_non_void((rettype)0) \
|
|
58
|
+
}; \
|
|
59
|
+
rb_thread_call_without_gvl(gvl_##name##_skeleton, ¶ms, RUBY_UBF_IO, 0); \
|
|
60
|
+
when_non_void( return params.retval; ) \
|
|
61
|
+
}
|
|
65
62
|
#else
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
63
|
+
#define DEFINE_GVL_STUB(name, when_non_void, rettype, lastparamtype, lastparamname) \
|
|
64
|
+
rettype gvl_##name(FOR_EACH_PARAM_OF_##name(DEFINE_PARAM_LIST3) lastparamtype lastparamname){ \
|
|
65
|
+
when_non_void( return ) \
|
|
66
|
+
name( FOR_EACH_PARAM_OF_##name(DEFINE_PARAM_LIST1) lastparamname ); \
|
|
67
|
+
}
|
|
70
68
|
#endif
|
|
71
69
|
|
|
72
70
|
#define DEFINE_GVL_STUB_DECL(name, when_non_void, rettype, lastparamtype, lastparamname) \
|
|
@@ -80,20 +78,21 @@ extern void *rb_thread_call_without_gvl(void *(*func)(void *), void *data1,
|
|
|
80
78
|
return NULL; \
|
|
81
79
|
}
|
|
82
80
|
|
|
83
|
-
#
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
81
|
+
#ifdef ENABLE_GVL_UNLOCK
|
|
82
|
+
#define DEFINE_GVLCB_STUB(name, when_non_void, rettype, lastparamtype, lastparamname) \
|
|
83
|
+
rettype gvl_##name(FOR_EACH_PARAM_OF_##name(DEFINE_PARAM_LIST3) lastparamtype lastparamname){ \
|
|
84
|
+
struct gvl_wrapper_##name##_params params = { \
|
|
85
|
+
{FOR_EACH_PARAM_OF_##name(DEFINE_PARAM_LIST1) lastparamname}, when_non_void((rettype)0) \
|
|
86
|
+
}; \
|
|
87
|
+
rb_thread_call_with_gvl(gvl_##name##_skeleton, ¶ms); \
|
|
88
|
+
when_non_void( return params.retval; ) \
|
|
89
|
+
}
|
|
92
90
|
#else
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
91
|
+
#define DEFINE_GVLCB_STUB(name, when_non_void, rettype, lastparamtype, lastparamname) \
|
|
92
|
+
rettype gvl_##name(FOR_EACH_PARAM_OF_##name(DEFINE_PARAM_LIST3) lastparamtype lastparamname){ \
|
|
93
|
+
when_non_void( return ) \
|
|
94
|
+
name( FOR_EACH_PARAM_OF_##name(DEFINE_PARAM_LIST1) lastparamname ); \
|
|
95
|
+
}
|
|
97
96
|
#endif
|
|
98
97
|
|
|
99
98
|
#define GVL_TYPE_VOID(string)
|
|
@@ -116,6 +115,8 @@ extern void *rb_thread_call_without_gvl(void *(*func)(void *), void *data1,
|
|
|
116
115
|
|
|
117
116
|
#define FOR_EACH_PARAM_OF_PQresetPoll(param)
|
|
118
117
|
|
|
118
|
+
#define FOR_EACH_PARAM_OF_PQping(param)
|
|
119
|
+
|
|
119
120
|
#define FOR_EACH_PARAM_OF_PQexec(param) \
|
|
120
121
|
param(PGconn *, conn)
|
|
121
122
|
|
|
@@ -195,8 +196,16 @@ extern void *rb_thread_call_without_gvl(void *(*func)(void *), void *data1,
|
|
|
195
196
|
#define FOR_EACH_PARAM_OF_PQsendDescribePortal(param) \
|
|
196
197
|
param(PGconn *, conn)
|
|
197
198
|
|
|
199
|
+
#define FOR_EACH_PARAM_OF_PQsetClientEncoding(param) \
|
|
200
|
+
param(PGconn *, conn)
|
|
201
|
+
|
|
198
202
|
#define FOR_EACH_PARAM_OF_PQisBusy(param)
|
|
199
203
|
|
|
204
|
+
#define FOR_EACH_PARAM_OF_PQencryptPasswordConn(param) \
|
|
205
|
+
param(PGconn *, conn) \
|
|
206
|
+
param(const char *, passwd) \
|
|
207
|
+
param(const char *, user)
|
|
208
|
+
|
|
200
209
|
#define FOR_EACH_PARAM_OF_PQcancel(param) \
|
|
201
210
|
param(PGcancel *, cancel) \
|
|
202
211
|
param(char *, errbuf)
|
|
@@ -209,6 +218,7 @@ extern void *rb_thread_call_without_gvl(void *(*func)(void *), void *data1,
|
|
|
209
218
|
function(PQreset, GVL_TYPE_VOID, void, PGconn *, conn) \
|
|
210
219
|
function(PQresetStart, GVL_TYPE_NONVOID, int, PGconn *, conn) \
|
|
211
220
|
function(PQresetPoll, GVL_TYPE_NONVOID, PostgresPollingStatusType, PGconn *, conn) \
|
|
221
|
+
function(PQping, GVL_TYPE_NONVOID, PGPing, const char *, conninfo) \
|
|
212
222
|
function(PQexec, GVL_TYPE_NONVOID, PGresult *, const char *, command) \
|
|
213
223
|
function(PQexecParams, GVL_TYPE_NONVOID, PGresult *, int, resultFormat) \
|
|
214
224
|
function(PQexecPrepared, GVL_TYPE_NONVOID, PGresult *, int, resultFormat) \
|
|
@@ -226,10 +236,11 @@ extern void *rb_thread_call_without_gvl(void *(*func)(void *), void *data1,
|
|
|
226
236
|
function(PQsendQueryPrepared, GVL_TYPE_NONVOID, int, int, resultFormat) \
|
|
227
237
|
function(PQsendDescribePrepared, GVL_TYPE_NONVOID, int, const char *, stmt) \
|
|
228
238
|
function(PQsendDescribePortal, GVL_TYPE_NONVOID, int, const char *, portal) \
|
|
239
|
+
function(PQsetClientEncoding, GVL_TYPE_NONVOID, int, const char *, encoding) \
|
|
229
240
|
function(PQisBusy, GVL_TYPE_NONVOID, int, PGconn *, conn) \
|
|
241
|
+
function(PQencryptPasswordConn, GVL_TYPE_NONVOID, char *, const char *, algorithm) \
|
|
230
242
|
function(PQcancel, GVL_TYPE_NONVOID, int, int, errbufsize);
|
|
231
243
|
|
|
232
|
-
|
|
233
244
|
FOR_EACH_BLOCKING_FUNCTION( DEFINE_GVL_STUB_DECL );
|
|
234
245
|
|
|
235
246
|
|