Comments (6)
That's a nasty one! Thanks for the report. It's not clear to me why you pass the field as a std::variant
, but I can reproduce the problem without that. Debugging.
from libpqxx.
Found it! It wasn't even the streaming that was the problem. It was the code that represents an array as a string. Its buffer budget calculation was just a little too tight, leading the conversion to allocate slightly too little memory. This wasn't normally an issue, but empty strings happen to be an extreme case in budgeting conversions.
from libpqxx.
Yeah, I noticed that it tries to convert a vector of strings to a single string with comma separated elements and inserts at some point (depending on the number of strings) a null character in the middle.
I use std:: variant because I don't know the field value upfront. Sometimes it can be empty too.
from libpqxx.
The overloading gets a bit confusing and I kind of regret it now. I may do some deprecation go get a stricter separation between "a container or tuple is a row" and "a container or tuple is a value."
@vahancho does the fix address all your use-cases?
from libpqxx.
@jtv I didn't test it yet, but the case of using more than three empty strings in the container was the only one I had issues with.
Thank you for the comprehensive analysis and quick fix.
from libpqxx.
Excellent. Thanks @vahancho.
from libpqxx.
Related Issues (20)
- Error building a project with the library HOT 8
- Building with bazel error: "ar: libdeps specified more than once" or "undefined reference to PQ" HOT 7
- Make of libpqxx on Red Hat Enterprise Linux 8.8 fails HOT 6
- PQXX_DECLARE_ENUM_CONVERSION issues HOT 15
- G++ Vcpkg Debian Docker image linker errors HOT 18
- Query streaming doesn't compile anymore HOT 3
- Can't initialize zview from string_view HOT 2
- Missing cast opportunity HOT 17
- cmake will take the given lib name and it changes to "-l{libname}" and linker will search using "-l{libname}" HOT 7
- `RETURNING` from a `stream_to` HOT 3
- Conversion of TEXT[] to std::vector<std::string>. HOT 5
- error C2039: 'converts_from_string': is not a member of 'pqxx::string_traits<pgvector::Vector>' HOT 8
- Undefined references while compiling project HOT 17
- Static linking is not working, C++20, libpq REL_16_2, HOT 11
- Can I use stream_to to insert multiple records while one field is Postgis Geometry type? HOT 5
- std::optional<std::chrono::year_month_day> to DATE error if optional is empty HOT 4
- Encoding problems with bytea HOT 19
- Undefined refences when compiling example from the documentation HOT 10
- After compilation, there are only pqxx files but no pqxx.hxx files. Is this normal? HOT 31
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from libpqxx.