pg 1.4.6 → 1.6.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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/{History.md → CHANGELOG.md} +185 -3
- data/Gemfile +12 -3
- data/README-Windows.rdoc +1 -1
- data/README.ja.md +75 -41
- data/README.md +86 -31
- data/Rakefile +95 -14
- data/certs/kanis@comcard.de.pem +20 -0
- data/certs/larskanis-2024.pem +24 -0
- data/ext/errorcodes.def +4 -5
- data/ext/errorcodes.txt +2 -5
- data/ext/extconf.rb +165 -14
- data/ext/gvl_wrappers.c +13 -2
- data/ext/gvl_wrappers.h +33 -0
- data/ext/pg.c +28 -35
- data/ext/pg.h +18 -14
- data/ext/pg_binary_decoder.c +231 -0
- data/ext/pg_binary_encoder.c +427 -0
- data/ext/pg_cancel_connection.c +360 -0
- data/ext/pg_coder.c +70 -12
- data/ext/pg_connection.c +473 -208
- data/ext/pg_copy_coder.c +316 -23
- data/ext/pg_record_coder.c +12 -11
- data/ext/pg_result.c +102 -30
- data/ext/pg_text_decoder.c +31 -10
- data/ext/pg_text_encoder.c +58 -26
- data/ext/pg_tuple.c +36 -33
- data/ext/pg_type_map.c +4 -3
- data/ext/pg_type_map_all_strings.c +3 -3
- data/ext/pg_type_map_by_class.c +6 -4
- data/ext/pg_type_map_by_column.c +9 -4
- data/ext/pg_type_map_by_mri_type.c +1 -1
- data/ext/pg_type_map_by_oid.c +10 -5
- data/ext/pg_type_map_in_ruby.c +6 -3
- data/lib/pg/basic_type_map_based_on_result.rb +21 -1
- data/lib/pg/basic_type_map_for_queries.rb +23 -10
- data/lib/pg/basic_type_map_for_results.rb +26 -3
- data/lib/pg/basic_type_registry.rb +46 -36
- 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/cancel_connection.rb +53 -0
- data/lib/pg/coder.rb +18 -14
- data/lib/pg/connection.rb +387 -172
- data/lib/pg/exceptions.rb +6 -0
- data/lib/pg/text_decoder/date.rb +21 -0
- data/lib/pg/text_decoder/inet.rb +9 -0
- data/lib/pg/text_decoder/json.rb +17 -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 +13 -0
- data/lib/pg/text_encoder/inet.rb +31 -0
- data/lib/pg/text_encoder/json.rb +17 -0
- data/lib/pg/text_encoder/numeric.rb +9 -0
- data/lib/pg/text_encoder/timestamp.rb +24 -0
- data/lib/pg/version.rb +1 -1
- data/lib/pg.rb +78 -17
- data/misc/yugabyte/Dockerfile +9 -0
- data/misc/yugabyte/docker-compose.yml +28 -0
- data/misc/yugabyte/pg-test.rb +45 -0
- data/pg.gemspec +9 -5
- data/ports/patches/krb5/1.21.3/0001-Allow-static-linking-krb5-library.patch +30 -0
- data/ports/patches/openssl/3.5.1/0001-aarch64-mingw.patch +21 -0
- data/ports/patches/postgresql/17.5/0001-Use-workaround-of-__builtin_setjmp-only-on-MINGW-on-.patch +42 -0
- data/ports/patches/postgresql/17.5/0001-libpq-Process-buffered-SSL-read-bytes-to-support-rec.patch +52 -0
- data/rakelib/pg_gem_helper.rb +64 -0
- data.tar.gz.sig +0 -0
- metadata +61 -49
- metadata.gz.sig +0 -0
- data/.appveyor.yml +0 -42
- data/.gems +0 -6
- data/.gemtest +0 -0
- data/.github/workflows/binary-gems.yml +0 -117
- data/.github/workflows/source-gem.yml +0 -137
- data/.gitignore +0 -19
- data/.hgsigs +0 -34
- data/.hgtags +0 -41
- data/.irbrc +0 -23
- data/.pryrc +0 -23
- data/.tm_properties +0 -21
- data/.travis.yml +0 -49
- data/Manifest.txt +0 -72
- data/Rakefile.cross +0 -298
- data/lib/pg/binary_decoder.rb +0 -23
- data/lib/pg/constants.rb +0 -12
- data/lib/pg/text_decoder.rb +0 -46
- data/lib/pg/text_encoder.rb +0 -59
- data/translation/.po4a-version +0 -7
- data/translation/po/all.pot +0 -875
- data/translation/po/ja.po +0 -868
- data/translation/po4a.cfg +0 -9
data/.hgsigs
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
872063e42b129af10539f73b3c083ad8a031f961 0 iEYEABECAAYFAkuKoCoACgkQ+zlz4UKpE6QzewCgrFcSsAwju/KpZ8myuWexlcSbe04AmwWCbf4HM95tDXdFvsvzeegPg8AS
|
2
|
-
3993015a841e43c9cd9d1321819cbf5e74264f1d 0 iEYEABECAAYFAkz2ycMACgkQ+zlz4UKpE6SYjQCgi/1Ik2rntK2dU93Hb91wYh0Yv4sAoKxEXVuXaEIAiwB4vSQ/7JQGIBzM
|
3
|
-
230ea3e68db2360548097542c4856dec4c3cd97a 0 iEYEABECAAYFAk03CpAACgkQ+zlz4UKpE6SPAgCfbRwKmAgHTmrudSoC09c37Tuyff0AnRHrSaqKhiCO7KlX5UJq6x0ttoKH
|
4
|
-
24aa7899c6966ce349c8e4f2a87b17c3e943ff56 0 iEYEABECAAYFAk2s1wQACgkQ+zlz4UKpE6SkLQCdHOS5yxoUFguEo885HkDyOZg4Y7wAoMVofhwOUHVQ6djXr0hgAmahI1lW
|
5
|
-
19b551f972e27dcfa281b92914e2a98661243206 0 iEYEABECAAYFAk7f51sACgkQ+zlz4UKpE6RkYACg0WZjt1crbi72DQYs3kYKSYRflNYAnA80+VVwmMUQiWuFuQ+7gbiUPCyY
|
6
|
-
f72b14d349bf385c769aacfddbea7a0e60ff5e9e 0 iEYEABECAAYFAk8CFCIACgkQ+zlz4UKpE6QbYACgyLQwHPQH50sGVgzTD3y13XKwi38AoIrF5zSOiMXAeL+sk++iwDYV4ddW
|
7
|
-
f3dfdb6929b70ddd3bb952757bdfb199e6916245 0 iEYEABECAAYFAk8Di+MACgkQ+zlz4UKpE6TVvwCg+ibuW22lRdnOIrRF2V4am7b4YxYAn0bDEnP93JX6qKAaU8kcoCrTKDXp
|
8
|
-
b67309d3ccf2f9de56535e01f58c7af994426827 0 iEYEABECAAYFAk8iJKkACgkQ+zlz4UKpE6SjUQCgpItY5hW5NyVkfL5+nkRhJqaetQMAoJQQkNPL2jQLgJREfj3PtMBbn2VG
|
9
|
-
0e7f0c2451e55855b4a90efce8db0cafbf04b26f 0 iEYEABECAAYFAk8kb0cACgkQ+zlz4UKpE6RpxgCfQDV3zq2N+zle1XLKoXGMr7EK19IAnR3llz7WPf2j9lqXdZjw4xtl0XBk
|
10
|
-
9c262b875047f9acfedb63396a262ab5a5b101ca 0 iEYEABECAAYFAk80EvkACgkQ+zlz4UKpE6SUHQCeJuJMb8+k8ynIDPSmcKHL/a5gD6AAoPXMns9HF2c3XwtS1CMRf6rcZp3e
|
11
|
-
1ba641824000abbf1b22000772815c24e9b5f6d9 0 iEYEABECAAYFAk84LSUACgkQ+zlz4UKpE6RlPQCgiGZbYJFbeWEAdehVUrIZdU7sRe4AoOgESbvEWynP4X0OKbvdC9rLchYl
|
12
|
-
41e071bdd6ed970887d4ed4da59fdfa62003c39e 0 iEYEABECAAYFAk9FXikACgkQ+zlz4UKpE6TB8ACgt/VSo/kJMg9UVLKd5UUPBPjbgOIAn0DJuOla9GF85mW74sEkCOqE6Ada
|
13
|
-
a45710f8db303c400200017242589562936fcf1b 0 iEYEABECAAYFAk/l/kgACgkQ+zlz4UKpE6QCkwCg049BpW4kSvaKuICyvKokeoXbNiAAoPWAaiDuK6xjZhqGSuuGVWMmCRwk
|
14
|
-
52d22b060501ab90a89b3a758aca8ce70ad05231 0 iEYEABECAAYFAlBDfn8ACgkQ+zlz4UKpE6R3GACgzLiZ+fyM4Hx8/Qp9fyWF+mHk4FQAn3P3Y06AHadVvKwyksrAgKk/33LV
|
15
|
-
384fcbc92366ca0108b6c0984d861ffef2d38570 0 iEYEABECAAYFAlFRsM4ACgkQ+zlz4UKpE6TYXgCgksacYvWJ5dhx9oYFRR+oSH6wPgwAoJ3QO01zfiDbBz6Z9Mxy7tNi3jx6
|
16
|
-
0bfb6ff650be2d003af3d0fc6c75be16369605e1 0 iEYEABECAAYFAlFjCYkACgkQ+zlz4UKpE6RldACg77Rp2I4vYUXpFakUrYq6uSfPLLQAn266JL6CiQG44cSroW+Mgz4CZgJn
|
17
|
-
4e0606f5f5aab87855860a3eeaf4c9eaaea77f09 0 iEYEABECAAYFAlHuizwACgkQ+zlz4UKpE6QphACg4FNFwvVju9wk6PC6vwkY8cZRtvkAn1nDR0pbto9xMdMUqhJxOc5Dqisr
|
18
|
-
eed93df350a6cc657d5151bd3aa29ab427fba7cc 0 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
-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
-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
-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
-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
-
57291f1e96b95a2545f98ec95ba1b01f8d3a0cf5 0 iQIcBAABAgAGBQJV6LWaAAoJEGE7GvLhImG9TMEP/jGHXPtiwWWb1xS+hL1i7b5J13IjciOHW+hGtp4lFb/J1jtF4o3JoPDdq+q1Ytuc0zo/lcYU73kw2gseGgO96MIEFdDcdCS1tbE5EP8456ADCn4TKykSSCdIuBXizhh/CTIJyry7i8VXpio1K26Uav2J2M2G91IADqmg2AWFtHmboGmaGRwU4TMuZbZPMFkiPyhFMMz9FH9VhVOEqF4KaEzUQM3RyKsfJ9RvJk7g3oxBS6vq/bPzQq3LNXVqirKfx4kSv8Rv+dyGHadKfdhigTXDWfzplnmuDcmOvhIcEnUsgPQyoPFfKM6RDaaNswFaLAXrGQXirx5hXDUhehXYjBuRB5iF372AACcnRJUJHV+mdW9L5jmJw64umZ7FuKOVqojumMLIEj16nz7ucAJpgOwbWKgLiUk+6vVr6QknjNYC6FDlgJ04nYfjovbzrT+HCC5UAVRBBX+w/khybhhsvvZUIZOzt6RPkriin7NQi3LST2ZN2AOolkDtSJd6esExXkUod7qGfTl/nKa8qWpeAQ7XSq+bv8/Wbj/bqN7kIDy6qYcy2J+aL/PNdrzuOSWKeQrOWhsb02mlsxC9bmRBEWJ1WbpdrnX7/6aVuPwF0LKsftitkFR6IqPza20qUebz+UF9Pd8lW4qn28BCRtwLprw/Oh0Qct1cVE9OUiB4GVXP
|
24
|
-
da42b972b5ab3381b41a3a63cc2a65b42e5caa05 0 iQIcBAABAgAGBQJWRjUaAAoJEGE7GvLhImG9gFUP/34+eviBFlK2TPDBAp/AQz8aQp4dcPBZ9S5JCCXW1c2YE+UL6X7MpkRR3t/eXrzBJFSgiXmB+TzTkfz1DsFKKoAXymq5hP5AIf+5dpkvL+JH24f/+Jzv3qaNWYqJbUNYajy+GXMI8OGwmQ7x3EtynJmYpMVWdgtjcfCRGVRw38Zun+ePiluI83K/I52RptZenhcQP9I7wehdUtCp8bH7LX1nbeHH/HDY5OmkN22HkFzkPPLjYFgAzNfciZMI7bmxmTbLZ1wqGFyTHjGONEiKPW8vgnMK26QXm+/+DkPkg0RwqeA4oUwlT5+8m/pBlzJBY+Boz0+ffCBxpHOSto04hP2rCcBd1hihr6OWtZiZJ1S/YMsKW4vnZoIBVDr+z7fAOaLkZ6GX580BtoVH3Etr7/727ebaWYQfPknlAPn6lkO271/+r8X8GlTqxqlF/gvq5baqCLXvdjIgUgJAseuf4RWsSef+GxMaC/w9cScoqnr/v3DAcTKPY4FdomDUlEp/3HcjzothsXIDifrH1FhX0NjPzAMMvQm+jOsZWF7Z0ipfsPQGjx7enOdsUiUQzU+pYxiIZHdZ2vpkALFB8VhRB8QoO0hnyORLVrSqYHNQ+UdcV2lwwThi6qVfLjT0gKuxCG2e2u3pGvv28iW7nk7SYFCpHCRtaEpZh+4VDa8GPAOj
|
25
|
-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
-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
-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
-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
-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
-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
-
71d5c24f937e00c2348f8d5b9680b9abe8597618 0 iQIzBAABCAAdFiEEoYl52o0gA4yRUmHQ4yEXIpU5F6MFAluEcKMACgkQ4yEXIpU5F6OLDg/8DKSI8HzShD47HQMiqMtRSanmlJz2qrKea9gY3Y9HgXnIODTFUdi1v8CLzOU/NyD+GtYl8AiJSCUQfT2W0IEZkf7AeAsliq/0edPKQvCbHbjdOcWTTe07x8E1BbQoP8sS8EyYj3nbjQrYaTu3qKxOIwYhN9h8DP6C4xDQeGS05kdMcEbOXcvL0wNRnLW6mBJK2fqNFKR5BSIWgZUlqqYC90URD546D/Y5a+zR9tzsxiFXP/yKkDKVXoaFWiMEt/PjClgt7pcaCiyt1ZUt0N398/oVLPrIgMPOSqlbQB3eFYcdx3I2DpWIvWm9NjUe7FhkJfRUOQEnZ6IiqiLb6UwaRY1B+yt7SVOPygv86B1sACwE2G9+tcBGaIcKILdxD2HAt1nVsxVOKGI/9prmrVGrIzX6AX4phPpVS+PZRbd+CwI+dcGYXIjhVs+oy/6G+soo3ayLqqzWgcu+kC4cf39mVr7kNLGGbg15xJUmMp49WEk8/tiLgUDySdcCJAjADzWFvQrjy40JMxmt8dJPZwHhIBUZ0mXsGZWD0OVunQT9B3yswRj7I4TV/ztyfNYN7OtCyzxs1gwzrKiS8T/COSp7cb3+hXXoI9doWOPTZbO1Na51ch+4nqR6mtOCOmR7sCqSXw/VRLn97DsPK0miKbEQUm7mNT/XcxWPwHsWUI3yg+Y=
|
32
|
-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
-
6f611e78845adc38eac1fffe4793bea2d52bf099 0 iQIzBAABCAAdFiEEoYl52o0gA4yRUmHQ4yEXIpU5F6MFAluRxokACgkQ4yEXIpU5F6Np6w/8D4R+QDUJN4mPGlbQNOSB8ew6do1ixP+uMZtMTgltYtbX+Uf9vNgCM+rmy0Tb+HjkMeNy47YZXaobfZ7ejmT/pFt9WXEr90mADAwrWcbqCCKC9OVmQG3tQQT2BGqxKsaB3t0s2+tNBGXs5o7AzHjqzain1nBe19y29EzpWfYusRA+exvIYWk8hf1JpY0wAaNIVBKdALSNcR/t0msHJRBkn2UxB+0e5te+A09atd0K1sXp9qii4WvGZBGJtpiFVK8Ayk+7Q2/RxqYoyJoIR2xcoZTA2e1no4uRjXa0ZTphPQpsDEJEwAQ5ymsFTtWPapWoJIgeyGopPckR85GT3c7MgkOGLLCJs1lKeQGWevjWquHV4lP3NZr4tmnKC9BHoqc16tlBbtbuaPXyGRkBP4ROn3NIm8rftixDGQtTZwlaNzJ8OoXCqj5PzTMUO8zbgVv9QrEHAcpxB+j+tINB5kdc4vICH2zoe0J7jK32ynwY9JH36cg8GVLkNIwzYWP5GKmeFm1GQKvv7Ptqfa4rTPKDy2G1/yTCwrzpg5vRNy+7ouhHRrVAxEaIvehdoYs+3K+SwGzgk0RoL0sw0n54zv/svTtIugO1inE9tKA31cuPujIcIrWPthHBY7bSPO18HGyoHkOcaS0rkkwQ0Ug85aBtyuFLjPUkUt4NL4kGmHOALFs=
|
34
|
-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
|
data/.hgtags
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
7fbe4187e9e53e58baf6cd7c1c21e3a3c5b920e5 0.8.0
|
2
|
-
da726282493c57b4ef8e5be1a21e98cc028fda4c 0.9.0
|
3
|
-
1822a169c4fecac402335a64a484b5dc053994a3 0.10.0
|
4
|
-
1822a169c4fecac402335a64a484b5dc053994a3 v0.10.0
|
5
|
-
1822a169c4fecac402335a64a484b5dc053994a3 0.10.0
|
6
|
-
0000000000000000000000000000000000000000 0.10.0
|
7
|
-
de10b5d8e4429d22790976ec4de89f209e882906 v0.10.1
|
8
|
-
3cb8e57c6c80737c714dd7607a144ef12074c4fe v0.11.0
|
9
|
-
da726282493c57b4ef8e5be1a21e98cc028fda4c v0.9.0
|
10
|
-
7fbe4187e9e53e58baf6cd7c1c21e3a3c5b920e5 v0.8.0
|
11
|
-
b767401684d8a4051230874b0686a54537b10e2f v0.12.0
|
12
|
-
21f84883e5c206a3f2890905af68e08a0046ba1c v0.12.1
|
13
|
-
88bd78632f86f696dd3fa8904c1d3180216378cc v0.12.2
|
14
|
-
7b2da7e0815cce834cd60f9747209923952876ec v0.13.0
|
15
|
-
9e60b2c477cde450a088161ca8f3d72b52531aaf v0.13.1
|
16
|
-
c79cd308363d614f7ba32fd86294c9aa3117c361 v0.13.2
|
17
|
-
634e0a42a1010fc1dcd279fb28506873a47090c1 v0.14.0
|
18
|
-
2d83ce956f971c3aeb145c9ad68f426e78b852dd v0.14.1
|
19
|
-
065fd1f0e9dda58557de0efb2deb138e93ba7632 v0.15.0
|
20
|
-
4692c20bcbdeadd8a31283e234464c6e1c43765d v0.15.1
|
21
|
-
def8f41a76726cf7239ff6dbaa2828a881f93451 v0.16.0
|
22
|
-
30da9c169efc3985ad0464936483c229faba0e33 v0.17.0
|
23
|
-
78846e47d87b7ed5bb7397116070692b1cfa87d7 v0.17.1
|
24
|
-
cfb2bfc0f66181e67768c4313bcce473292a0825 v0.18.0
|
25
|
-
f97dd6cb4f34da6a62c4339887249115c7c25b9c v0.18.1
|
26
|
-
22a361201fd1d387d59a066b179124694a446f38 v0.18.2
|
27
|
-
01c42c68797e724507b76056b98981cb30748a36 v0.18.3
|
28
|
-
94ef4830540d8fa74b8912118fb8065f4a6a3563 v0.18.4
|
29
|
-
94ef4830540d8fa74b8912118fb8065f4a6a3563 v0.18.4
|
30
|
-
0000000000000000000000000000000000000000 v0.18.4
|
31
|
-
0000000000000000000000000000000000000000 v0.18.4
|
32
|
-
f61127650cd00a1154c591dcde85ebac01f2be9f v0.18.4
|
33
|
-
bd2aaa2c5797de78435977a1c60e450d6f22811b v0.19.0
|
34
|
-
e5eb92cca97abc0c6fc168acfad993c2ad314589 v0.20.0
|
35
|
-
deae742eacfa985bd20f47a12a8fee6ce2e0447c v0.21.0
|
36
|
-
9a388d1023ec145cb00e6e16f3a8cabd3cc81d16 v1.0.0
|
37
|
-
319c00d9d59e24ce06493715cff2701e3a2a8990 v1.1.0
|
38
|
-
c80083c5e395451d612d43323c40317eb63bcb54 v1.1.1
|
39
|
-
f54d10c5d98fd06d6fc70896107319901ae374ae v1.1.2
|
40
|
-
c7035371f972982c1716daf61861b9dde15de03e v1.1.3
|
41
|
-
11d3487e303cf0fc6af48086f3e9c0b1c8283039 v1.1.4
|
data/.irbrc
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
#!/usr/bin/ruby -*- ruby -*-
|
2
|
-
|
3
|
-
BEGIN {
|
4
|
-
require 'pathname'
|
5
|
-
require 'rbconfig'
|
6
|
-
|
7
|
-
basedir = Pathname.new( __FILE__ ).dirname.expand_path
|
8
|
-
libdir = basedir + "lib"
|
9
|
-
|
10
|
-
puts ">>> Adding #{libdir} to load path..."
|
11
|
-
$LOAD_PATH.unshift( libdir.to_s )
|
12
|
-
}
|
13
|
-
|
14
|
-
|
15
|
-
# Try to require the 'pg' library
|
16
|
-
begin
|
17
|
-
$stderr.puts "Loading pg..."
|
18
|
-
require 'pg'
|
19
|
-
rescue => e
|
20
|
-
$stderr.puts "Ack! pg library failed to load: #{e.message}\n\t" +
|
21
|
-
e.backtrace.join( "\n\t" )
|
22
|
-
end
|
23
|
-
|
data/.pryrc
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
#!/usr/bin/ruby -*- ruby -*-
|
2
|
-
|
3
|
-
BEGIN {
|
4
|
-
require 'pathname'
|
5
|
-
require 'rbconfig'
|
6
|
-
|
7
|
-
basedir = Pathname.new( __FILE__ ).dirname.expand_path
|
8
|
-
libdir = basedir + "lib"
|
9
|
-
|
10
|
-
puts ">>> Adding #{libdir} to load path..."
|
11
|
-
$LOAD_PATH.unshift( libdir.to_s )
|
12
|
-
}
|
13
|
-
|
14
|
-
|
15
|
-
# Try to require the 'pg' library
|
16
|
-
begin
|
17
|
-
$stderr.puts "Loading pg..."
|
18
|
-
require 'pg'
|
19
|
-
rescue => e
|
20
|
-
$stderr.puts "Ack! pg library failed to load: #{e.message}\n\t" +
|
21
|
-
e.backtrace.join( "\n\t" )
|
22
|
-
end
|
23
|
-
|
data/.tm_properties
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
# Settings
|
2
|
-
projectDirectory = "$CWD"
|
3
|
-
windowTitle = "${CWD/^.*\///} «$TM_DISPLAYNAME»"
|
4
|
-
excludeInFileChooser = {$exclude,.hg}
|
5
|
-
exclude = {$exclude,tmp,tmp_test_specs}
|
6
|
-
|
7
|
-
TM_MAKE = 'rake'
|
8
|
-
TM_MAKE_FILE = '${projectDirectory}/Rakefile'
|
9
|
-
|
10
|
-
[ source ]
|
11
|
-
softTabs = false
|
12
|
-
tabSize = 4
|
13
|
-
|
14
|
-
[ source.ruby ]
|
15
|
-
softTabs = false
|
16
|
-
tabSize = 4
|
17
|
-
|
18
|
-
[ source.ruby.rspec ]
|
19
|
-
softTabs = false
|
20
|
-
tabSize = 4
|
21
|
-
|
data/.travis.yml
DELETED
@@ -1,49 +0,0 @@
|
|
1
|
-
sudo: required
|
2
|
-
dist: focal
|
3
|
-
services:
|
4
|
-
- docker
|
5
|
-
language: ruby
|
6
|
-
matrix:
|
7
|
-
include:
|
8
|
-
# i386: Intel 32-bit
|
9
|
-
- name: i386
|
10
|
-
|
11
|
-
language: generic
|
12
|
-
env:
|
13
|
-
- PGPATH="/usr/lib/postgresql/10/bin"
|
14
|
-
before_install: |
|
15
|
-
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes &&
|
16
|
-
docker build --rm --build-arg PGPATH="${PGPATH}" -t ruby-pg -f spec/env/Dockerfile.i386 .
|
17
|
-
script: |
|
18
|
-
docker run --rm -t --network=host ruby-pg
|
19
|
-
|
20
|
-
- rvm: "2.5"
|
21
|
-
env:
|
22
|
-
- "PGVERSION=9.3"
|
23
|
-
# Use Ubuntu-16.04 since postgresql-9.3 depends on openssl-1.0.0, which isn't available in 20.04
|
24
|
-
dist: xenial
|
25
|
-
- rvm: ruby-head
|
26
|
-
env:
|
27
|
-
- "PGVERSION=14"
|
28
|
-
- rvm: truffleruby
|
29
|
-
env:
|
30
|
-
- "PGVERSION=14"
|
31
|
-
|
32
|
-
allow_failures:
|
33
|
-
- rvm: ruby-head
|
34
|
-
fast_finish: true
|
35
|
-
|
36
|
-
before_install:
|
37
|
-
- bundle install
|
38
|
-
# Download and install postgresql version to test against in /opt (for non-cross compile only)
|
39
|
-
- echo "deb http://apt.postgresql.org/pub/repos/apt/ ${TRAVIS_DIST}-pgdg main $PGVERSION" | sudo tee -a /etc/apt/sources.list.d/pgdg.list
|
40
|
-
- wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
|
41
|
-
- sudo apt-get -y update
|
42
|
-
- sudo apt-get -y --allow-downgrades install postgresql-$PGVERSION libpq5=$PGVERSION* libpq-dev=$PGVERSION*
|
43
|
-
- export PATH=/usr/lib/postgresql/$PGVERSION/bin:$PATH
|
44
|
-
|
45
|
-
script:
|
46
|
-
- bundle exec rake compile test PG_DEBUG=0
|
47
|
-
|
48
|
-
after_failure:
|
49
|
-
- "find tmp -name mkmf.log | xargs cat"
|
data/Manifest.txt
DELETED
@@ -1,72 +0,0 @@
|
|
1
|
-
.gemtest
|
2
|
-
BSDL
|
3
|
-
Contributors.rdoc
|
4
|
-
History.rdoc
|
5
|
-
LICENSE
|
6
|
-
Manifest.txt
|
7
|
-
POSTGRES
|
8
|
-
README-OS_X.rdoc
|
9
|
-
README-Windows.rdoc
|
10
|
-
README.ja.rdoc
|
11
|
-
README.rdoc
|
12
|
-
Rakefile
|
13
|
-
Rakefile.cross
|
14
|
-
ext/errorcodes.def
|
15
|
-
ext/errorcodes.rb
|
16
|
-
ext/errorcodes.txt
|
17
|
-
ext/extconf.rb
|
18
|
-
ext/gvl_wrappers.c
|
19
|
-
ext/gvl_wrappers.h
|
20
|
-
ext/pg.c
|
21
|
-
ext/pg.h
|
22
|
-
ext/pg_binary_decoder.c
|
23
|
-
ext/pg_binary_encoder.c
|
24
|
-
ext/pg_coder.c
|
25
|
-
ext/pg_connection.c
|
26
|
-
ext/pg_copy_coder.c
|
27
|
-
ext/pg_errors.c
|
28
|
-
ext/pg_record_coder.c
|
29
|
-
ext/pg_result.c
|
30
|
-
ext/pg_text_decoder.c
|
31
|
-
ext/pg_text_encoder.c
|
32
|
-
ext/pg_tuple.c
|
33
|
-
ext/pg_type_map.c
|
34
|
-
ext/pg_type_map_all_strings.c
|
35
|
-
ext/pg_type_map_by_class.c
|
36
|
-
ext/pg_type_map_by_column.c
|
37
|
-
ext/pg_type_map_by_mri_type.c
|
38
|
-
ext/pg_type_map_by_oid.c
|
39
|
-
ext/pg_type_map_in_ruby.c
|
40
|
-
ext/pg_util.c
|
41
|
-
ext/pg_util.h
|
42
|
-
ext/vc/pg.sln
|
43
|
-
ext/vc/pg_18/pg.vcproj
|
44
|
-
ext/vc/pg_19/pg_19.vcproj
|
45
|
-
lib/pg.rb
|
46
|
-
lib/pg/basic_type_mapping.rb
|
47
|
-
lib/pg/binary_decoder.rb
|
48
|
-
lib/pg/coder.rb
|
49
|
-
lib/pg/connection.rb
|
50
|
-
lib/pg/constants.rb
|
51
|
-
lib/pg/exceptions.rb
|
52
|
-
lib/pg/result.rb
|
53
|
-
lib/pg/text_decoder.rb
|
54
|
-
lib/pg/text_encoder.rb
|
55
|
-
lib/pg/tuple.rb
|
56
|
-
lib/pg/type_map_by_column.rb
|
57
|
-
spec/data/expected_trace.out
|
58
|
-
spec/data/random_binary_data
|
59
|
-
spec/helpers.rb
|
60
|
-
spec/pg/basic_type_mapping_spec.rb
|
61
|
-
spec/pg/connection_spec.rb
|
62
|
-
spec/pg/connection_sync_spec.rb
|
63
|
-
spec/pg/result_spec.rb
|
64
|
-
spec/pg/tuple_spec.rb
|
65
|
-
spec/pg/type_map_by_class_spec.rb
|
66
|
-
spec/pg/type_map_by_column_spec.rb
|
67
|
-
spec/pg/type_map_by_mri_type_spec.rb
|
68
|
-
spec/pg/type_map_by_oid_spec.rb
|
69
|
-
spec/pg/type_map_in_ruby_spec.rb
|
70
|
-
spec/pg/type_map_spec.rb
|
71
|
-
spec/pg/type_spec.rb
|
72
|
-
spec/pg_spec.rb
|
data/Rakefile.cross
DELETED
@@ -1,298 +0,0 @@
|
|
1
|
-
# -*- rake -*-
|
2
|
-
|
3
|
-
require 'uri'
|
4
|
-
require 'tempfile'
|
5
|
-
require 'rbconfig'
|
6
|
-
require 'rake/clean'
|
7
|
-
require 'rake/extensiontask'
|
8
|
-
require 'rake/extensioncompiler'
|
9
|
-
require 'ostruct'
|
10
|
-
require_relative 'rakelib/task_extension'
|
11
|
-
|
12
|
-
MISCDIR = BASEDIR + 'misc'
|
13
|
-
|
14
|
-
NUM_CPUS = if File.exist?('/proc/cpuinfo')
|
15
|
-
File.read('/proc/cpuinfo').scan('processor').length
|
16
|
-
elsif RUBY_PLATFORM.include?( 'darwin' )
|
17
|
-
`system_profiler SPHardwareDataType | grep 'Cores' | awk '{print $5}'`.chomp
|
18
|
-
else
|
19
|
-
1
|
20
|
-
end
|
21
|
-
|
22
|
-
class CrossLibrary < OpenStruct
|
23
|
-
include Rake::DSL
|
24
|
-
prepend TaskExtension
|
25
|
-
|
26
|
-
def initialize(for_platform, openssl_config, toolchain)
|
27
|
-
super()
|
28
|
-
|
29
|
-
self.for_platform = for_platform
|
30
|
-
self.openssl_config = openssl_config
|
31
|
-
self.host_platform = toolchain
|
32
|
-
|
33
|
-
# Cross-compilation constants
|
34
|
-
self.openssl_version = ENV['OPENSSL_VERSION'] || '3.0.8'
|
35
|
-
self.postgresql_version = ENV['POSTGRESQL_VERSION'] || '15.2'
|
36
|
-
|
37
|
-
# Check if symlinks work in the current working directory.
|
38
|
-
# This fails, if rake-compiler-dock is running on a Windows box.
|
39
|
-
begin
|
40
|
-
FileUtils.rm_f '.test_symlink'
|
41
|
-
FileUtils.ln_s '/', '.test_symlink'
|
42
|
-
rescue NotImplementedError, SystemCallError
|
43
|
-
# Symlinks don't work -> use home directory instead
|
44
|
-
self.compile_home = Pathname( "~/.ruby-pg-build" ).expand_path
|
45
|
-
else
|
46
|
-
self.compile_home = Pathname( "./build" ).expand_path
|
47
|
-
end
|
48
|
-
self.static_sourcesdir = compile_home + 'sources'
|
49
|
-
self.static_builddir = compile_home + 'builds' + for_platform
|
50
|
-
CLOBBER.include( static_sourcesdir )
|
51
|
-
CLEAN.include( static_builddir )
|
52
|
-
|
53
|
-
# Static OpenSSL build vars
|
54
|
-
self.static_openssl_builddir = static_builddir + "openssl-#{openssl_version}"
|
55
|
-
|
56
|
-
self.openssl_source_uri =
|
57
|
-
URI( "http://www.openssl.org/source/openssl-#{openssl_version}.tar.gz" )
|
58
|
-
self.openssl_tarball = static_sourcesdir + File.basename( openssl_source_uri.path )
|
59
|
-
self.openssl_makefile = static_openssl_builddir + 'Makefile'
|
60
|
-
|
61
|
-
self.libssl = static_openssl_builddir + 'libssl.a'
|
62
|
-
self.libcrypto = static_openssl_builddir + 'libcrypto.a'
|
63
|
-
|
64
|
-
self.openssl_patches = Rake::FileList[ (MISCDIR + "openssl-#{openssl_version}.*.patch").to_s ]
|
65
|
-
|
66
|
-
# Static PostgreSQL build vars
|
67
|
-
self.static_postgresql_builddir = static_builddir + "postgresql-#{postgresql_version}"
|
68
|
-
self.postgresql_source_uri = begin
|
69
|
-
uristring = "http://ftp.postgresql.org/pub/source/v%s/postgresql-%s.tar.bz2" %
|
70
|
-
[ postgresql_version, postgresql_version ]
|
71
|
-
URI( uristring )
|
72
|
-
end
|
73
|
-
self.postgresql_tarball = static_sourcesdir + File.basename( postgresql_source_uri.path )
|
74
|
-
|
75
|
-
self.static_postgresql_srcdir = static_postgresql_builddir + 'src'
|
76
|
-
self.static_postgresql_libdir = static_postgresql_srcdir + 'interfaces/libpq'
|
77
|
-
self.static_postgresql_incdir = static_postgresql_srcdir + 'include'
|
78
|
-
|
79
|
-
self.postgresql_global_makefile = static_postgresql_srcdir + 'Makefile.global'
|
80
|
-
self.postgresql_shlib_makefile = static_postgresql_srcdir + 'Makefile.shlib'
|
81
|
-
self.postgresql_shlib_mf_orig = static_postgresql_srcdir + 'Makefile.shlib.orig'
|
82
|
-
self.postgresql_lib = static_postgresql_libdir + 'libpq.dll'
|
83
|
-
self.postgresql_patches = Rake::FileList[ (MISCDIR + "postgresql-#{postgresql_version}.*.patch").to_s ]
|
84
|
-
|
85
|
-
# clean intermediate files and folders
|
86
|
-
CLEAN.include( static_builddir.to_s )
|
87
|
-
|
88
|
-
#####################################################################
|
89
|
-
### C R O S S - C O M P I L A T I O N - T A S K S
|
90
|
-
#####################################################################
|
91
|
-
|
92
|
-
|
93
|
-
directory static_sourcesdir.to_s
|
94
|
-
|
95
|
-
#
|
96
|
-
# Static OpenSSL build tasks
|
97
|
-
#
|
98
|
-
directory static_openssl_builddir.to_s
|
99
|
-
|
100
|
-
# openssl source file should be stored there
|
101
|
-
file openssl_tarball => static_sourcesdir do |t|
|
102
|
-
download( openssl_source_uri, t.name )
|
103
|
-
end
|
104
|
-
|
105
|
-
# Extract the openssl builds
|
106
|
-
file static_openssl_builddir => openssl_tarball do |t|
|
107
|
-
puts "extracting %s to %s" % [ openssl_tarball, static_openssl_builddir.parent ]
|
108
|
-
static_openssl_builddir.mkpath
|
109
|
-
run 'tar', '-xzf', openssl_tarball.to_s, '-C', static_openssl_builddir.parent.to_s
|
110
|
-
openssl_makefile.unlink if openssl_makefile.exist?
|
111
|
-
|
112
|
-
openssl_patches.each do |patchfile|
|
113
|
-
puts " applying patch #{patchfile}..."
|
114
|
-
run 'patch', '-Np1', '-d', static_openssl_builddir.to_s,
|
115
|
-
'-i', File.expand_path( patchfile, BASEDIR )
|
116
|
-
end
|
117
|
-
end
|
118
|
-
|
119
|
-
self.cmd_prelude = [
|
120
|
-
"env",
|
121
|
-
"CROSS_COMPILE=#{host_platform}-",
|
122
|
-
"CFLAGS=-DDSO_WIN32",
|
123
|
-
]
|
124
|
-
|
125
|
-
|
126
|
-
# generate the makefile in a clean build location
|
127
|
-
file openssl_makefile => static_openssl_builddir do |t|
|
128
|
-
chdir( static_openssl_builddir ) do
|
129
|
-
cmd = cmd_prelude.dup
|
130
|
-
cmd << "./Configure" << "-static" << openssl_config
|
131
|
-
|
132
|
-
run( *cmd )
|
133
|
-
end
|
134
|
-
end
|
135
|
-
|
136
|
-
desc "compile static openssl libraries"
|
137
|
-
task "openssl_libs:#{for_platform}" => [ libssl, libcrypto ]
|
138
|
-
|
139
|
-
task "compile_static_openssl:#{for_platform}" => openssl_makefile do |t|
|
140
|
-
chdir( static_openssl_builddir ) do
|
141
|
-
cmd = cmd_prelude.dup
|
142
|
-
cmd << 'make' << "-j#{NUM_CPUS}" << 'build_libs'
|
143
|
-
|
144
|
-
run( *cmd )
|
145
|
-
end
|
146
|
-
end
|
147
|
-
|
148
|
-
desc "compile static #{libssl}"
|
149
|
-
file libssl => "compile_static_openssl:#{for_platform}"
|
150
|
-
|
151
|
-
desc "compile static #{libcrypto}"
|
152
|
-
file libcrypto => "compile_static_openssl:#{for_platform}"
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
#
|
157
|
-
# Static PostgreSQL build tasks
|
158
|
-
#
|
159
|
-
directory static_postgresql_builddir.to_s
|
160
|
-
|
161
|
-
|
162
|
-
# postgresql source file should be stored there
|
163
|
-
file postgresql_tarball => static_sourcesdir do |t|
|
164
|
-
download( postgresql_source_uri, t.name )
|
165
|
-
end
|
166
|
-
|
167
|
-
# Extract the postgresql sources
|
168
|
-
file static_postgresql_builddir => postgresql_tarball do |t|
|
169
|
-
puts "extracting %s to %s" % [ postgresql_tarball, static_postgresql_builddir.parent ]
|
170
|
-
static_postgresql_builddir.mkpath
|
171
|
-
run 'tar', '-xjf', postgresql_tarball.to_s, '-C', static_postgresql_builddir.parent.to_s
|
172
|
-
|
173
|
-
postgresql_patches.each do |patchfile|
|
174
|
-
puts " applying patch #{patchfile}..."
|
175
|
-
run 'patch', '-Np1', '-d', static_postgresql_builddir.to_s,
|
176
|
-
'-i', File.expand_path( patchfile, BASEDIR )
|
177
|
-
end
|
178
|
-
end
|
179
|
-
|
180
|
-
# generate the makefile in a clean build location
|
181
|
-
file postgresql_global_makefile => [ static_postgresql_builddir, "openssl_libs:#{for_platform}" ] do |t|
|
182
|
-
options = [
|
183
|
-
"--target=#{host_platform}",
|
184
|
-
"--host=#{host_platform}",
|
185
|
-
'--with-openssl',
|
186
|
-
'--without-zlib',
|
187
|
-
]
|
188
|
-
|
189
|
-
chdir( static_postgresql_builddir ) do
|
190
|
-
configure_path = static_postgresql_builddir + 'configure'
|
191
|
-
cmd = [ configure_path.to_s, *options ]
|
192
|
-
cmd << "CFLAGS=-L#{static_openssl_builddir}"
|
193
|
-
cmd << "LDFLAGS=-L#{static_openssl_builddir}"
|
194
|
-
cmd << "LDFLAGS_SL=-L#{static_openssl_builddir}"
|
195
|
-
cmd << "LIBS=-lwsock32 -lgdi32 -lws2_32 -lcrypt32"
|
196
|
-
cmd << "CPPFLAGS=-I#{static_openssl_builddir}/include"
|
197
|
-
|
198
|
-
run( *cmd )
|
199
|
-
end
|
200
|
-
end
|
201
|
-
|
202
|
-
|
203
|
-
# make libpq.dll
|
204
|
-
task postgresql_lib => [ postgresql_global_makefile ] do |t|
|
205
|
-
# Work around missing dependency to libcommon in PostgreSQL-9.4.0
|
206
|
-
chdir( static_postgresql_srcdir + "common" ) do
|
207
|
-
sh 'make', "-j#{NUM_CPUS}"
|
208
|
-
end
|
209
|
-
chdir( static_postgresql_srcdir + "port" ) do
|
210
|
-
sh 'make', "-j#{NUM_CPUS}"
|
211
|
-
end
|
212
|
-
|
213
|
-
chdir( postgresql_lib.dirname ) do
|
214
|
-
sh 'make',
|
215
|
-
"-j#{NUM_CPUS}",
|
216
|
-
postgresql_lib.basename.to_s,
|
217
|
-
'SHLIB_LINK=-lssl -lcrypto -lcrypt32 -lgdi32 -lsecur32 -lwsock32 -lws2_32'
|
218
|
-
end
|
219
|
-
end
|
220
|
-
|
221
|
-
|
222
|
-
#desc 'compile libpg.a'
|
223
|
-
task "native:#{for_platform}" => postgresql_lib
|
224
|
-
|
225
|
-
# copy libpq.dll to lib dir
|
226
|
-
dest_libpq = "lib/#{for_platform}/#{postgresql_lib.basename}"
|
227
|
-
directory File.dirname(dest_libpq)
|
228
|
-
file dest_libpq => [postgresql_lib, File.dirname(dest_libpq)] do
|
229
|
-
cp postgresql_lib, dest_libpq
|
230
|
-
end
|
231
|
-
|
232
|
-
stage_libpq = "tmp/#{for_platform}/stage/#{dest_libpq}"
|
233
|
-
directory File.dirname(stage_libpq)
|
234
|
-
file stage_libpq => [postgresql_lib, File.dirname(stage_libpq)] do |t|
|
235
|
-
cp postgresql_lib, stage_libpq
|
236
|
-
end
|
237
|
-
end
|
238
|
-
|
239
|
-
def download(url, save_to)
|
240
|
-
part = save_to+".part"
|
241
|
-
sh "wget #{url.to_s.inspect} -O #{part.inspect} || curl #{url.to_s.inspect} -o #{part.inspect}"
|
242
|
-
FileUtils.mv part, save_to
|
243
|
-
end
|
244
|
-
|
245
|
-
def run(*args)
|
246
|
-
sh(*args)
|
247
|
-
end
|
248
|
-
end
|
249
|
-
|
250
|
-
CrossLibraries = [
|
251
|
-
['x64-mingw-ucrt', 'mingw64', 'x86_64-w64-mingw32'],
|
252
|
-
['x86-mingw32', 'mingw', 'i686-w64-mingw32'],
|
253
|
-
['x64-mingw32', 'mingw64', 'x86_64-w64-mingw32'],
|
254
|
-
].map do |platform, openssl_config, toolchain|
|
255
|
-
CrossLibrary.new platform, openssl_config, toolchain
|
256
|
-
end
|
257
|
-
|
258
|
-
desc 'cross compile pg for win32'
|
259
|
-
task :cross => [ :mingw32 ]
|
260
|
-
|
261
|
-
task :mingw32 do
|
262
|
-
# Use Rake::ExtensionCompiler helpers to find the proper host
|
263
|
-
unless Rake::ExtensionCompiler.mingw_host then
|
264
|
-
warn "You need to install mingw32 cross compile functionality to be able to continue."
|
265
|
-
warn "Please refer to your distribution/package manager documentation about installation."
|
266
|
-
fail
|
267
|
-
end
|
268
|
-
end
|
269
|
-
|
270
|
-
task 'gem:windows:prepare' do
|
271
|
-
require 'io/console'
|
272
|
-
require 'rake_compiler_dock'
|
273
|
-
|
274
|
-
# Copy gem signing key and certs to be accessible from the docker container
|
275
|
-
mkdir_p 'build/gem'
|
276
|
-
sh "cp ~/.gem/gem-*.pem build/gem/ || true"
|
277
|
-
sh "bundle package"
|
278
|
-
begin
|
279
|
-
OpenSSL::PKey.read(File.read(File.expand_path("~/.gem/gem-private_key.pem")), ENV["GEM_PRIVATE_KEY_PASSPHRASE"] || "")
|
280
|
-
rescue OpenSSL::PKey::PKeyError
|
281
|
-
ENV["GEM_PRIVATE_KEY_PASSPHRASE"] = STDIN.getpass("Enter passphrase of gem signature key: ")
|
282
|
-
retry
|
283
|
-
end
|
284
|
-
end
|
285
|
-
|
286
|
-
CrossLibraries.each do |xlib|
|
287
|
-
platform = xlib.for_platform
|
288
|
-
desc "Build fat binary gem for platform #{platform}"
|
289
|
-
task "gem:windows:#{platform}" => ['gem:windows:prepare', xlib.openssl_tarball, xlib.postgresql_tarball] do
|
290
|
-
RakeCompilerDock.sh <<-EOT, platform: platform
|
291
|
-
(cp build/gem/gem-*.pem ~/.gem/ || true) &&
|
292
|
-
bundle install --local &&
|
293
|
-
rake native:#{platform} pkg/#{$gem_spec.full_name}-#{platform}.gem MAKE="make -j`nproc`" RUBY_CC_VERSION=3.2.0:3.1.0:3.0.0:2.7.0:2.6.0:2.5.0
|
294
|
-
EOT
|
295
|
-
end
|
296
|
-
desc "Build the windows binary gems"
|
297
|
-
multitask 'gem:windows' => "gem:windows:#{platform}"
|
298
|
-
end
|
data/lib/pg/binary_decoder.rb
DELETED
@@ -1,23 +0,0 @@
|
|
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(params={})
|
9
|
-
super(params.merge(flags: PG::Coder::TIMESTAMP_DB_UTC | PG::Coder::TIMESTAMP_APP_UTC))
|
10
|
-
end
|
11
|
-
end
|
12
|
-
class TimestampUtcToLocal < Timestamp
|
13
|
-
def initialize(params={})
|
14
|
-
super(params.merge(flags: PG::Coder::TIMESTAMP_DB_UTC | PG::Coder::TIMESTAMP_APP_LOCAL))
|
15
|
-
end
|
16
|
-
end
|
17
|
-
class TimestampLocal < Timestamp
|
18
|
-
def initialize(params={})
|
19
|
-
super(params.merge(flags: PG::Coder::TIMESTAMP_DB_LOCAL | PG::Coder::TIMESTAMP_APP_LOCAL))
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end # module PG
|
data/lib/pg/constants.rb
DELETED
data/lib/pg/text_decoder.rb
DELETED
@@ -1,46 +0,0 @@
|
|
1
|
-
# -*- ruby -*-
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
require 'date'
|
5
|
-
require 'json'
|
6
|
-
|
7
|
-
module PG
|
8
|
-
module TextDecoder
|
9
|
-
class Date < SimpleDecoder
|
10
|
-
def decode(string, tuple=nil, field=nil)
|
11
|
-
if string =~ /\A(\d{4})-(\d\d)-(\d\d)\z/
|
12
|
-
::Date.new $1.to_i, $2.to_i, $3.to_i
|
13
|
-
else
|
14
|
-
string
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
class JSON < SimpleDecoder
|
20
|
-
def decode(string, tuple=nil, field=nil)
|
21
|
-
::JSON.parse(string, quirks_mode: true)
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
# Convenience classes for timezone options
|
26
|
-
class TimestampUtc < Timestamp
|
27
|
-
def initialize(params={})
|
28
|
-
super(params.merge(flags: PG::Coder::TIMESTAMP_DB_UTC | PG::Coder::TIMESTAMP_APP_UTC))
|
29
|
-
end
|
30
|
-
end
|
31
|
-
class TimestampUtcToLocal < Timestamp
|
32
|
-
def initialize(params={})
|
33
|
-
super(params.merge(flags: PG::Coder::TIMESTAMP_DB_UTC | PG::Coder::TIMESTAMP_APP_LOCAL))
|
34
|
-
end
|
35
|
-
end
|
36
|
-
class TimestampLocal < Timestamp
|
37
|
-
def initialize(params={})
|
38
|
-
super(params.merge(flags: PG::Coder::TIMESTAMP_DB_LOCAL | PG::Coder::TIMESTAMP_APP_LOCAL))
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
# For backward compatibility:
|
43
|
-
TimestampWithoutTimeZone = TimestampLocal
|
44
|
-
TimestampWithTimeZone = Timestamp
|
45
|
-
end
|
46
|
-
end # module PG
|