Skip to content

feat(nebula): full canonical per-event operator surface generated from the master IDL off main#183

Closed
estebanzimanyi wants to merge 3 commits into
MobilityDB:mainfrom
estebanzimanyi:consol/nebula-fullgen-main
Closed

feat(nebula): full canonical per-event operator surface generated from the master IDL off main#183
estebanzimanyi wants to merge 3 commits into
MobilityDB:mainfrom
estebanzimanyi:consol/nebula-fullgen-main

Conversation

@estebanzimanyi

Copy link
Copy Markdown
Member

This branch proves the whole canonical per-event MEOS operator surface is generator-emittable off main. It carries the Nix build fix that gates MEOS-specific plugins and the nes-meos link behind NES_ENABLE_MEOS and provides stock paho-mqtt-cpp, the tools/codegen generator and its master-IDL descriptors, a codegen drift-guard workflow that regenerates the surface and asserts it equals the committed tree on every pull request, and the full generated surface itself. tools/codegen/gen_all.py regenerates 763 per-event logical and physical operators plus their CMakeLists plugin registrations and AntlrSQL grammar and parser dispatch glue from the committed descriptors in one idempotent run, with the physical MEOS operators registered inside the NES_ENABLE_MEOS guard so the surface builds on Nix with MEOS disabled.

…aho-mqtt-cpp

The Nix environment provides paho-mqtt-cpp as a shared-only library and does
not include libmeos.  Four changes make the build pass:

- flake.nix: add stock paho-mqtt-c + paho-mqtt-cpp to baseThirdPartyDeps;
  pass -DNES_ENABLE_MEOS=OFF in both defaultPackage and devShell cmakeFlags.

- nes-plugins/CMakeLists.txt: introduce NES_ENABLE_MQTT and NES_ENABLE_MEOS
  options that gate the respective plugin subdirectories via
  activate_optional_plugin().

- nes-plugins/Sources/MQTTSource, nes-plugins/Sinks/MQTTSink: select
  PahoMqttCpp::paho-mqttpp3-static when available, fall back to the shared
  PahoMqttCpp::paho-mqttpp3 target (Nix only ships the shared variant).

- nes-physical-operators: gate all MEOS-specific add_plugin calls and the
  nes-meos link behind if(NES_ENABLE_MEOS) in three CMakeLists files
  (top-level, Functions/Meos, Aggregation/Function/Meos).

- CMakeLists.txt (root): declare option(NES_ENABLE_MEOS) and
  add_compile_definitions(NES_ENABLE_MEOS) before the nes-* subdirectory
  loop so the preprocessor symbol is visible to all sibling components.

- nes-query-optimizer/LowerToPhysicalWindowedAggregation.cpp: guard the
  TemporalSequenceAggregationPhysicalFunction include and instantiation
  with #ifdef NES_ENABLE_MEOS so the translation unit compiles and links
  when MEOS is disabled.
The tools/codegen generator regenerates the full per-event MEOS operator
surface from the committed IDL descriptors in one run, and the drift guard
workflow asserts the committed operators equal the generator output on every
pull request.
…m the master IDL

The complete per-event MEOS operator surface is generated onto main by
tools/codegen/gen_all.py from the committed master IDL descriptors. Logical and
physical operator layers, the CMakeLists plugin registrations, and the AntlrSQL
grammar and parser dispatch glue are all emitted from the descriptors, with the
physical MEOS operators gated behind NES_ENABLE_MEOS.
@estebanzimanyi
estebanzimanyi force-pushed the consol/nebula-fullgen-main branch from 43d7fd7 to 0494b29 Compare July 2, 2026 14:42
@estebanzimanyi

Copy link
Copy Markdown
Member Author

Superseded. The per-event MEOS operator surface is delivered as a generator-derived one-change PR stack: the Nix build fix (#171), the operator generator (tools/codegen), and the canonical 615-op generated surface (verified generator==committed, Nix Build green). This evidence/verification PR is folded into that deliverable.

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

Successfully merging this pull request may close these issues.

1 participant