pg 1.6.0.rc2-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 (126) hide show
  1. checksums.yaml +7 -0
  2. checksums.yaml.gz.sig +0 -0
  3. data/BSDL +22 -0
  4. data/CHANGELOG.md +986 -0
  5. data/Contributors.rdoc +46 -0
  6. data/Gemfile +23 -0
  7. data/LICENSE +56 -0
  8. data/POSTGRES +23 -0
  9. data/README-OS_X.rdoc +68 -0
  10. data/README-Windows.rdoc +56 -0
  11. data/README.ja.md +300 -0
  12. data/README.md +287 -0
  13. data/Rakefile +185 -0
  14. data/certs/ged.pem +24 -0
  15. data/certs/kanis@comcard.de.pem +20 -0
  16. data/certs/larskanis-2022.pem +26 -0
  17. data/certs/larskanis-2023.pem +24 -0
  18. data/certs/larskanis-2024.pem +24 -0
  19. data/ext/errorcodes.def +1043 -0
  20. data/ext/errorcodes.rb +45 -0
  21. data/ext/errorcodes.txt +494 -0
  22. data/ext/extconf.rb +320 -0
  23. data/ext/gvl_wrappers.c +32 -0
  24. data/ext/gvl_wrappers.h +297 -0
  25. data/ext/pg.c +703 -0
  26. data/ext/pg.h +391 -0
  27. data/ext/pg_binary_decoder.c +460 -0
  28. data/ext/pg_binary_encoder.c +590 -0
  29. data/ext/pg_cancel_connection.c +360 -0
  30. data/ext/pg_coder.c +671 -0
  31. data/ext/pg_connection.c +4890 -0
  32. data/ext/pg_copy_coder.c +921 -0
  33. data/ext/pg_errors.c +95 -0
  34. data/ext/pg_record_coder.c +522 -0
  35. data/ext/pg_result.c +1764 -0
  36. data/ext/pg_text_decoder.c +1008 -0
  37. data/ext/pg_text_encoder.c +846 -0
  38. data/ext/pg_tuple.c +572 -0
  39. data/ext/pg_type_map.c +200 -0
  40. data/ext/pg_type_map_all_strings.c +130 -0
  41. data/ext/pg_type_map_by_class.c +271 -0
  42. data/ext/pg_type_map_by_column.c +356 -0
  43. data/ext/pg_type_map_by_mri_type.c +313 -0
  44. data/ext/pg_type_map_by_oid.c +390 -0
  45. data/ext/pg_type_map_in_ruby.c +333 -0
  46. data/ext/pg_util.c +149 -0
  47. data/ext/pg_util.h +65 -0
  48. data/ext/vc/pg.sln +26 -0
  49. data/ext/vc/pg_18/pg.vcproj +216 -0
  50. data/ext/vc/pg_19/pg_19.vcproj +209 -0
  51. data/lib/2.7/pg_ext.so +0 -0
  52. data/lib/3.0/pg_ext.so +0 -0
  53. data/lib/3.1/pg_ext.so +0 -0
  54. data/lib/3.2/pg_ext.so +0 -0
  55. data/lib/3.3/pg_ext.so +0 -0
  56. data/lib/3.4/pg_ext.so +0 -0
  57. data/lib/pg/basic_type_map_based_on_result.rb +67 -0
  58. data/lib/pg/basic_type_map_for_queries.rb +206 -0
  59. data/lib/pg/basic_type_map_for_results.rb +104 -0
  60. data/lib/pg/basic_type_registry.rb +311 -0
  61. data/lib/pg/binary_decoder/date.rb +9 -0
  62. data/lib/pg/binary_decoder/timestamp.rb +26 -0
  63. data/lib/pg/binary_encoder/timestamp.rb +20 -0
  64. data/lib/pg/cancel_connection.rb +53 -0
  65. data/lib/pg/coder.rb +107 -0
  66. data/lib/pg/connection.rb +1092 -0
  67. data/lib/pg/exceptions.rb +31 -0
  68. data/lib/pg/result.rb +43 -0
  69. data/lib/pg/text_decoder/date.rb +21 -0
  70. data/lib/pg/text_decoder/inet.rb +9 -0
  71. data/lib/pg/text_decoder/json.rb +17 -0
  72. data/lib/pg/text_decoder/numeric.rb +9 -0
  73. data/lib/pg/text_decoder/timestamp.rb +30 -0
  74. data/lib/pg/text_encoder/date.rb +13 -0
  75. data/lib/pg/text_encoder/inet.rb +31 -0
  76. data/lib/pg/text_encoder/json.rb +17 -0
  77. data/lib/pg/text_encoder/numeric.rb +9 -0
  78. data/lib/pg/text_encoder/timestamp.rb +24 -0
  79. data/lib/pg/tuple.rb +30 -0
  80. data/lib/pg/type_map_by_column.rb +16 -0
  81. data/lib/pg/version.rb +4 -0
  82. data/lib/pg.rb +144 -0
  83. data/misc/openssl-pg-segfault.rb +31 -0
  84. data/misc/postgres/History.txt +9 -0
  85. data/misc/postgres/Manifest.txt +5 -0
  86. data/misc/postgres/README.txt +21 -0
  87. data/misc/postgres/Rakefile +21 -0
  88. data/misc/postgres/lib/postgres.rb +16 -0
  89. data/misc/ruby-pg/History.txt +9 -0
  90. data/misc/ruby-pg/Manifest.txt +5 -0
  91. data/misc/ruby-pg/README.txt +21 -0
  92. data/misc/ruby-pg/Rakefile +21 -0
  93. data/misc/ruby-pg/lib/ruby/pg.rb +16 -0
  94. data/misc/yugabyte/Dockerfile +9 -0
  95. data/misc/yugabyte/docker-compose.yml +28 -0
  96. data/misc/yugabyte/pg-test.rb +45 -0
  97. data/pg.gemspec +38 -0
  98. data/ports/aarch64-linux/lib/libpq-ruby-pg.so.1 +0 -0
  99. data/ports/patches/krb5/1.21.3/0001-Allow-static-linking-krb5-library.patch +30 -0
  100. data/ports/patches/openssl/3.5.1/0001-aarch64-mingw.patch +21 -0
  101. data/ports/patches/postgresql/17.5/0001-Use-workaround-of-__builtin_setjmp-only-on-MINGW-on-.patch +42 -0
  102. data/ports/patches/postgresql/17.5/0001-libpq-Process-buffered-SSL-read-bytes-to-support-rec.patch +52 -0
  103. data/rakelib/pg_gem_helper.rb +64 -0
  104. data/rakelib/task_extension.rb +46 -0
  105. data/sample/array_insert.rb +20 -0
  106. data/sample/async_api.rb +102 -0
  107. data/sample/async_copyto.rb +39 -0
  108. data/sample/async_mixed.rb +56 -0
  109. data/sample/check_conn.rb +21 -0
  110. data/sample/copydata.rb +71 -0
  111. data/sample/copyfrom.rb +81 -0
  112. data/sample/copyto.rb +19 -0
  113. data/sample/cursor.rb +21 -0
  114. data/sample/disk_usage_report.rb +177 -0
  115. data/sample/issue-119.rb +94 -0
  116. data/sample/losample.rb +69 -0
  117. data/sample/minimal-testcase.rb +17 -0
  118. data/sample/notify_wait.rb +72 -0
  119. data/sample/pg_statistics.rb +285 -0
  120. data/sample/replication_monitor.rb +222 -0
  121. data/sample/test_binary_values.rb +33 -0
  122. data/sample/wal_shipper.rb +434 -0
  123. data/sample/warehouse_partitions.rb +311 -0
  124. data.tar.gz.sig +0 -0
  125. metadata +258 -0
  126. metadata.gz.sig +0 -0
@@ -0,0 +1,26 @@
1
+ # -*- ruby -*-
2
+ # frozen_string_literal: true
3
+
4
+ module PG
5
+ module BinaryDecoder
6
+ # Convenience classes for timezone options
7
+ class TimestampUtc < Timestamp
8
+ def initialize(hash={}, **kwargs)
9
+ warn("PG::Coder.new(hash) is deprecated. Please use keyword arguments instead! Called from #{caller.first}", category: :deprecated) unless hash.empty?
10
+ super(**hash, **kwargs, flags: PG::Coder::TIMESTAMP_DB_UTC | PG::Coder::TIMESTAMP_APP_UTC)
11
+ end
12
+ end
13
+ class TimestampUtcToLocal < Timestamp
14
+ def initialize(hash={}, **kwargs)
15
+ warn("PG::Coder.new(hash) is deprecated. Please use keyword arguments instead! Called from #{caller.first}", category: :deprecated) unless hash.empty?
16
+ super(**hash, **kwargs, flags: PG::Coder::TIMESTAMP_DB_UTC | PG::Coder::TIMESTAMP_APP_LOCAL)
17
+ end
18
+ end
19
+ class TimestampLocal < Timestamp
20
+ def initialize(hash={}, **kwargs)
21
+ warn("PG::Coder.new(hash) is deprecated. Please use keyword arguments instead! Called from #{caller.first}", category: :deprecated) unless hash.empty?
22
+ super(**hash, **kwargs, flags: PG::Coder::TIMESTAMP_DB_LOCAL | PG::Coder::TIMESTAMP_APP_LOCAL)
23
+ end
24
+ end
25
+ end
26
+ end # module PG
@@ -0,0 +1,20 @@
1
+ # -*- ruby -*-
2
+ # frozen_string_literal: true
3
+
4
+ module PG
5
+ module BinaryEncoder
6
+ # Convenience classes for timezone options
7
+ class TimestampUtc < Timestamp
8
+ def initialize(hash={}, **kwargs)
9
+ warn("PG::Coder.new(hash) is deprecated. Please use keyword arguments instead! Called from #{caller.first}", category: :deprecated) unless hash.empty?
10
+ super(**hash, **kwargs, flags: PG::Coder::TIMESTAMP_DB_UTC)
11
+ end
12
+ end
13
+ class TimestampLocal < Timestamp
14
+ def initialize(hash={}, **kwargs)
15
+ warn("PG::Coder.new(hash) is deprecated. Please use keyword arguments instead! Called from #{caller.first}", category: :deprecated) unless hash.empty?
16
+ super(**hash, **kwargs, flags: PG::Coder::TIMESTAMP_DB_LOCAL)
17
+ end
18
+ end
19
+ end
20
+ end # module PG
@@ -0,0 +1,53 @@
1
+ # -*- ruby -*-
2
+ # frozen_string_literal: true
3
+
4
+ require 'pg' unless defined?( PG )
5
+
6
+ if defined?(PG::CancelConnection)
7
+ class PG::CancelConnection
8
+ include PG::Connection::Pollable
9
+
10
+ alias c_initialize initialize
11
+
12
+ def initialize(conn)
13
+ c_initialize(conn)
14
+
15
+ # A cancel connection is always to one destination server only.
16
+ # Prepare conninfo_hash with just enough information to allow a shared polling_loop.
17
+ @host = conn.host
18
+ @hostaddr = conn.hostaddr
19
+ @port = conn.port
20
+
21
+ @conninfo_hash = {
22
+ host: @host,
23
+ hostaddr: @hostaddr,
24
+ port: @port.to_s,
25
+ connect_timeout: conn.conninfo_hash[:connect_timeout],
26
+ }
27
+ end
28
+
29
+ # call-seq:
30
+ # conn.cancel
31
+ #
32
+ # Requests that the server abandons processing of the current command in a blocking manner.
33
+ #
34
+ # If the cancel request wasn't successfully dispatched an error message is raised.
35
+ #
36
+ # Successful dispatch of the cancellation is no guarantee that the request will have any effect, however.
37
+ # If the cancellation is effective, the command being canceled will terminate early and raises an error.
38
+ # If the cancellation fails (say, because the server was already done processing the command), then there will be no visible result at all.
39
+ #
40
+ def cancel
41
+ start
42
+ polling_loop(:poll)
43
+ end
44
+ alias async_cancel cancel
45
+
46
+ # These private methods are there to allow a shared polling_loop.
47
+ private
48
+ attr_reader :host
49
+ attr_reader :hostaddr
50
+ attr_reader :port
51
+ attr_reader :conninfo_hash
52
+ end
53
+ end
data/lib/pg/coder.rb ADDED
@@ -0,0 +1,107 @@
1
+ # -*- ruby -*-
2
+ # frozen_string_literal: true
3
+
4
+ module PG
5
+
6
+ class Coder
7
+
8
+ module BinaryFormatting
9
+ def initialize(hash={}, **kwargs)
10
+ warn("PG::Coder.new(hash) is deprecated. Please use keyword arguments instead! Called from #{caller.first}", category: :deprecated) unless hash.empty?
11
+ super(format: 1, **hash, **kwargs)
12
+ end
13
+ end
14
+
15
+
16
+ # Create a new coder object based on the attribute Hash.
17
+ def initialize(hash=nil, **kwargs)
18
+ warn("PG::Coder.new(hash) is deprecated. Please use keyword arguments instead! Called from #{caller.first}", category: :deprecated) if hash
19
+
20
+ (hash || kwargs).each do |key, val|
21
+ send("#{key}=", val)
22
+ end
23
+ end
24
+
25
+ def dup
26
+ self.class.new(**to_h)
27
+ end
28
+
29
+ # Returns coder attributes as Hash.
30
+ def to_h
31
+ {
32
+ oid: oid,
33
+ format: format,
34
+ flags: flags,
35
+ name: name,
36
+ }
37
+ end
38
+
39
+ def ==(v)
40
+ self.class == v.class && to_h == v.to_h
41
+ end
42
+
43
+ def marshal_dump
44
+ Marshal.dump(to_h)
45
+ end
46
+
47
+ def marshal_load(str)
48
+ initialize(**Marshal.load(str))
49
+ end
50
+
51
+ def inspect
52
+ str = self.to_s
53
+ oid_str = " oid=#{oid}" unless oid==0
54
+ format_str = " format=#{format}" unless format==0
55
+ name_str = " #{name.inspect}" if name
56
+ str[-1,0] = "#{name_str} #{oid_str}#{format_str}"
57
+ str
58
+ end
59
+
60
+ def inspect_short
61
+ str = case format
62
+ when 0 then "T"
63
+ when 1 then "B"
64
+ else format.to_s
65
+ end
66
+ str += "E" if respond_to?(:encode)
67
+ str += "D" if respond_to?(:decode)
68
+
69
+ "#{name || self.class.name}:#{str}"
70
+ end
71
+ end
72
+
73
+ class CompositeCoder < Coder
74
+ def to_h
75
+ { **super,
76
+ elements_type: elements_type,
77
+ needs_quotation: needs_quotation?,
78
+ delimiter: delimiter,
79
+ dimensions: dimensions,
80
+ }
81
+ end
82
+
83
+ def inspect
84
+ str = super
85
+ str[-1,0] = " elements_type=#{elements_type.inspect} #{needs_quotation? ? 'needs' : 'no'} quotation#{dimensions && " #{dimensions} dimensions"}"
86
+ str
87
+ end
88
+ end
89
+
90
+ class CopyCoder < Coder
91
+ def to_h
92
+ { **super,
93
+ type_map: type_map,
94
+ delimiter: delimiter,
95
+ null_string: null_string,
96
+ }
97
+ end
98
+ end
99
+
100
+ class RecordCoder < Coder
101
+ def to_h
102
+ { **super,
103
+ type_map: type_map,
104
+ }
105
+ end
106
+ end
107
+ end # module PG