yugabyte_ysql 0.1
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 +7 -0
- data/.appveyor.yml +42 -0
- data/.gems +6 -0
- data/.gemtest +0 -0
- data/.github/workflows/binary-gems.yml +117 -0
- data/.github/workflows/source-gem.yml +143 -0
- data/.gitignore +24 -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 +22 -0
- data/Contributors.rdoc +46 -0
- data/Gemfile +18 -0
- data/History.md +901 -0
- data/LICENSE +56 -0
- data/Manifest.txt +73 -0
- data/POSTGRES +23 -0
- data/README-OS_X.rdoc +68 -0
- data/README-Windows.rdoc +56 -0
- data/README.ja.md +302 -0
- data/README.md +373 -0
- data/Rakefile +118 -0
- data/Rakefile.cross +299 -0
- data/certs/ged.pem +24 -0
- data/certs/kanis@comcard.de.pem +20 -0
- data/certs/larskanis-2022.pem +26 -0
- data/certs/larskanis-2023.pem +24 -0
- data/certs/larskanis-2024.pem +24 -0
- data/ext/errorcodes.def +1044 -0
- data/ext/errorcodes.rb +45 -0
- data/ext/errorcodes.txt +497 -0
- data/ext/extconf.rb +174 -0
- data/ext/gvl_wrappers.c +21 -0
- data/ext/gvl_wrappers.h +264 -0
- data/ext/pg.c +692 -0
- data/ext/pg.h +392 -0
- data/ext/pg_binary_decoder.c +308 -0
- data/ext/pg_binary_encoder.c +387 -0
- data/ext/pg_coder.c +624 -0
- data/ext/pg_connection.c +4681 -0
- data/ext/pg_copy_coder.c +917 -0
- data/ext/pg_errors.c +95 -0
- data/ext/pg_record_coder.c +522 -0
- data/ext/pg_result.c +1766 -0
- data/ext/pg_text_decoder.c +1005 -0
- data/ext/pg_text_encoder.c +827 -0
- data/ext/pg_tuple.c +572 -0
- data/ext/pg_type_map.c +200 -0
- data/ext/pg_type_map_all_strings.c +130 -0
- data/ext/pg_type_map_by_class.c +271 -0
- data/ext/pg_type_map_by_column.c +355 -0
- data/ext/pg_type_map_by_mri_type.c +313 -0
- data/ext/pg_type_map_by_oid.c +388 -0
- data/ext/pg_type_map_in_ruby.c +333 -0
- data/ext/pg_util.c +149 -0
- data/ext/pg_util.h +65 -0
- data/ext/vc/pg.sln +26 -0
- data/ext/vc/pg_18/pg.vcproj +216 -0
- data/ext/vc/pg_19/pg_19.vcproj +209 -0
- data/lib/pg/basic_type_map_based_on_result.rb +67 -0
- data/lib/pg/basic_type_map_for_queries.rb +202 -0
- data/lib/pg/basic_type_map_for_results.rb +104 -0
- data/lib/pg/basic_type_registry.rb +303 -0
- data/lib/pg/binary_decoder/date.rb +9 -0
- data/lib/pg/binary_decoder/timestamp.rb +26 -0
- data/lib/pg/binary_encoder/timestamp.rb +20 -0
- data/lib/pg/coder.rb +106 -0
- data/lib/pg/connection.rb +990 -0
- data/lib/pg/exceptions.rb +25 -0
- data/lib/pg/load_balance_service.rb +406 -0
- data/lib/pg/result.rb +43 -0
- data/lib/pg/text_decoder/date.rb +18 -0
- data/lib/pg/text_decoder/inet.rb +9 -0
- data/lib/pg/text_decoder/json.rb +14 -0
- data/lib/pg/text_decoder/numeric.rb +9 -0
- data/lib/pg/text_decoder/timestamp.rb +30 -0
- data/lib/pg/text_encoder/date.rb +12 -0
- data/lib/pg/text_encoder/inet.rb +28 -0
- data/lib/pg/text_encoder/json.rb +14 -0
- data/lib/pg/text_encoder/numeric.rb +9 -0
- data/lib/pg/text_encoder/timestamp.rb +24 -0
- data/lib/pg/tuple.rb +30 -0
- data/lib/pg/type_map_by_column.rb +16 -0
- data/lib/pg/version.rb +5 -0
- data/lib/yugabyte_ysql.rb +130 -0
- 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/rakelib/task_extension.rb +46 -0
- data/sample/array_insert.rb +20 -0
- data/sample/async_api.rb +102 -0
- data/sample/async_copyto.rb +39 -0
- data/sample/async_mixed.rb +56 -0
- data/sample/check_conn.rb +21 -0
- data/sample/copydata.rb +71 -0
- data/sample/copyfrom.rb +81 -0
- data/sample/copyto.rb +19 -0
- data/sample/cursor.rb +21 -0
- data/sample/disk_usage_report.rb +177 -0
- data/sample/issue-119.rb +94 -0
- data/sample/losample.rb +69 -0
- data/sample/minimal-testcase.rb +17 -0
- data/sample/notify_wait.rb +72 -0
- data/sample/pg_statistics.rb +285 -0
- data/sample/replication_monitor.rb +222 -0
- data/sample/test_binary_values.rb +33 -0
- data/sample/wal_shipper.rb +434 -0
- data/sample/warehouse_partitions.rb +311 -0
- data/yugabyte_ysql.gemspec +33 -0
- metadata +232 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# -*- ruby -*-
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module YugabyteYSQL
|
|
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: YugabyteYSQL::Coder::TIMESTAMP_DB_UTC | YugabyteYSQL::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: YugabyteYSQL::Coder::TIMESTAMP_DB_UTC | YugabyteYSQL::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: YugabyteYSQL::Coder::TIMESTAMP_DB_LOCAL | YugabyteYSQL::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 YugabyteYSQL
|
|
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: YugabyteYSQL::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: YugabyteYSQL::Coder::TIMESTAMP_DB_LOCAL)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end # module PG
|
data/lib/pg/coder.rb
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# -*- ruby -*-
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module YugabyteYSQL
|
|
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
|
+
}
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
def inspect
|
|
83
|
+
str = super
|
|
84
|
+
str[-1,0] = " elements_type=#{elements_type.inspect} #{needs_quotation? ? 'needs' : 'no'} quotation"
|
|
85
|
+
str
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
class CopyCoder < Coder
|
|
90
|
+
def to_h
|
|
91
|
+
{ **super,
|
|
92
|
+
type_map: type_map,
|
|
93
|
+
delimiter: delimiter,
|
|
94
|
+
null_string: null_string,
|
|
95
|
+
}
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
class RecordCoder < Coder
|
|
100
|
+
def to_h
|
|
101
|
+
{ **super,
|
|
102
|
+
type_map: type_map,
|
|
103
|
+
}
|
|
104
|
+
end
|
|
105
|
+
end
|
|
106
|
+
end # module PG
|