Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
92 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
ecdb909
feat(meos): add EVER_EQ/GE/GT/LE/LT/NE_TINT_TINT NES operators (W69)
estebanzimanyi Jun 12, 2026
18fa111
feat(meos): add ALWAYS_EQ/GE/GT/LE/LT/NE_TINT_TINT NES operators (W70)
estebanzimanyi Jun 12, 2026
d8bb586
feat(meos): add EVER_EQ/GE/GT/LE/LT/NE_TBIGINT_TBIGINT NES operators …
estebanzimanyi Jun 12, 2026
28b90e5
feat(meos): add ALWAYS_EQ/GE/GT/LE/LT/NE_TBIGINT_TBIGINT NES operator…
estebanzimanyi Jun 12, 2026
e9c40b4
feat(meos): add EVER/ALWAYS_EQ/GE/GT/LE/LT/NE reversed scalar NES ope…
estebanzimanyi Jun 12, 2026
db15eb1
feat(meos): add EVER/ALWAYS_EQ/NE_{TBOOL_BOOL,BOOL_TBOOL} NES operato…
estebanzimanyi Jun 12, 2026
9d6b7d1
feat(meos): add EVER/ALWAYS_{EQ,GE,GT,LE,LT,NE}_TEMPORAL_TEMPORAL NES…
estebanzimanyi Jun 12, 2026
edfa5b8
feat(meos): add TNOT_TBOOL, TAND_{BOOL_TBOOL,TBOOL_BOOL,TBOOL_TBOOL},…
estebanzimanyi Jun 12, 2026
a1f67d7
feat(meos): add TEQ_{BOOL_TBOOL,TBOOL_BOOL,FLOAT_TFLOAT,TFLOAT_FLOAT,…
estebanzimanyi Jun 12, 2026
0597119
feat(meos): add TNE_{BOOL_TBOOL,TBOOL_BOOL,FLOAT_TFLOAT,TFLOAT_FLOAT,…
estebanzimanyi Jun 12, 2026
cee15a1
feat(meos): add TGE_{FLOAT_TFLOAT,TFLOAT_FLOAT,INT_TINT,TINT_INT,TEMP…
estebanzimanyi Jun 12, 2026
72c4a48
feat(meos): add TGT_{FLOAT_TFLOAT,TFLOAT_FLOAT,INT_TINT,TINT_INT,TEMP…
estebanzimanyi Jun 12, 2026
bc8909b
feat(meos): add TLE_{FLOAT_TFLOAT,TFLOAT_FLOAT,INT_TINT,TINT_INT,TEMP…
estebanzimanyi Jun 12, 2026
9d9ed4a
feat(meos): add TLT_{FLOAT_TFLOAT,TFLOAT_FLOAT,INT_TINT,TINT_INT,TEMP…
estebanzimanyi Jun 12, 2026
5a9bc71
feat(meos): add TBOOL_TO_TINT NES operator (W92)
estebanzimanyi Jun 12, 2026
923964c
feat(meos): add ttext scalar comparison NES operators (W93)
estebanzimanyi Jun 14, 2026
fb45d5a
feat(meos): add TGE/TGT/TLE/TLT_{TTEXT_TEXT,TEXT_TTEXT} NES operators…
estebanzimanyi Jun 14, 2026
e2d619d
feat(meos): add TTEXT_UPPER/LOWER/INITCAP NES operators (W95)
estebanzimanyi Jun 14, 2026
748fe2f
feat(meos): add TEXTCAT_{TTEXT_TEXT,TEXT_TTEXT,TTEXT_TTEXT} NES opera…
estebanzimanyi Jun 14, 2026
c766121
feat(meos): add GEOM_{INTERSECTS2D,DWITHIN2D,CONTAINS,DISJOINT2D} NES…
estebanzimanyi Jun 14, 2026
953a31a
feat(meos): add GEOM_{COVERS,TOUCHES,INTERSECTS3D,DWITHIN3D,DISTANCE2…
estebanzimanyi Jun 14, 2026
dd2e31f
feat(meos): add GEOM_{LENGTH,PERIMETER} NES operators (W99)
estebanzimanyi Jun 14, 2026
6ce5715
feat(meos): add GEOM_AZIMUTH NES operator (W101)
estebanzimanyi Jun 14, 2026
1978fa5
feat(meos): add GEOG_{AREA,LENGTH,PERIMETER} and GEOM_IS_EMPTY NES op…
estebanzimanyi Jun 14, 2026
c1fe6dc
feat(meos): add AINTERSECTS/ACOVERS/ADISJOINT/ADWITHIN_TGEO_GEO NES o…
estebanzimanyi Jun 14, 2026
ee9ebcc
feat(meos): add EINTERSECTS/ETOUCHES/ECONTAINS/ACONTAINS/ATOUCHES_TGE…
estebanzimanyi Jun 14, 2026
b53d2bd
feat(meos): add GEO_NUM_POINTS/GEOS/SRID/IS_UNITARY, GEO_EQUALS/SAME,…
estebanzimanyi Jun 14, 2026
7cedcbb
feat(meos): add NAD_TGEO_GEO nearest-approach distance NES operator (…
estebanzimanyi Jun 14, 2026
2c39c15
feat(meos): add EVER/ALWAYS_EQ/NE_TGEO_GEO NES operators (W107)
estebanzimanyi Jun 14, 2026
4c387c9
feat(meos): add GEOG_INTERSECTS and GEOG_DWITHIN NES operators (W108)
estebanzimanyi Jun 14, 2026
d2a7057
feat(meos): add GEOM_INTERSECTS, GEOM_DWITHIN, ACOVERS_GEO_TGEO NES o…
estebanzimanyi Jun 14, 2026
0f99561
feat(meos): add H3_GS_POINT_TO_CELL and EVER/ALWAYS_EQ/NE_TH3INDEX_H3…
estebanzimanyi Jun 14, 2026
e1dc393
feat(meos): add TH3INDEX hierarchy and property NES operators (W111)
estebanzimanyi Jun 14, 2026
88db1c0
feat(meos): add TH3INDEX_ARE_NEIGHBOR_CELLS and TH3INDEX_GRID_DISTANC…
estebanzimanyi Jun 15, 2026
dc64004
feat(meos): add tcbuffer_geo spatial predicate NES operators (W113)
estebanzimanyi Jun 15, 2026
cbebc88
feat(meos): add EDWITHIN_TCBUFFER_GEO and ADWITHIN_TCBUFFER_GEO NES o…
estebanzimanyi Jun 15, 2026
4394c40
feat(meos): add tcbuffer_cbuffer spatial predicate NES operators (W115)
estebanzimanyi Jun 15, 2026
f0bbbf0
feat(meos): add tcbuffer_tcbuffer per-event scalar operators (W116)
estebanzimanyi Jun 15, 2026
d08f5a9
feat(meos): add tcbuffer_tcbuffer dwithin and mindistance NES operato…
estebanzimanyi Jun 15, 2026
99570b4
feat(meos): add tnpoint per-event scalar operators for geo and npoint…
estebanzimanyi Jun 15, 2026
0f66071
feat(meos): add tnpoint_tnpoint per-event scalar operators (W119)
estebanzimanyi Jun 15, 2026
dbf488d
feat(meos): add tpose 2D per-event scalar operators for geo and pose …
estebanzimanyi Jun 15, 2026
84d3301
feat(meos): add tpose_tpose 2D per-event scalar operators (W121)
estebanzimanyi Jun 15, 2026
9a7e21d
feat(meos): add trgeometry 2D per-event scalar operators for geo (W122)
estebanzimanyi Jun 15, 2026
a94e180
feat(meos): add trgeometry_trgeometry 2D per-event scalar operators (…
estebanzimanyi Jun 15, 2026
70b9d11
feat(meos): add TPCPOINT per-event spatial predicate NES operators (W…
estebanzimanyi Jun 15, 2026
74120c1
feat(meos): add QUADBIN static cell NES operators (W125)
estebanzimanyi Jun 15, 2026
ecc48ce
feat(meos): add TJSONB_JSONB per-event comparison NES operators (W126)
estebanzimanyi Jun 15, 2026
cb3446a
feat(meos): add TJSONB_TJSONB per-event comparison NES operators (W127)
estebanzimanyi Jun 15, 2026
539f6f8
feat(meos): add unary geometry transform NES operators returning WKT …
estebanzimanyi Jun 15, 2026
c200a8f
feat(meos): add binary geometry set operation NES operators returning…
estebanzimanyi Jun 15, 2026
31ce3b8
feat(meos): add parameterized geometry transform NES operators return…
estebanzimanyi Jun 15, 2026
448db77
feat(meos): add line geometry NES operators (W131)
estebanzimanyi Jun 15, 2026
76b79a2
feat(meos): add geometry constructor and conversion NES operators (W132)
estebanzimanyi Jun 15, 2026
efc39ba
feat(meos): add index-based geometry extraction and collection inters…
estebanzimanyi Jun 15, 2026
fc98632
feat(meos): add geometry format, pipeline, and bounding-radius NES op…
estebanzimanyi Jun 15, 2026
f634f80
feat(meos): add GEOM_RELATE_PATTERN DE-9IM relation NES operator (W135)
estebanzimanyi Jun 16, 2026
368a71b
feat(meos): add tgeo_tgeo 6-arg spatial predicate NES operators (W136)
estebanzimanyi Jun 16, 2026
6d59453
feat(meos): add tgeo_tgeo 7-arg dwithin NES operators (W137)
estebanzimanyi Jun 16, 2026
8f50db3
feat(meos): add H3Index static comparator NES operators (W138)
estebanzimanyi Jun 18, 2026
98cb197
feat(meos): add H3INDEX_OUT NES operator (W139)
estebanzimanyi Jun 18, 2026
53c9672
feat(meos): add H3INDEX_IN NES operator (W140)
estebanzimanyi Jun 18, 2026
5aaaafb
feat(meos): add JSON scalar per-event NES operators (W141)
estebanzimanyi Jun 18, 2026
a968a27
feat(meos): add JSONB scalar per-event NES operators (W142)
estebanzimanyi Jun 18, 2026
60a4d0d
feat(meos): add Span constructor and accessor NES operators (W143)
estebanzimanyi Jun 18, 2026
e82dea2
feat(meos): add Span predicate NES operators (W144)
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