prestodb / presto

The official home of the Presto distributed SQL query engine for big data
http://prestodb.io
Apache License 2.0
16.04k stars 5.38k forks source link

[docs] Add doc for CMake flag PRESTO_ENABLE_REMOTE_FUNCTIONS #23689

Open steveburnett opened 1 month ago

steveburnett commented 1 month ago

The documentation for Presto C++ Remote Function Execution does not mention the CMake flag PRESTO_ENABLE_REMOTE_FUNCTIONS that enables this functionality.

The Presto C++ JWT authentication support doc also does not mention a needed CMake flag.

Other Presto C++ CMake flags in CMakeLists.txt may need documentation. While some of these - such as the JWT flag, and PRESTO_STATS_REPORTER_TYPE=PROMETHEUS - are documented in the presto-native-execution README, not all of the CMake flags in CMakeLists.txt are documented in the presto-native-execution README.

Expected Behavior or Use Case

PRESTO_ENABLE_REMOTE_FUNCTIONS should be documented somewhere. Other CMake flags may also need to be documented.

Presto Component, Service, or Connector

Documentation.

Possible Implementation

Further work to consider, maybe to be addressed in a separate PR from the above:

Context

If Presto C++ is built without the CMake flag PRESTO_ENABLE_REMOTE_FUNCTIONS, the Presto C++ Remote Function Execution functions are not available. The Presto C++ Remote Function Execution does not mention this so readers of Presto C++ Remote Function Execution may not realize why, or how to enable these functions.

steveburnett commented 1 month ago

@majetideepak, @aditi-pandit, please review and provide feedback, changes, and edits, and invite others to do the same, as you feel appropriate. Thanks!

tdcmeehan commented 1 month ago

I think in general, we should list this as a limitation of Prestissimo--unlike Presto, in Prestissimo you must build the entire C++ executable with the flag relevant to your organization. i.e. what was once a runtime toggle has become a build time toggle.

majetideepak commented 1 month ago

@tdcmeehan Most of these are both runtime and build toggle. We keep build toggles to save on build time and minimize dependencies.

tdcmeehan commented 1 month ago

@majetideepak got it. Then does it make sense to document these in user facing documentation, or should we just leave it in the README?

majetideepak commented 1 month ago

I like the arrow approach. We should add a document page just for building. We specify all the build flags here. https://arrow.apache.org/docs/developers/cpp/building.html

We then specify the runtime configuration along with the feature documentation.

majetideepak commented 1 month ago

I don't think README is the right spot for any documentation. We can link to the building.html from the README.

tdcmeehan commented 1 month ago

@majetideepak thinking of our ideal end state, do we expect typical users of Prestissimo to build it? Arrow, as a library, has this expectation, but do we expect that of Prestissimo users?

majetideepak commented 1 month ago

@tdcmeehan I expect data engineers to want to know how to build. DuckDB https://duckdb.org/docs/dev/building/build_instructions.html has a page as well.