pg 1.4.0-x86-mingw32 → 1.4.3-x86-mingw32

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e48597f89bac6918195fe9f16de48914f4d09be542566af50bdf13b73ed2d7dd
4
- data.tar.gz: 38840c47af75b24c981e8d015e91bec03df7a4b203c47da486b0eecf7056992a
3
+ metadata.gz: 37bf3351b7b854bc57f691233165990cb0b0bb44f754e98ee1b5e2cc55a04941
4
+ data.tar.gz: bfa5125ec694d6666a1941abf45a40c076179c2b2976441ae9adfce21e35290a
5
5
  SHA512:
6
- metadata.gz: 7cf3fc469576ce2762ad8d964efa7d9b130a4aa7f6e111ee7491bc285aeb9869efdcfbada528c24e75f90adb8e49e82acdc746ab0d0f8a12814e2b70440e1628
7
- data.tar.gz: 3a1b732fe949585f4e5bcbda559432b09b85b46194186175dcdef44dba2e8c9521036f15780ba74712932bbabe2bca97a51dc9f94bbad66be2cecebb649a11c2
6
+ metadata.gz: 1f2781d8fb3801d5db87604d388893753d06103e3bc4a7383f34db9e468c1a957e5ef29569a712c268c08b31d8b184c664038e152457320988c564a097e1a77b
7
+ data.tar.gz: 937cde573008eb45d1daffc000a7474841d394d993f7be565da5be476755367a3dd1f7b064312961b0716aa4a926d7c693441e08a573cb05378b70cf8a8181ac
checksums.yaml.gz.sig CHANGED
Binary file
data/History.rdoc CHANGED
@@ -1,4 +1,26 @@
1
- == v1.4.0 [YYYY-MM-DD] Lars Kanis <lars@greiz-reinsdorf.de>
1
+ == v1.4.3 [2022-08-09] Lars Kanis <lars@greiz-reinsdorf.de>
2
+
3
+ - Avoid memory bloat possible in put_copy_data in pg-1.4.0 to 1.4.2. #473
4
+ - Use Encoding::BINARY for JOHAB, removing some useless code. #472
5
+
6
+
7
+ == v1.4.2 [2022-07-27] Lars Kanis <lars@greiz-reinsdorf.de>
8
+
9
+ Bugfixes:
10
+
11
+ - Properly handle empty host parameter when connecting. #471
12
+ - Update Windows fat binary gem to OpenSSL-1.1.1q.
13
+
14
+
15
+ == v1.4.1 [2022-06-24] Lars Kanis <lars@greiz-reinsdorf.de>
16
+
17
+ Bugfixes:
18
+
19
+ - Fix another ruby-2.7 keyword warning. #465
20
+ - Allow PG::Error to be created without arguments. #466
21
+
22
+
23
+ == v1.4.0 [2022-06-20] Lars Kanis <lars@greiz-reinsdorf.de>
2
24
 
3
25
  Added:
4
26
 
data/Rakefile.cross CHANGED
@@ -31,7 +31,7 @@ class CrossLibrary < OpenStruct
31
31
  self.host_platform = toolchain
32
32
 
33
33
  # Cross-compilation constants
34
- self.openssl_version = ENV['OPENSSL_VERSION'] || '1.1.1o'
34
+ self.openssl_version = ENV['OPENSSL_VERSION'] || '1.1.1q'
35
35
  self.postgresql_version = ENV['POSTGRESQL_VERSION'] || '14.4'
36
36
 
37
37
  # Check if symlinks work in the current working directory.
data/ext/pg.c CHANGED
@@ -127,26 +127,6 @@ const char * const (pg_enc_pg2ruby_mapping[][2]) = {
127
127
  static struct st_table *enc_pg2ruby;
128
128
 
129
129
 
130
- /*
131
- * Look up the JOHAB encoding, creating it as a dummy encoding if it's not
132
- * already defined.
133
- */
134
- static rb_encoding *
135
- pg_find_or_create_johab(void)
136
- {
137
- static const char * const aliases[] = { "JOHAB", "Windows-1361", "CP1361" };
138
- int enc_index;
139
- size_t i;
140
-
141
- for (i = 0; i < sizeof(aliases)/sizeof(aliases[0]); ++i) {
142
- enc_index = rb_enc_find_index(aliases[i]);
143
- if (enc_index > 0) return rb_enc_from_index(enc_index);
144
- }
145
-
146
- enc_index = rb_define_dummy_encoding(aliases[0]);
147
- return rb_enc_from_index(enc_index);
148
- }
149
-
150
130
  /*
151
131
  * Return the given PostgreSQL encoding ID as an rb_encoding.
152
132
  *
@@ -187,10 +167,6 @@ pg_get_pg_encname_as_rb_encoding( const char *pg_encname )
187
167
  return rb_enc_find( pg_enc_pg2ruby_mapping[i][1] );
188
168
  }
189
169
 
190
- /* JOHAB isn't a builtin encoding, so make up a dummy encoding if it's seen */
191
- if ( strncmp(pg_encname, "JOHAB", 5) == 0 )
192
- return pg_find_or_create_johab();
193
-
194
170
  /* Fallthrough to ASCII-8BIT */
195
171
  return rb_ascii8bit_encoding();
196
172
  }
data/ext/pg_connection.c CHANGED
@@ -266,6 +266,7 @@ pgconn_s_allocate( VALUE klass )
266
266
  this->encoder_for_put_copy_data = Qnil;
267
267
  this->decoder_for_get_copy_data = Qnil;
268
268
  this->trace_stream = Qnil;
269
+ rb_ivar_set(self, rb_intern("@calls_to_put_copy_data"), INT2FIX(0));
269
270
 
270
271
  return self;
271
272
  }
data/ext/pg_result.c CHANGED
@@ -1476,10 +1476,10 @@ pgresult_stream_any(VALUE self, void (*yielder)(VALUE, int, int, void*), void* d
1476
1476
 
1477
1477
  pgresult = gvl_PQgetResult(pgconn);
1478
1478
  if( pgresult == NULL )
1479
- rb_raise( rb_eNoResultError, "no result received - possibly an intersection with another result retrieval");
1479
+ rb_raise( rb_eNoResultError, "no result received - possibly an intersection with another query");
1480
1480
 
1481
1481
  if( nfields != PQnfields(pgresult) )
1482
- rb_raise( rb_eInvalidChangeOfResultFields, "number of fields must not change in single row mode");
1482
+ rb_raise( rb_eInvalidChangeOfResultFields, "number of fields changed in single row mode from %d to %d - this is a sign for intersection with another query", nfields, PQnfields(pgresult));
1483
1483
 
1484
1484
  this->pgresult = pgresult;
1485
1485
  }
data/lib/2.5/pg_ext.so CHANGED
Binary file
data/lib/2.6/pg_ext.so CHANGED
Binary file
data/lib/2.7/pg_ext.so CHANGED
Binary file
data/lib/3.0/pg_ext.so CHANGED
Binary file
data/lib/3.1/pg_ext.so CHANGED
Binary file
data/lib/pg/connection.rb CHANGED
@@ -408,7 +408,17 @@ class PG::Connection
408
408
  # See also #copy_data.
409
409
  #
410
410
  def put_copy_data(buffer, encoder=nil)
411
+ # sync_put_copy_data does a non-blocking attept to flush data.
411
412
  until res=sync_put_copy_data(buffer, encoder)
413
+ # It didn't flush immediately and allocation of more buffering memory failed.
414
+ # Wait for all data sent by doing a blocking flush.
415
+ res = flush
416
+ end
417
+
418
+ # And do a blocking flush every 100 calls.
419
+ # This is to avoid memory bloat, when sending the data is slower than calls to put_copy_data happen.
420
+ if (@calls_to_put_copy_data += 1) > 100
421
+ @calls_to_put_copy_data = 0
412
422
  res = flush
413
423
  end
414
424
  res
@@ -431,6 +441,7 @@ class PG::Connection
431
441
  until sync_put_copy_end(*args)
432
442
  flush
433
443
  end
444
+ @calls_to_put_copy_data = 0
434
445
  flush
435
446
  end
436
447
  alias async_put_copy_end put_copy_end
@@ -657,8 +668,8 @@ class PG::Connection
657
668
  # connection will have its +client_encoding+ set accordingly.
658
669
  #
659
670
  # Raises a PG::Error if the connection fails.
660
- def new(*args, **kwargs)
661
- conn = connect_to_hosts(*args, **kwargs)
671
+ def new(*args)
672
+ conn = connect_to_hosts(*args)
662
673
 
663
674
  if block_given?
664
675
  begin
@@ -699,7 +710,7 @@ class PG::Connection
699
710
  c = connect_internal(oopts, errors)
700
711
  return c if c
701
712
  end
702
- elsif iopts[:host]
713
+ elsif iopts[:host] && !iopts[:host].empty?
703
714
  # Resolve DNS in Ruby to avoid blocking state while connecting, when it ...
704
715
  ihosts = iopts[:host].split(",", -1)
705
716
 
data/lib/pg/exceptions.rb CHANGED
@@ -7,7 +7,7 @@ require 'pg' unless defined?( PG )
7
7
  module PG
8
8
 
9
9
  class Error < StandardError
10
- def initialize(msg, connection: nil, result: nil)
10
+ def initialize(msg=nil, connection: nil, result: nil)
11
11
  @connection = connection
12
12
  @result = result
13
13
  super(msg)
data/lib/pg/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module PG
2
2
  # Library version
3
- VERSION = '1.4.0'
3
+ VERSION = '1.4.3'
4
4
  end
Binary file
data.tar.gz.sig CHANGED
@@ -1,3 +1,3 @@
1
- �$Ir!:��Zep^��d��� 4���5U����'+
2
- xj��Y5�
3
- ����y6ޅ��
1
+ eU5rdd�v0p
2
+ ��:�LK�5N��G.�0�q7"�> .?�Ct�>XB&���1���V:������Cn��r6��/(�Gl4�Y�hW��� ��c��a�퇛2<N�rp=2��7ω ��ώ$o ����aF�g�����6/����ӎ��le���a��O�E����7rg�k�>W�p
3
+ �λG
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pg
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.4.3
5
5
  platform: x86-mingw32
6
6
  authors:
7
7
  - Michael Granger
@@ -36,7 +36,7 @@ cert_chain:
36
36
  oL1mUdzB8KrZL4/WbG5YNX6UTtJbIOu9qEFbBAy4/jtIkJX+dlNoFwd4GXQW1YNO
37
37
  nA==
38
38
  -----END CERTIFICATE-----
39
- date: 2022-06-20 00:00:00.000000000 Z
39
+ date: 2022-08-09 00:00:00.000000000 Z
40
40
  dependencies: []
41
41
  description: Pg is the Ruby interface to the PostgreSQL RDBMS. It works with PostgreSQL
42
42
  9.3 and later.
metadata.gz.sig CHANGED
Binary file