pg 1.6.3-aarch64-linux → 1.7.0-aarch64-linux

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.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/CHANGELOG.md +52 -6
  4. data/Gemfile +1 -0
  5. data/README.ja.md +81 -30
  6. data/README.md +14 -7
  7. data/Rakefile +8 -7
  8. data/certs/larskanis-2026.pem +24 -0
  9. data/ext/extconf.rb +18 -28
  10. data/ext/gvl_wrappers.c +2 -2
  11. data/ext/gvl_wrappers.h +40 -160
  12. data/ext/pg.c +8 -12
  13. data/ext/pg.h +8 -11
  14. data/ext/pg_binary_decoder.c +6 -2
  15. data/ext/pg_binary_encoder.c +7 -0
  16. data/ext/pg_cancel_connection.c +6 -6
  17. data/ext/pg_coder.c +4 -4
  18. data/ext/pg_connection.c +196 -159
  19. data/ext/pg_copy_coder.c +34 -21
  20. data/ext/pg_record_coder.c +10 -6
  21. data/ext/pg_result.c +42 -26
  22. data/ext/pg_text_decoder.c +6 -6
  23. data/ext/pg_text_encoder.c +7 -2
  24. data/ext/pg_tuple.c +1 -1
  25. data/ext/pg_type_map.c +41 -1
  26. data/ext/pg_type_map_all_strings.c +2 -2
  27. data/ext/pg_type_map_by_class.c +1 -1
  28. data/ext/pg_type_map_by_column.c +2 -2
  29. data/ext/pg_type_map_by_oid.c +1 -1
  30. data/ext/pg_type_map_in_ruby.c +1 -1
  31. data/lib/3.1/pg_ext.so +0 -0
  32. data/lib/3.2/pg_ext.so +0 -0
  33. data/lib/3.3/pg_ext.so +0 -0
  34. data/lib/3.4/pg_ext.so +0 -0
  35. data/lib/4.0/pg_ext.so +0 -0
  36. data/lib/pg/basic_type_map_based_on_result.rb +5 -0
  37. data/lib/pg/basic_type_map_for_queries.rb +9 -2
  38. data/lib/pg/basic_type_map_for_results.rb +5 -0
  39. data/lib/pg/connection.rb +166 -76
  40. data/lib/pg/text_decoder/date.rb +1 -1
  41. data/lib/pg/text_decoder/json.rb +1 -1
  42. data/lib/pg/text_encoder/date.rb +7 -1
  43. data/lib/pg/text_encoder/json.rb +1 -1
  44. data/lib/pg/version.rb +1 -1
  45. data/misc/yugabyte/docker-compose.yml +1 -1
  46. data/pg.gemspec +1 -1
  47. data/ports/aarch64-linux/lib/libpq-ruby-pg.so.1 +0 -0
  48. data/sample/async_mixed.rb +1 -1
  49. data.tar.gz.sig +0 -0
  50. metadata +17 -19
  51. metadata.gz.sig +0 -0
  52. data/lib/3.0/pg_ext.so +0 -0
  53. data/ports/patches/openssl/3.5.2/0001-aarch64-mingw.patch +0 -21
  54. data/ports/patches/postgresql/18.1/0001-libpq-Process-buffered-SSL-read-bytes-to-support-rec.patch +0 -52
  55. /data/ports/patches/krb5/{1.22.1 → 1.22.2}/0001-Allow-static-linking-krb5-library.patch +0 -0
  56. /data/ports/patches/krb5/{1.22.1 → 1.22.2}/0002-unknown-command-line-option-on-clang.patch +0 -0
  57. /data/ports/patches/postgresql/{18.1 → 18.6}/0001-Use-workaround-of-__builtin_setjmp-only-on-MINGW-on-.patch +0 -0
@@ -1,52 +0,0 @@
1
- From ab793829a4ce473f1cc2bbc0e2a6f6753553255d Mon Sep 17 00:00:00 2001
2
- From: Lars Kanis <lars@greiz-reinsdorf.de>
3
- Date: Sun, 8 Sep 2024 13:59:05 +0200
4
- Subject: [PATCH] libpq: Process buffered SSL read bytes to support records
5
- >8kB on async API
6
-
7
- The async API of libpq doesn't support SSL record sizes >8kB so far.
8
- This size isn't exceeded by vanilla PostgreSQL, but by other products using
9
- the postgres wire protocol 3.
10
- PQconsumeInput() reads all data readable from the socket, so that the read
11
- condition is cleared.
12
- But it doesn't process all the data that is pending on the SSL layer.
13
- Also a subsequent call to PQisBusy() doesn't process it, so that the client
14
- is triggered to wait for more readable data on the socket.
15
- But this never arrives, so that the connection blocks infinitely.
16
-
17
- To fix this issue call pqReadData() repeatedly until there is no buffered
18
- SSL data left to be read.
19
-
20
- The synchronous libpq API isn't affected, since it supports arbitrary SSL
21
- record sizes already.
22
- ---
23
- src/interfaces/libpq/fe-exec.c | 13 +++++++++++++
24
- 1 file changed, 13 insertions(+)
25
-
26
- diff --git a/src/interfaces/libpq/fe-exec.c b/src/interfaces/libpq/fe-exec.c
27
- index 0d224a852..637894ee1 100644
28
- --- a/src/interfaces/libpq/fe-exec.c
29
- +++ b/src/interfaces/libpq/fe-exec.c
30
- @@ -2006,6 +2006,19 @@ PQconsumeInput(PGconn *conn)
31
- if (pqReadData(conn) < 0)
32
- return 0;
33
-
34
- + #ifdef USE_SSL
35
- + /*
36
- + * Ensure all buffered read bytes in the SSL library are processed,
37
- + * which might be not the case, if the SSL record size exceeds 8k.
38
- + * Otherwise parseInput can't process the data.
39
- + */
40
- + while (conn->ssl_in_use && pgtls_read_pending(conn))
41
- + {
42
- + if (pqReadData(conn) < 0)
43
- + return 0;
44
- + }
45
- + #endif
46
- +
47
- /* Parsing of the data waits till later. */
48
- return 1;
49
- }
50
- --
51
- 2.43.0
52
-