Skip to content
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

Removed extra allocation from IntoDatum for char #1887

Conversation

YohDeadfall
Copy link
Contributor

No description provided.

@workingjubilee workingjubilee changed the title Made IntoDatum for char non-allocating Removed extra allocation from IntoDatum for char Sep 27, 2024
@workingjubilee
Copy link
Member

It still has to allocate because it needs to palloc the text datum.

tbh I am dubious of this impl but we have it, so.

@workingjubilee workingjubilee merged commit 1ccd02b into pgcentralfoundation:develop Sep 27, 2024
14 checks passed
@YohDeadfall YohDeadfall deleted the non-alloc-char-into-datum branch September 27, 2024 20:24
@YohDeadfall
Copy link
Contributor Author

Yeah, palloc will be there forever and comes from the &str handel, but malloc isn't there anymore.

@YohDeadfall
Copy link
Contributor Author

Thanks for changing the title, by the way, and the raced concern. I saw that thing in the standard library, but I cannot find it once again, and the code is wrong, indeed. It should also use len_utf8 to get the right number of bytes.

YohDeadfall added a commit to YohDeadfall/pgrx that referenced this pull request Sep 27, 2024
@YohDeadfall
Copy link
Contributor Author

I guess I thought about C strings at that moment, so I completely forgot about the length. But if it would be a char to a C string handling then it still had a bug due to the buffer size not being designed for a terminal byte. Anyway, there's a fix provided in #1889 with tests.

eeeebbbbrrrr added a commit that referenced this pull request Oct 14, 2024
Welcome to pgrx v0.12.6. This releases fixes a number of bugs, cleans up
various parts of the code, adds more Postgres `#include` headers, and
other little things.

To upgrade, first install cargo-pgrx with `cargo install cargo-pgrx
--version 0.12.6 --locked`. Then you can run `cargo pgrx upgrade` in
your extension's crate to update its dependencies.

## What's Changed
* Removed extra allocation from `IntoDatum for char` by @YohDeadfall in
#1887
* Fixed IntoDatum impl for char introduced by #1887 by @YohDeadfall in
#1889
* Support refs to unsized SqlTranslatable types by @workingjubilee in
#1890
* Nullable is Copy when T is Copy by @workingjubilee in
#1884
* Macro based IntoDatum for string types by @YohDeadfall in
#1886
* `impl FromDatum for CString` by @workingjubilee in
#1896
* Add `BorrowDatum` for unsizing borrows of datums by @workingjubilee in
#1891
* Always panic if len of varlena exceeds the maximum by @YohDeadfall in
#1894
* Use cstr literal syntax to avoid unsafe and ??? by @workingjubilee in
#1898
* Implement UnboxDatum for ItemPointerData by @syvb in
#1900
* fix compilation on some CPUs and Windows by @usamoi in
#1901
* docs: update generic type name of TableIterator by @SteveLauC in
#1905
* Remove Python workaround for Homebrew by @workingjubilee in
#1908
* Improved messages for json errors by @YohDeadfall in
#1893
* Adds more headers by @aykut-bozkurt in
#1910
* docs: align description of GucContext::SuBackend and
GucContext::Backend with original PostgreSQL description by @mrl5 in
#1909
* docs: update outdated README by @SteveLauC in
#1914
* fix compilation on emscripten by @usamoi in
#1917
* feat: include 'storage/indexfsm.h' by @SteveLauC in
#1912
* refactor: more CStr literals by @SteveLauC in
#1911
* fix segfault with empty `numrange` during `from_datum()` by
@eeeebbbbrrrr in #1918

## New Contributors
* @mrl5 made their first contribution in
#1909

**Full Changelog**:
v0.12.5...v0.12.6
usamoi pushed a commit to tensorchord/pgrx that referenced this pull request Mar 6, 2025
usamoi pushed a commit to tensorchord/pgrx that referenced this pull request Mar 6, 2025
Welcome to pgrx v0.12.6. This releases fixes a number of bugs, cleans up
various parts of the code, adds more Postgres `#include` headers, and
other little things.

To upgrade, first install cargo-pgrx with `cargo install cargo-pgrx
--version 0.12.6 --locked`. Then you can run `cargo pgrx upgrade` in
your extension's crate to update its dependencies.

## What's Changed
* Removed extra allocation from `IntoDatum for char` by @YohDeadfall in
pgcentralfoundation#1887
* Fixed IntoDatum impl for char introduced by pgcentralfoundation#1887 by @YohDeadfall in
pgcentralfoundation#1889
* Support refs to unsized SqlTranslatable types by @workingjubilee in
pgcentralfoundation#1890
* Nullable is Copy when T is Copy by @workingjubilee in
pgcentralfoundation#1884
* Macro based IntoDatum for string types by @YohDeadfall in
pgcentralfoundation#1886
* `impl FromDatum for CString` by @workingjubilee in
pgcentralfoundation#1896
* Add `BorrowDatum` for unsizing borrows of datums by @workingjubilee in
pgcentralfoundation#1891
* Always panic if len of varlena exceeds the maximum by @YohDeadfall in
pgcentralfoundation#1894
* Use cstr literal syntax to avoid unsafe and ??? by @workingjubilee in
pgcentralfoundation#1898
* Implement UnboxDatum for ItemPointerData by @syvb in
pgcentralfoundation#1900
* fix compilation on some CPUs and Windows by @usamoi in
pgcentralfoundation#1901
* docs: update generic type name of TableIterator by @SteveLauC in
pgcentralfoundation#1905
* Remove Python workaround for Homebrew by @workingjubilee in
pgcentralfoundation#1908
* Improved messages for json errors by @YohDeadfall in
pgcentralfoundation#1893
* Adds more headers by @aykut-bozkurt in
pgcentralfoundation#1910
* docs: align description of GucContext::SuBackend and
GucContext::Backend with original PostgreSQL description by @mrl5 in
pgcentralfoundation#1909
* docs: update outdated README by @SteveLauC in
pgcentralfoundation#1914
* fix compilation on emscripten by @usamoi in
pgcentralfoundation#1917
* feat: include 'storage/indexfsm.h' by @SteveLauC in
pgcentralfoundation#1912
* refactor: more CStr literals by @SteveLauC in
pgcentralfoundation#1911
* fix segfault with empty `numrange` during `from_datum()` by
@eeeebbbbrrrr in pgcentralfoundation#1918

## New Contributors
* @mrl5 made their first contribution in
pgcentralfoundation#1909

**Full Changelog**:
pgcentralfoundation/pgrx@v0.12.5...v0.12.6
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants