Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
89 commits
Select commit Hold shift + click to select a range
6b54911
fix(ci): make the Nix build work with NES_ENABLE_MEOS=OFF and stock p…
estebanzimanyi Jun 11, 2026
a23e829
feat(nebula): wire per-event tfloat_sin/tfloat_cos/tfloat_tan (W44)
estebanzimanyi Jun 11, 2026
be23758
feat(nebula): wire per-event tfloat_ceil/floor/radians/degrees (W45)
estebanzimanyi Jun 11, 2026
384c4c3
feat(nebula): wire per-event tfloat_shift_value/scale_value (W46)
estebanzimanyi Jun 12, 2026
02ee116
feat(meos): add TNUMBER_ABS and TFLOAT_SHIFT_SCALE_VALUE NES operator…
estebanzimanyi Jun 12, 2026
6ff9b08
feat(meos): add ADD/SUB/MUL/DIV_TFLOAT_FLOAT NES operators (W48)
estebanzimanyi Jun 12, 2026
d376592
feat(meos): add ADD/SUB/MUL/DIV_TNUMBER_TNUMBER NES operators (W49)
estebanzimanyi Jun 12, 2026
69172ab
feat(meos): add TEMPORAL_ROUND, TDISTANCE_TFLOAT_FLOAT, TDISTANCE_TNU…
estebanzimanyi Jun 12, 2026
b789caf
feat(meos): add ADD/SUB/MUL/DIV_TINT_INT NES operators (W51)
estebanzimanyi Jun 12, 2026
e64267a
feat(meos): add TDISTANCE_TINT_INT, TINT_SHIFT_VALUE, TINT_SCALE_VALU…
estebanzimanyi Jun 12, 2026
9be6759
feat(meos): add TFLOAT_TO_TINT and TINT_TO_TFLOAT type-conversion NES…
estebanzimanyi Jun 12, 2026
e53bbc1
feat(meos): add tbigint type-conversion NES operators TBIGINT_TO_TINT…
estebanzimanyi Jun 12, 2026
677ea80
feat(meos): add ADD/SUB/MUL/DIV_TBIGINT_BIGINT NES operators (W55)
estebanzimanyi Jun 12, 2026
6e878c9
feat(meos): add TBIGINT_SHIFT_VALUE, TBIGINT_SCALE_VALUE, TBIGINT_SHI…
estebanzimanyi Jun 12, 2026
09eb347
feat(meos): add ADD/SUB/MUL/DIV_FLOAT_TFLOAT reversed NES operators (…
estebanzimanyi Jun 12, 2026
e7a09dc
feat(meos): add ADD/SUB/MUL/DIV_INT_TINT reversed NES operators (W58)
estebanzimanyi Jun 12, 2026
8a4f6c9
feat(meos): add ADD/SUB/MUL/DIV_BIGINT_TBIGINT reversed NES operators…
estebanzimanyi Jun 12, 2026
5d3a3c9
feat(meos): add TFLOAT_EXP, TFLOAT_LN, TFLOAT_LOG10 NES operators (W60)
estebanzimanyi Jun 12, 2026
367ebad
feat(meos): add EVER_EQ/GE/GT/LE/LT/NE_TFLOAT_FLOAT NES operators (W61)
estebanzimanyi Jun 12, 2026
2c9998d
feat(meos): add ALWAYS_EQ/GE/GT/LE/LT/NE_TFLOAT_FLOAT NES operators (…
estebanzimanyi Jun 12, 2026
d5446af
feat(meos): add EVER_EQ/GE/GT/LE/LT/NE_TINT_INT NES operators (W63)
estebanzimanyi Jun 12, 2026
0dc2fef
feat(meos): add ALWAYS_EQ/GE/GT/LE/LT/NE_TINT_INT NES operators (W64)
estebanzimanyi Jun 12, 2026
346aed1
feat(meos): add EVER_EQ/GE/GT/LE/LT/NE_TBIGINT_BIGINT NES operators (…
estebanzimanyi Jun 12, 2026
d8510a7
feat(meos): add ALWAYS_EQ/GE/GT/LE/LT/NE_TBIGINT_BIGINT NES operators…
estebanzimanyi Jun 12, 2026
255e579
feat(meos): add EVER_EQ/GE/GT/LE/LT/NE_TFLOAT_TFLOAT NES operators (W67)
estebanzimanyi Jun 12, 2026
5331eb2
feat(meos): add ALWAYS_EQ/GE/GT/LE/LT/NE_TFLOAT_TFLOAT NES operators …
estebanzimanyi Jun 12, 2026
dcd9896
feat(meos): add EVER_EQ/GE/GT/LE/LT/NE_TINT_TINT NES operators (W69)
estebanzimanyi Jun 12, 2026
fa56923
feat(meos): add ALWAYS_EQ/GE/GT/LE/LT/NE_TINT_TINT NES operators (W70)
estebanzimanyi Jun 12, 2026
dc6cb88
feat(meos): add EVER_EQ/GE/GT/LE/LT/NE_TBIGINT_TBIGINT NES operators …
estebanzimanyi Jun 12, 2026
0718ec5
feat(meos): add ALWAYS_EQ/GE/GT/LE/LT/NE_TBIGINT_TBIGINT NES operator…
estebanzimanyi Jun 12, 2026
b3eeb8f
feat(meos): add EVER/ALWAYS_EQ/GE/GT/LE/LT/NE reversed scalar NES ope…
estebanzimanyi Jun 12, 2026
becbb61
feat(meos): add EVER/ALWAYS_EQ/NE_{TBOOL_BOOL,BOOL_TBOOL} NES operato…
estebanzimanyi Jun 12, 2026
6d23da3
feat(meos): add EVER/ALWAYS_{EQ,GE,GT,LE,LT,NE}_TEMPORAL_TEMPORAL NES…
estebanzimanyi Jun 12, 2026
5a69847
feat(meos): add TNOT_TBOOL, TAND_{BOOL_TBOOL,TBOOL_BOOL,TBOOL_TBOOL},…
estebanzimanyi Jun 12, 2026
ebec2f0
feat(meos): add TEQ_{BOOL_TBOOL,TBOOL_BOOL,FLOAT_TFLOAT,TFLOAT_FLOAT,…
estebanzimanyi Jun 12, 2026
74cdc7d
feat(meos): add TNE_{BOOL_TBOOL,TBOOL_BOOL,FLOAT_TFLOAT,TFLOAT_FLOAT,…
estebanzimanyi Jun 12, 2026
ddbe27f
feat(meos): add TGE_{FLOAT_TFLOAT,TFLOAT_FLOAT,INT_TINT,TINT_INT,TEMP…
estebanzimanyi Jun 12, 2026
eb693aa
feat(meos): add TGT_{FLOAT_TFLOAT,TFLOAT_FLOAT,INT_TINT,TINT_INT,TEMP…
estebanzimanyi Jun 12, 2026
31ded19
feat(meos): add TLE_{FLOAT_TFLOAT,TFLOAT_FLOAT,INT_TINT,TINT_INT,TEMP…
estebanzimanyi Jun 12, 2026
3db88c3
feat(meos): add TLT_{FLOAT_TFLOAT,TFLOAT_FLOAT,INT_TINT,TINT_INT,TEMP…
estebanzimanyi Jun 12, 2026
9047ef9
feat(meos): add TBOOL_TO_TINT NES operator (W92)
estebanzimanyi Jun 12, 2026
571815b
feat(meos): add ttext scalar comparison NES operators (W93)
estebanzimanyi Jun 14, 2026
e20b78b
feat(meos): add TGE/TGT/TLE/TLT_{TTEXT_TEXT,TEXT_TTEXT} NES operators…
estebanzimanyi Jun 14, 2026
fa86068
feat(meos): add TTEXT_UPPER/LOWER/INITCAP NES operators (W95)
estebanzimanyi Jun 14, 2026
2a13a82
feat(meos): add TEXTCAT_{TTEXT_TEXT,TEXT_TTEXT,TTEXT_TTEXT} NES opera…
estebanzimanyi Jun 14, 2026
665c857
feat(meos): add GEOM_{INTERSECTS2D,DWITHIN2D,CONTAINS,DISJOINT2D} NES…
estebanzimanyi Jun 14, 2026
d484f13
feat(meos): add GEOM_{COVERS,TOUCHES,INTERSECTS3D,DWITHIN3D,DISTANCE2…
estebanzimanyi Jun 14, 2026
6ccb81b
feat(meos): add GEOM_{LENGTH,PERIMETER} NES operators (W99)
estebanzimanyi Jun 14, 2026
ecd7543
feat(meos): add GEOM_AZIMUTH NES operator (W101)
estebanzimanyi Jun 14, 2026
b5a8d91
feat(meos): add GEOG_{AREA,LENGTH,PERIMETER} and GEOM_IS_EMPTY NES op…
estebanzimanyi Jun 14, 2026
17d2db6
feat(meos): add AINTERSECTS/ACOVERS/ADISJOINT/ADWITHIN_TGEO_GEO NES o…
estebanzimanyi Jun 14, 2026
9ea1a8c
feat(meos): add EINTERSECTS/ETOUCHES/ECONTAINS/ACONTAINS/ATOUCHES_TGE…
estebanzimanyi Jun 14, 2026
7a9034e
feat(meos): add GEO_NUM_POINTS/GEOS/SRID/IS_UNITARY, GEO_EQUALS/SAME,…
estebanzimanyi Jun 14, 2026
8794149
feat(meos): add NAD_TGEO_GEO nearest-approach distance NES operator (…
estebanzimanyi Jun 14, 2026
3ce2797
feat(meos): add EVER/ALWAYS_EQ/NE_TGEO_GEO NES operators (W107)
estebanzimanyi Jun 14, 2026
06f7e0c
feat(meos): add GEOG_INTERSECTS and GEOG_DWITHIN NES operators (W108)
estebanzimanyi Jun 14, 2026
859b916
feat(meos): add GEOM_INTERSECTS, GEOM_DWITHIN, ACOVERS_GEO_TGEO NES o…
estebanzimanyi Jun 14, 2026
3be2f77
feat(meos): add H3_GS_POINT_TO_CELL and EVER/ALWAYS_EQ/NE_TH3INDEX_H3…
estebanzimanyi Jun 14, 2026
9dd11b3
feat(meos): add TH3INDEX hierarchy and property NES operators (W111)
estebanzimanyi Jun 14, 2026
74e82f0
feat(meos): add TH3INDEX_ARE_NEIGHBOR_CELLS and TH3INDEX_GRID_DISTANC…
estebanzimanyi Jun 15, 2026
3dc0ec1
feat(meos): add tcbuffer_geo spatial predicate NES operators (W113)
estebanzimanyi Jun 15, 2026
bd3b1bb
feat(meos): add EDWITHIN_TCBUFFER_GEO and ADWITHIN_TCBUFFER_GEO NES o…
estebanzimanyi Jun 15, 2026
04ee1a1
feat(meos): add tcbuffer_cbuffer spatial predicate NES operators (W115)
estebanzimanyi Jun 15, 2026
3ee5855
feat(meos): add tcbuffer_tcbuffer per-event scalar operators (W116)
estebanzimanyi Jun 15, 2026
fb1b7c9
feat(meos): add tcbuffer_tcbuffer dwithin and mindistance NES operato…
estebanzimanyi Jun 15, 2026
cb56769
feat(meos): add tnpoint per-event scalar operators for geo and npoint…
estebanzimanyi Jun 15, 2026
ad801ca
feat(meos): add tnpoint_tnpoint per-event scalar operators (W119)
estebanzimanyi Jun 15, 2026
c3b1120
feat(meos): add tpose 2D per-event scalar operators for geo and pose …
estebanzimanyi Jun 15, 2026
715a7df
feat(meos): add tpose_tpose 2D per-event scalar operators (W121)
estebanzimanyi Jun 15, 2026
d2444e5
feat(meos): add trgeometry 2D per-event scalar operators for geo (W122)
estebanzimanyi Jun 15, 2026
04cc036
feat(meos): add trgeometry_trgeometry 2D per-event scalar operators (…
estebanzimanyi Jun 15, 2026
9499493
feat(meos): add TPCPOINT per-event spatial predicate NES operators (W…
estebanzimanyi Jun 15, 2026
524dd26
feat(meos): add QUADBIN static cell NES operators (W125)
estebanzimanyi Jun 15, 2026
2aeecb8
feat(meos): add TJSONB_JSONB per-event comparison NES operators (W126)
estebanzimanyi Jun 15, 2026
04d8b9a
feat(meos): add TJSONB_TJSONB per-event comparison NES operators (W127)
estebanzimanyi Jun 15, 2026
5d2cb41
feat(meos): add unary geometry transform NES operators returning WKT …
estebanzimanyi Jun 15, 2026
438e940
feat(meos): add binary geometry set operation NES operators returning…
estebanzimanyi Jun 15, 2026
c908f21
feat(meos): add parameterized geometry transform NES operators return…
estebanzimanyi Jun 15, 2026
6c6cf0f
feat(meos): add line geometry NES operators (W131)
estebanzimanyi Jun 15, 2026
277771b
feat(meos): add geometry constructor and conversion NES operators (W132)
estebanzimanyi Jun 15, 2026
dc973b4
feat(meos): add index-based geometry extraction and collection inters…
estebanzimanyi Jun 15, 2026
d4f6980
feat(meos): add geometry format, pipeline, and bounding-radius NES op…
estebanzimanyi Jun 15, 2026
5f129ac
feat(meos): add GEOM_RELATE_PATTERN DE-9IM relation NES operator (W135)
estebanzimanyi Jun 16, 2026
5bc5348
feat(meos): add tgeo_tgeo 6-arg spatial predicate NES operators (W136)
estebanzimanyi Jun 16, 2026
f56c652
feat(meos): add tgeo_tgeo 7-arg dwithin NES operators (W137)
estebanzimanyi Jun 16, 2026
6606a45
feat(meos): add H3Index static comparator NES operators (W138)
estebanzimanyi Jun 18, 2026
ac47b82
feat(meos): add H3INDEX_OUT NES operator (W139)
estebanzimanyi Jun 18, 2026
4b2400e
feat(meos): add H3INDEX_IN NES operator (W140)
estebanzimanyi Jun 18, 2026
e72b6fc
feat(meos): add JSON scalar per-event NES operators (W141)
estebanzimanyi Jun 18, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
7 changes: 7 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -239,6 +239,13 @@ endif ()

add_custom_target(build_all_plugins)

# Declared here so add_compile_definitions reaches all sibling nes-* targets.
# nes-plugins/CMakeLists.txt re-declares the same option (no-op when cached).
option(NES_ENABLE_MEOS "Enable MEOS plugin (requires libmeos installed on the system)" ON)
if(NES_ENABLE_MEOS)
add_compile_definitions(NES_ENABLE_MEOS)
endif()

# Add target for common lib, which contains a minimal set
# of shared functionality used by all components of nes
file(GLOB NES_DIRECTORIES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "nes-*")
Expand Down
4 changes: 4 additions & 0 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@
tbb
python3
openjdk21
paho-mqtt-c
paho-mqtt-cpp
]) ++ [ follyPkg antlr4Pkg ];

antlr4Jar = pkgs.fetchurl {
Expand Down Expand Up @@ -244,6 +246,7 @@
"-DNES_ENABLES_TESTS=ON"
"-DCMAKE_MODULE_PATH=${libdwarfModule}/share/cmake/Modules"
"-DANTLR4_JAR_LOCATION=${antlr4Jar}"
"-DNES_ENABLE_MEOS=OFF"
];

enableParallelBuilding = true;
Expand Down Expand Up @@ -347,6 +350,7 @@
"-DLLVM_DIR=${commonCmakeEnv.LLVM_DIR}"
"-DANTLR4_JAR_LOCATION=${antlr4Jar}"
"-DCMAKE_MODULE_PATH=${libdwarfModule}/share/cmake/Modules"
"-DNES_ENABLE_MEOS=OFF"
];
shellHook = ''
unset NES_PREBUILT_VCPKG_ROOT
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
/*
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

#pragma once

#include <Functions/LogicalFunction.hpp>
#include <string_view>
#include <utility>
#include <vector>

namespace NES {

/**
* @brief Returns 1.0 if the tcbuffer always contains the static cbuffer, 0.0 otherwise.
*
* Args: (lon1:FLOAT64, lat1:FLOAT64, r1:FLOAT64, ts:UINT64,
* lon2:FLOAT64, lat2:FLOAT64, r2:FLOAT64) -> FLOAT64.
*/
class AcontainsTcbufferCbufferLogicalFunction : public LogicalFunctionConcept {
public:
static constexpr std::string_view NAME = "AcontainsTcbufferCbuffer";

AcontainsTcbufferCbufferLogicalFunction(LogicalFunction lon1, LogicalFunction lat1, LogicalFunction r1,
LogicalFunction ts,
LogicalFunction lon2, LogicalFunction lat2, LogicalFunction r2);

DataType getDataType() const override;
LogicalFunction withDataType(const DataType& dataType) const override;
std::vector<LogicalFunction> getChildren() const override;
LogicalFunction withChildren(const std::vector<LogicalFunction>& children) const override;
std::string_view getType() const override;
bool operator==(const LogicalFunctionConcept& rhs) const override;
std::string explain(ExplainVerbosity verbosity) const override;
LogicalFunction withInferredDataType(const Schema& schema) const override;
SerializableFunction serialize() const override;

private:
DataType dataType;
std::vector<LogicalFunction> parameters;
};

} // namespace NES
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
/*
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

#pragma once

#include <Functions/LogicalFunction.hpp>
#include <string_view>
#include <utility>
#include <vector>

namespace NES {

/**
* @brief Returns 1.0 if the tcbuffer always contains the static geometry, 0.0 otherwise.
*
* Args: (lon:FLOAT64, lat:FLOAT64, radius:FLOAT64, ts:UINT64, wkt:VARCHAR) -> FLOAT64.
*/
class AcontainsTcbufferGeoLogicalFunction : public LogicalFunctionConcept {
public:
static constexpr std::string_view NAME = "AcontainsTcbufferGeo";

AcontainsTcbufferGeoLogicalFunction(LogicalFunction lon, LogicalFunction lat,
LogicalFunction radius, LogicalFunction ts,
LogicalFunction wkt);

DataType getDataType() const override;
LogicalFunction withDataType(const DataType& dataType) const override;
std::vector<LogicalFunction> getChildren() const override;
LogicalFunction withChildren(const std::vector<LogicalFunction>& children) const override;
std::string_view getType() const override;
bool operator==(const LogicalFunctionConcept& rhs) const override;
std::string explain(ExplainVerbosity verbosity) const override;
LogicalFunction withInferredDataType(const Schema& schema) const override;
SerializableFunction serialize() const override;

private:
DataType dataType;
std::vector<LogicalFunction> parameters;
};

} // namespace NES
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
/*
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

#pragma once

#include <Functions/LogicalFunction.hpp>
#include <string_view>
#include <utility>
#include <vector>

namespace NES {

/**
* @brief Returns 1.0 if temporal geometry always contains the static geometry.
*
* Args: (lon:FLOAT64, lat:FLOAT64, ts:UINT64, wkt:VARCHAR) -> FLOAT64.
*/
class AcontainsTgeoGeoLogicalFunction : public LogicalFunctionConcept {
public:
static constexpr std::string_view NAME = "AcontainsTgeoGeo";

AcontainsTgeoGeoLogicalFunction(LogicalFunction lon, LogicalFunction lat,
LogicalFunction ts, LogicalFunction wkt);

DataType getDataType() const override;
LogicalFunction withDataType(const DataType& dataType) const override;
std::vector<LogicalFunction> getChildren() const override;
LogicalFunction withChildren(const std::vector<LogicalFunction>& children) const override;
std::string_view getType() const override;
bool operator==(const LogicalFunctionConcept& rhs) const override;
std::string explain(ExplainVerbosity verbosity) const override;
LogicalFunction withInferredDataType(const Schema& schema) const override;
SerializableFunction serialize() const override;

private:
DataType dataType;
std::vector<LogicalFunction> parameters;
};

} // namespace NES
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
/*
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

#pragma once

#include <Functions/LogicalFunction.hpp>
#include <string_view>
#include <utility>
#include <vector>

namespace NES {

/**
* @brief Tests whether a temporal geometry always contains another.
*/
class AcontainsTgeoTgeoLogicalFunction : public LogicalFunctionConcept {
public:
static constexpr std::string_view NAME = "AcontainsTgeoTgeo";

AcontainsTgeoTgeoLogicalFunction(LogicalFunction lon1, LogicalFunction lat1, LogicalFunction ts1, LogicalFunction lon2, LogicalFunction lat2, LogicalFunction ts2);

DataType getDataType() const override;
LogicalFunction withDataType(const DataType& dataType) const override;
std::vector<LogicalFunction> getChildren() const override;
LogicalFunction withChildren(const std::vector<LogicalFunction>& children) const override;
std::string_view getType() const override;
bool operator==(const LogicalFunctionConcept& rhs) const override;
std::string explain(ExplainVerbosity verbosity) const override;
LogicalFunction withInferredDataType(const Schema& schema) const override;
SerializableFunction serialize() const override;

private:
DataType dataType;
std::vector<LogicalFunction> parameters;
};

} // namespace NES
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
/*
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

#pragma once

#include <Functions/LogicalFunction.hpp>
#include <string_view>
#include <utility>
#include <vector>

namespace NES {

/**
* @brief Returns 1.0 if the static geometry always covers the temporal geometry instant.
*
* Args: (wkt:VARCHAR, lon:FLOAT64, lat:FLOAT64, ts:UINT64) -> FLOAT64.
*/
class AcoversGeoTgeoLogicalFunction : public LogicalFunctionConcept {
public:
static constexpr std::string_view NAME = "AcoversGeoTgeo";

AcoversGeoTgeoLogicalFunction(LogicalFunction wkt, LogicalFunction lon,
LogicalFunction lat, LogicalFunction ts);

DataType getDataType() const override;
LogicalFunction withDataType(const DataType& dataType) const override;
std::vector<LogicalFunction> getChildren() const override;
LogicalFunction withChildren(const std::vector<LogicalFunction>& children) const override;
std::string_view getType() const override;
bool operator==(const LogicalFunctionConcept& rhs) const override;
std::string explain(ExplainVerbosity verbosity) const override;
LogicalFunction withInferredDataType(const Schema& schema) const override;
SerializableFunction serialize() const override;

private:
DataType dataType;
std::vector<LogicalFunction> parameters;
};

} // namespace NES
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
/*
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

#pragma once

#include <Functions/LogicalFunction.hpp>
#include <string_view>
#include <utility>
#include <vector>

namespace NES {

/**
* @brief Returns 1.0 if the tcbuffer always covers the static cbuffer, 0.0 otherwise.
*
* Args: (lon1:FLOAT64, lat1:FLOAT64, r1:FLOAT64, ts:UINT64,
* lon2:FLOAT64, lat2:FLOAT64, r2:FLOAT64) -> FLOAT64.
*/
class AcoversTcbufferCbufferLogicalFunction : public LogicalFunctionConcept {
public:
static constexpr std::string_view NAME = "AcoversTcbufferCbuffer";

AcoversTcbufferCbufferLogicalFunction(LogicalFunction lon1, LogicalFunction lat1, LogicalFunction r1,
LogicalFunction ts,
LogicalFunction lon2, LogicalFunction lat2, LogicalFunction r2);

DataType getDataType() const override;
LogicalFunction withDataType(const DataType& dataType) const override;
std::vector<LogicalFunction> getChildren() const override;
LogicalFunction withChildren(const std::vector<LogicalFunction>& children) const override;
std::string_view getType() const override;
bool operator==(const LogicalFunctionConcept& rhs) const override;
std::string explain(ExplainVerbosity verbosity) const override;
LogicalFunction withInferredDataType(const Schema& schema) const override;
SerializableFunction serialize() const override;

private:
DataType dataType;
std::vector<LogicalFunction> parameters;
};

} // namespace NES
Loading
Loading