Skip to content

Robust C++ type support #104

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

Open
jmont-dev opened this issue May 20, 2025 · 2 comments
Open

Robust C++ type support #104

jmont-dev opened this issue May 20, 2025 · 2 comments

Comments

@jmont-dev
Copy link

There are a number of data types which have been removed via type erasure when using the .column syntax for ingest with the C++ API. Many of these should be supported according to Quest's official API but are not possible for use with this library: https://questdb.com/docs/reference/sql/datatypes/

A good example is Quest's byte data type. Trying to use any C++ equivalent, eg std::byte, int8_t, char, unsigned char all produce an error saying these functions have been deleted for those data types in the template.

It also doesn't appear possible to use Symbols.

Are these expected deficiencies or is there a reason they were excluded? I can probably put together a PR if there's an intent to support these in the future.

@nwoolmer
Copy link

The ILP protocol itself does not support such types. Across the clients, the API supports what the protocol allows.

To ingest into columns of other types, we implicitly cast the type behind the scenes.

We are in the first stages of swapping to a new bespoke binary protocol, which will eventually support all QuestDB features. The first step is for the new ARRAY type, with additional types to follow.

Once the types are natively supported, then the API can reflect this.

@jmont-dev
Copy link
Author

Thank you for the detailed response, that makes much more sense. Looking forward to seeing the new changes in the future.

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

No branches or pull requests

2 participants