forked from ged/ruby-pg
-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[pull] master from ged:master #3
Open
pull
wants to merge
571
commits into
majacQ:master
Choose a base branch
from
ged:master
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
atomist
bot
added
auto-branch-delete:on-close
Delete branch when pull request gets closed
auto-merge-method:merge
Auto-merge with merge commit
auto-merge:on-bpr-success
Auto-merge on passed branch protection rule
labels
Dec 2, 2021
larskanis
force-pushed
the
master
branch
3 times, most recently
from
January 14, 2022 20:00
29ed324
to
c463267
Compare
They weren't parsed since commit e24a663
pg_encoding_to_char() is index based and rb_enc_find() is st_table based, so they are fast. In addition move the dominant UTF-8 encoding to the very first in the encoding map, so that no loop is necessary. This cache was only used at connection setup and when calling encoding getter/setter, so that no practical performance impact is expected. Removing the cache makes connection setup thread safe. This is required to make ruby-pg ractor ready.
... to avoid shared gobal state. The registered callback is stored per connection in libpq anyway, so that it makes sense to store the default also per connection.
Write barrier protected objects are allowed to be promoted to the old generation, which means they only get marked on major GC. The downside is that the RB_BJ_WRITE macro MUST be used to set references, otherwise the referenced object may be garbaged collected.
They are not likely to be promoted to old generation, but it can be allowed without any effort.
Also fix a double usage of notice_receiver and notice_processor VALUEs that was introduced in commit d9a9297 9 years ago. This didn't show up, since no one uses both notice_receiver and notice_processor at the same connection.
…enc-cache' and 'larskanis/default-notice'
.. by marking them as such and checking the frozen flag.
.. by marking them as such and checking the frozen flag. Also make sure, that type maps are usable as frozen objects.
.. by avoiding non-shareable proc objects and instance variable mutation. Also make sure, that type maps are usable as frozen objects.
.. by marking them as such, checking the frozen flag and unlinking from the connection. Also make sure, that results are usable as frozen objects.
.. and add tests to verify basic functions are working in a Ractor.
CoderMap and CoderMapsBundle are essentially immutable objects, so that they are frozen at initialize now together with all contents. For the other classes use Ractor.make_shareable instead of freezeing each and every single object and dependency manually. Freezing DEFAULT_TYPE_REGISTRY is necessary to make BasicTypeMap* available in Ractor. This breaks PG::BasicTypeRegistry.register_type and co. but they have been deprecated since pg-1.3.0. They will be removed in a later commit.
Freezing DEFAULT_TYPE_REGISTRY is necessary to make BasicTypeMap* available in Ractor. This breaks PG::BasicTypeRegistry.register_type and co. but they have been deprecated since pg-1.3.0.
…L at PQ(sendP|P)ipelineSync Also make pipeline_sync an alias for sync_pipeline_sync vs. async_pipeline_sync. Now send_pipeline_sync and flush is used to notify IO waiting to the scheduler.
Add Connection#send_pipeline_sync, async_pipeline_sync and release GVL at PQ(sendP|p)ipelineSync
Remove workaround for Truffleruby < 21.3.0
This adds the new class `PG::CancelConnection` which provides the ability to cancel a query per blocking or per non-blocking functions. If the new functions are available they are used and the older no longer compiled in. This way we can get rid of reading out the internal `PGcancel` struct by `Connection#backend_key` .
used in PG::Connection and PG::CancelConnection
And GC.compact works
Add support for new query cancel functions of PostgreSQL-17
- Rename rake task 'gem:windows' to 'gem:native' - Add `rake gem:native:x86_64-linux` - Replace own PostgreSQL and OpenSSL build tasks by MiniPortile This is a more standard way and allows easier extensions. - Add krb5 library for Linux target to support GSSAPI/Kerberos - Change loading of pg_ext Try lib/pg_ext in addition to lib/3.2/pg_ext to support `rake spec` in the build directory - Fat binary linux gem: Try different UnixSocket paths of different distros. - CI: Adjust binary tests for new cross build target - Change patch directory to ports/patches/<package>/<version>/*.patch - ostruct gem is no longer necessary - Fix remaining "windows" references reg. fat binary gems
Fiddle will probably be removed from ruby stdlibs, so using a alternative approach seems necessary.
Try to decrease the number of CI failures on Macos
fat binary gem for Linux
Setting dimensions is especially useful, when a Record shall be encoded into an Array, since the Array encoder can not distinguish if the array shall be encoded as a higher dimension or as a record otherwise. Related to #620
This could cause a segfault. Fixes #620
Update to rcd-1.8.0 and add ruby-3.4 in native gem
Add patch and test job for starvation on bigger SSL records
Verify array input to PG::TypeMapByColumn
Add possibility to define the number of array dimensions to be encoded
There is no package with contains libpq only, but the postgresql package now has less depencies than it had in the past. Especially python and perl are optional dependecies now, so that the install size is acceptable: Pakete (5) mingw-w64-clang-aarch64-icu-75.1-2 mingw-w64-clang-aarch64-lz4-1.10.0-1 mingw-w64-clang-aarch64-openssl-3.4.0-1 winpty-0.4.3-3 mingw-w64-clang-aarch64-postgresql-17.2-1 Gesamtgröße des Downloads: 40,09 MiB Gesamtgröße der installierten Pakete: 198,79 MiB
Add MINGW package dependency which is resolved by RubyInstaller
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
⤵️ pull
auto-branch-delete:on-close
Delete branch when pull request gets closed
auto-merge:on-bpr-success
Auto-merge on passed branch protection rule
auto-merge-method:merge
Auto-merge with merge commit
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by pull[bot]
Can you help keep this open source service alive? 💖 Please sponsor : )