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

fix(cpp-client) Update C++ and R client #5807

Merged
merged 16 commits into from
Jul 18, 2024

Conversation

jcferretti
Copy link
Member

No description provided.

jcferretti and others added 13 commits July 18, 2024 16:24
* Replicate failing python unit test in C++.

* Removed unused code from server.cc

* undo change.

* Tweak

* shared_ptr

* Review comments.

* Followup review comments.
…aven#5472)

* Update C++ dependencies, roughly matching ones used in python.

* Update protoc-base.

* Recover comment lost by mistake.

* Updated protoc version.

* Update protobuf.

* getting closer...

* Update protoc base image.

* Update Classpaths.groovy.

* One more place.

* One more more place.

* Update C++ protos.

* Update cpp-clients-multi base image.

* Update build-dependencies.sh.

* Move R client to new flight API.
…eephaven#5685)

* C++ Client: support for interop, plus some interop test entry points

* respond to review feedback

* review feedback: I -> we
This PR provides the entry points for the "C API" to the Deephaven C++
library.

Notes for the reviewer: `client_options_interop.[cc,h]` is probably the
easiest to understand so I would recommend starting there. Then
`client_interop.[cc,h]`

In many cases this is just writing "glue code" mechanically just by
looking at the signatures of the methods in the C++ classes.

In a few cases we have made exceptions for simplicity.

For example `TableHandle::Sort` takes a vector of `SortPair`. For the C
API, we *could* take an array of SortPair objects. But I decided it was
simpler to decompose the SortPair object into its three components:
`column_name_`, `direction_`, and `abs_`. So, for the Sort() C API we
just pass in three arrays: of column names, of directions, and of abs,
plus their length. Then the C API doesn't need to define a "SortPair"
object at all.

There is also a bunch of template-heavy code involving changes to
`TableMaker`. The C# code relies on this heavily (to make temporary
tables for use in tests). You may not need to drill into this code,
because it is complicated.

Currently the C++ test code, such as in `select_test.cc`, uses a call to
the templated `CompareTables` method to compare actual tables to
expected tables. In a future PR I will modify all this code to use
`TableMaker` instead. At that time it will probably be more obvious how
`TableMaker` is used.
For Windows build:
* Update protobuf to 4.25.1
* Update vcpkg itself to current SHA
* Change README.md so that user builds with type `RelWithDebInfo`
…es (deephaven#5792)

I modified the deephaven_enterprise C++ client cmake code to remove the
explicit requirements for dependencies that are only transitive and
PRIVATE from deephaven (core) C++ client cmake (eg, Immer). The new
config file allowed those to be removed in the DHE side.

The new code in the toplevel CMakeLists.txt for deephaven was inspired
by the cmake doc here:

https://cmake.org/cmake/help/latest/manual/cmake-packages.7.html#creating-packages
and

https://cmake.org/cmake/help/latest/manual/cmake-packages.7.html#creating-a-package-configuration-file
rcaudy
rcaudy previously approved these changes Jul 18, 2024
@jcferretti jcferretti changed the title fix(cpp-client) Update C++ client fix(cpp-client) Update C++ and R client Jul 18, 2024
rcaudy
rcaudy previously approved these changes Jul 18, 2024
@jcferretti jcferretti self-assigned this Jul 18, 2024
@devinrsmith devinrsmith merged commit 1d25255 into deephaven:rc/v0.35.x Jul 18, 2024
16 of 18 checks passed
@github-actions github-actions bot locked and limited conversation to collaborators Jul 19, 2024
@deephaven-internal
Copy link
Contributor

Labels indicate documentation is required. Issues for documentation have been opened:

Community: deephaven/deephaven-docs-community#268

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants