Unreal SDK query builder by JasonAtClockwork · Pull Request #4810 · clockworklabs/SpacetimeDB
Description of Changes
- Added a client-side query builder for the Unreal SDK
- Added typed query-builder subscriptions for Unreal C++ via SubscriptionBuilder.AddQuery(...).Subscribe()
- Added generated Blueprint query-builder support with source query nodes, column nodes, predicates, Where, AddQuery, and Subscribe
- Added Blueprint autocasts at the AddQuery boundary so source-specific Blueprint queries can connect cleanly into the generic subscription builder for better devex in Blueprint
- Synced the Unreal query-builder core with the C++ module implementation
- Updated the copied Unreal core query-builder headers to match the shared C++
- Moved Unreal-specific literal/type adapters out of the shared core copy and into Unreal-specific expansion code
- Added Unreal SDK test coverage and documentation for the new query-builder surface
- Added new test harnesses to start to match the View/ViewPk tests
- Added documentation for the Unreal query builder
API and ABI breaking changes
- No intended API or ABI breaking changes to released Unreal SDK behavior
- Adds a new public client-side query-builder API to the Unreal SDK for C++ and Blueprint
- Raw SQL subscriptions remain available
Expected complexity level and risk
3 - Adds new query-builder surface with large changes to the code-gen, the risk here is keeping the C++ module core mirrored to the SDK in the future
Testing
What I've done so far:
- Updated and ran the following tests:
- TestClientEditor
- TestViewClientEditor
- TestViewPkClientEditor
- Ran the Unreal harness suites covering the query-builder client paths
- Verified the generated Unreal query-builder surface in both C++ and Blueprint testing supported fields with a small sample project
Should be done at least once by a reviewer:
- Re-run the full
sdk-unreal-test-harnessas it's disabled in CI - Play with the C++ and Blueprint versions in a small Unreal project