Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Misiu/os advance may10 #826

Open
wants to merge 72 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
4439003
Pre-allocate approx_median/quantile in each QueryMemoryInitializer. (…
mattpulver Sep 20, 2023
d469c61
Fix valgrind error Invalid write of size 1 in CudaMgr::loadGpuModuleD…
mattpulver Sep 20, 2023
9de6892
Fixup window value functions' nullability (#7525)
yoonminnam Sep 21, 2023
2d3be01
Add extra version info to dependencies (#7431)
jack-mapd Sep 21, 2023
4f63cee
Fix queries that contain more than one Type C aggregate. (#7535)
mattpulver Sep 23, 2023
20905ef
Add URL_ENCODE and URL_DECODE string functions (#7531)
mattpulver Sep 25, 2023
9434c37
Refactor cpu memory status logging (#7539)
yoonminnam Sep 26, 2023
0b7515f
Add table option validations
paul-aiyedun Sep 19, 2023
e478aca
Missing locking when computing StringDictionary's cache size (#7540)
yoonminnam Sep 27, 2023
dc3a45d
Improve the performance of `LIKE` operator on dictionary-encoded stri…
yoonminnam Sep 27, 2023
b561820
Disallow "CREATE OR REPLACE" DDL (#7195)
AndrewVDo Sep 28, 2023
a043471
Server crashes during codegen for a comparison btw. dictionary-encode…
yoonminnam Sep 29, 2023
326d832
Fix crash: `ENCODE_TEXT(NULL)` (#7543)
yoonminnam Sep 29, 2023
02f2e1c
Add query cache key information to resultset properly (#7527)
yoonminnam Sep 29, 2023
5d9734d
Codegen crashes when query has `TRY_CAST(TEXT_COL TO TEXT)` (#7550)
yoonminnam Sep 30, 2023
9f47ede
Fixup window function's edge case having only literal argument (#7538)
yoonminnam Oct 2, 2023
0eb114a
Improve literal hoisting logic for `bit_is_set` function's arguments …
yoonminnam Oct 3, 2023
78d93f3
Parquet detect: CHECK fails (#7551)
mattgara Oct 5, 2023
9c098ac
Fix cmake 3.27.6 warning re: FindCUDA module removal (#7552)
mattpulver Oct 9, 2023
f0ff03f
Fix cmake warning re: mapd_deps_version.txt not found (#7553)
mattpulver Oct 9, 2023
333f0e8
Support disable table reordering query hint (#7561)
yoonminnam Oct 10, 2023
4a9ab2a
Move ErrorCodes out of Executor and into own file for cuda compatibil…
mattpulver Oct 12, 2023
04e75b8
Expand test bound for non-deterministic R2 calculation. (#7571)
mattpulver Oct 14, 2023
000a9a5
Fix ST_Point() w/ null parameters. (#7568)
mattpulver Oct 16, 2023
23815a2
Add support for OneDAL models using the new OneAPI. (#7496)
brenocfg Oct 16, 2023
e3748c4
Add test case for ostensible tautology predicate
paul-aiyedun Sep 29, 2023
b78d3fb
Chunk metadata recycling for a dict-encoded join query containing tem…
yoonminnam Oct 17, 2023
5d4e279
Enable geo hash join between Point-Polygon (#7569)
yoonminnam Oct 18, 2023
1c4e5ed
ST_Distance does not correctly handle null ST_Point values (#7577)
yoonminnam Oct 21, 2023
d1ec132
`ST_PointN` returns a wrong result or causes a server crash (#7580)
yoonminnam Oct 21, 2023
3572383
Add support for log based system tables auto refresh behind a flag
paul-aiyedun Oct 20, 2023
8f61a34
Change HeavyRF buildings polygon export triangulation from poly2tri t…
simoneves Oct 23, 2023
ceb65a9
Logging memory allocation (#7583)
yoonminnam Oct 23, 2023
84feada
Fix ST_NPoints w/ NULL values (#7581)
yoonminnam Oct 23, 2023
cf21674
Enable log based system tables by default (#7584)
paul-aiyedun Oct 23, 2023
0705389
Move code out of LockMgrImpl.h (#7591)
misiugodfrey Oct 24, 2023
de84336
Change HeavyIQ target build dir, add HeavyIQ Linux deps install step …
Oct 24, 2023
bdbece0
Benchmark report: export inline css to stylesheet for consistency wit…
mattpulver Oct 26, 2023
9ae944d
Fix ST_Transform() w/ null parameters. (#7594)
mattpulver Oct 26, 2023
980a59f
Misc log cleanup (#7600)
yoonminnam Oct 27, 2023
e25522f
(Part 1) Ignore INF in float/double stat (#7604)
simoneves Oct 30, 2023
6468f2e
Bump version to 8.0.0dev (#7606)
steveblackmon-mapd Oct 31, 2023
1c7863f
Fix Windows build (#7609)
simoneves Nov 2, 2023
21566f2
Support REGEXP_COUNT string function and fix string function null lit…
tmostak Oct 24, 2023
547f724
Fix CTAS from UDTF columns that use Flatbuffer storage format (#7615)
pearu Nov 8, 2023
7383d8d
Add Hash operator (only supports string inputs for now)
tmostak Nov 7, 2023
b569c85
`getInIntegerSetExpr` causes a crash if its input col is encoded-stri…
yoonminnam Nov 13, 2023
97f0b1d
Fixup a wrong result when calling `ST_POINTN` with negative index (#7…
yoonminnam Nov 14, 2023
a880213
Fixup regex pattern used to detect string literal in `apply_shim` fun…
yoonminnam Nov 15, 2023
72c3ed5
Accommodate old deps to repair conbench (#7625)
mattpulver Nov 17, 2023
3269a05
Fix ST_Intersects join query crash (#7542)
paul-aiyedun Nov 21, 2023
f75e182
Add CMake flags for Immerse and web server build IDs
paul-aiyedun Nov 21, 2023
f730c1f
Improve S3 Parquet HeavyConnect logging (#7628)
mattgara Nov 27, 2023
7122b01
Fix arch bison++ PKGBUILD path and force make to run on one core (#7635)
cmatzenbach Nov 28, 2023
42e8856
Bump google benchmark to 1.8.3 (#7640)
steveblackmon-mapd Nov 29, 2023
547d3a0
Add Abseil to deps (#7629)
steveblackmon-mapd Nov 30, 2023
8f4551a
Fix GCC 13.2 keyword conflict and arch package updates (#7642)
mattpulver Nov 30, 2023
df29ec9
Script to build Vulkan Loader DSO with older GLIBC (#7641)
simoneves Nov 30, 2023
0e3fab6
Reuse column_cache in OOM handling logic (#7646)
yoonminnam Dec 1, 2023
aba15f5
Reset max_group_buffer_entry_guess iff out-of-slot error was occurred…
yoonminnam Dec 1, 2023
6750b1a
allow controlling the entry count calculated from the NDV estimator (…
yoonminnam Dec 2, 2023
2fd75c9
Better exception message for a correlated subquery that Calcite fails…
yoonminnam Dec 5, 2023
649dd70
Fix BufferMgr can allocate above the configured buffer pool capacity
paul-aiyedun Dec 5, 2023
457b108
Exclude unused attributes in dashboard copies from getAllDashboardsMe…
paul-aiyedun Nov 18, 2023
c77e4c7
Prepare DramArena in the RowSetMemOwner after determining # kernels (…
yoonminnam Dec 7, 2023
fa81772
Add default slab size server configuration parameter (#7651)
paul-aiyedun Dec 8, 2023
319ea7b
Log buddyinfo and related data (#7652)
mattpulver Dec 9, 2023
9c0aa6f
Invalid GeoConstant used in the ST_* operator causes a crash (#7649)
yoonminnam Dec 9, 2023
5f70b90
Use CPU buffer manager for output buffer allocations (#7622)
paul-aiyedun Dec 11, 2023
533c569
Support `ST_NPoints` on a geo constant (#7648)
yoonminnam Dec 12, 2023
ed894d9
Drop Raster Rows with all NULL Bands (#7654)
simoneves Dec 12, 2023
952a8ad
fixed LockMgr break
May 10, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
67 changes: 48 additions & 19 deletions Analyzer/Analyzer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3107,24 +3107,27 @@ std::string OffsetInFragment::toString() const {
}

std::string WindowFrame::toString() const {
std::ostringstream oss;
auto bound_str = bound_expr_ ? bound_expr_->toString() : "None";
return ::toString(bound_type_) + " " + bound_str;
oss << bound_type_ << " " << bound_str;
return oss.str();
}

std::string WindowFunction::toString() const {
std::string result = "WindowFunction(" + ::toString(kind_);
std::ostringstream oss;
oss << "WindowFunction(" << kind_;
for (const auto& arg : args_) {
result += " " + arg->toString();
oss << " " << arg->toString();
}
if (hasFraming()) {
result += " Frame{";
oss << " Frame{";
switch (frame_bound_type_) {
case FrameBoundType::ROW: {
result += "ROW";
oss << "ROW";
break;
}
case FrameBoundType::RANGE: {
result += "RANGE";
oss << "RANGE";
break;
}
default: {
Expand All @@ -3133,17 +3136,17 @@ std::string WindowFunction::toString() const {
break;
}
}
result += " BETWEEN : " + frame_start_bound_->toString();
result += " AND : " + frame_end_bound_->toString();
oss << " BETWEEN : " + frame_start_bound_->toString();
oss << " AND : " + frame_end_bound_->toString();
} else {
if (!order_keys_.empty()) {
result += " (RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)";
oss << " (RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)";
} else {
result += " (RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING)";
oss << " (RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING)";
}
}
result += "} ";
return result + ") ";
oss << "} )";
return oss.str();
}

std::string ArrayExpr::toString() const {
Expand Down Expand Up @@ -3763,6 +3766,11 @@ std::shared_ptr<Analyzer::Expr> RegexpSubstrStringOper::deep_copy() const {
std::dynamic_pointer_cast<Analyzer::StringOper>(StringOper::deep_copy()));
}

std::shared_ptr<Analyzer::Expr> RegexpCountStringOper::deep_copy() const {
return makeExpr<Analyzer::RegexpCountStringOper>(
std::dynamic_pointer_cast<Analyzer::StringOper>(StringOper::deep_copy()));
}

std::shared_ptr<Analyzer::Expr> JsonValueStringOper::deep_copy() const {
return makeExpr<Analyzer::JsonValueStringOper>(
std::dynamic_pointer_cast<Analyzer::StringOper>(StringOper::deep_copy()));
Expand All @@ -3778,6 +3786,16 @@ std::shared_ptr<Analyzer::Expr> Base64DecodeStringOper::deep_copy() const {
std::dynamic_pointer_cast<Analyzer::StringOper>(StringOper::deep_copy()));
}

std::shared_ptr<Analyzer::Expr> UrlEncodeStringOper::deep_copy() const {
return makeExpr<Analyzer::UrlEncodeStringOper>(
std::dynamic_pointer_cast<Analyzer::StringOper>(StringOper::deep_copy()));
}

std::shared_ptr<Analyzer::Expr> UrlDecodeStringOper::deep_copy() const {
return makeExpr<Analyzer::UrlDecodeStringOper>(
std::dynamic_pointer_cast<Analyzer::StringOper>(StringOper::deep_copy()));
}

std::shared_ptr<Analyzer::Expr> TryStringCastOper::deep_copy() const {
return makeExpr<Analyzer::TryStringCastOper>(
std::dynamic_pointer_cast<Analyzer::StringOper>(StringOper::deep_copy()));
Expand All @@ -3798,6 +3816,11 @@ std::shared_ptr<Analyzer::Expr> LevenshteinDistanceStringOper::deep_copy() const
std::dynamic_pointer_cast<Analyzer::StringOper>(StringOper::deep_copy()));
}

std::shared_ptr<Analyzer::Expr> HashStringOper::deep_copy() const {
return makeExpr<Analyzer::HashStringOper>(
std::dynamic_pointer_cast<Analyzer::StringOper>(StringOper::deep_copy()));
}

std::shared_ptr<Analyzer::Expr> FunctionOper::deep_copy() const {
std::vector<std::shared_ptr<Analyzer::Expr>> args_copy;
for (size_t i = 0; i < getArity(); ++i) {
Expand Down Expand Up @@ -4075,13 +4098,19 @@ std::shared_ptr<Analyzer::Constant> GeoConstant::makePhysicalConstant(
std::vector<int> poly_rings;

const bool validate_with_geos_if_available = false;
Geospatial::GeoTypesFactory::getGeoColumns(geo_->getWktString(),
ti,
coords,
bounds,
ring_sizes,
poly_rings,
validate_with_geos_if_available);
bool success =
Geospatial::GeoTypesFactory::getGeoColumns(geo_->getWktString(),
ti,
coords,
bounds,
ring_sizes,
poly_rings,
validate_with_geos_if_available);
if (!success) {
std::ostringstream oss;
oss << "Failed to create geometry from WKT string: " << geo_->getWktString();
throw std::runtime_error(oss.str());
}

switch (index) {
case 0: // coords
Expand Down
131 changes: 131 additions & 0 deletions Analyzer/Analyzer.h
Original file line number Diff line number Diff line change
Expand Up @@ -2359,6 +2359,46 @@ class RegexpSubstrStringOper : public StringOper {
"sub-match group index"};
}
};

class RegexpCountStringOper : public StringOper {
public:
RegexpCountStringOper(const std::shared_ptr<Analyzer::Expr>& operand,
const std::shared_ptr<Analyzer::Expr>& regex_pattern,
const std::shared_ptr<Analyzer::Expr>& start_pos,
const std::shared_ptr<Analyzer::Expr>& regex_params)
: StringOper(SqlStringOpKind::REGEXP_COUNT,
SQLTypeInfo(kBIGINT),
{operand, regex_pattern, start_pos, regex_params},
getMinArgs(),
getExpectedTypeFamilies(),
getArgNames()) {}

RegexpCountStringOper(const std::vector<std::shared_ptr<Analyzer::Expr>>& operands)
: StringOper(SqlStringOpKind::REGEXP_COUNT,
SQLTypeInfo(kBIGINT),
operands,
getMinArgs(),
getExpectedTypeFamilies(),
getArgNames()) {}

RegexpCountStringOper(const std::shared_ptr<Analyzer::StringOper>& string_oper)
: StringOper(string_oper) {}

std::shared_ptr<Analyzer::Expr> deep_copy() const override;

size_t getMinArgs() const override { return 4UL; }

std::vector<OperandTypeFamily> getExpectedTypeFamilies() const override {
return {OperandTypeFamily::STRING_FAMILY,
OperandTypeFamily::STRING_FAMILY,
OperandTypeFamily::INT_FAMILY,
OperandTypeFamily::STRING_FAMILY};
}
std::vector<std::string> getArgNames() const override {
return {"operand", "regex pattern", "start position", "regex parameters"};
}
};

class JsonValueStringOper : public StringOper {
public:
JsonValueStringOper(const std::shared_ptr<Analyzer::Expr>& operand,
Expand Down Expand Up @@ -2449,6 +2489,66 @@ class Base64DecodeStringOper : public StringOper {
std::vector<std::string> getArgNames() const override { return {"operand"}; }
};

class UrlEncodeStringOper : public StringOper {
public:
UrlEncodeStringOper(const std::shared_ptr<Analyzer::Expr>& operand)
: StringOper(SqlStringOpKind::URL_ENCODE,
{operand},
getMinArgs(),
getExpectedTypeFamilies(),
getArgNames()) {}

UrlEncodeStringOper(const std::vector<std::shared_ptr<Analyzer::Expr>>& operands)
: StringOper(SqlStringOpKind::URL_ENCODE,
operands,
getMinArgs(),
getExpectedTypeFamilies(),
getArgNames()) {}

UrlEncodeStringOper(const std::shared_ptr<Analyzer::StringOper>& string_oper)
: StringOper(string_oper) {}

std::shared_ptr<Analyzer::Expr> deep_copy() const override;

size_t getMinArgs() const override { return 1u; }

std::vector<OperandTypeFamily> getExpectedTypeFamilies() const override {
return {OperandTypeFamily::STRING_FAMILY};
}

std::vector<std::string> getArgNames() const override { return {"operand"}; }
};

class UrlDecodeStringOper : public StringOper {
public:
UrlDecodeStringOper(const std::shared_ptr<Analyzer::Expr>& operand)
: StringOper(SqlStringOpKind::URL_DECODE,
{operand},
getMinArgs(),
getExpectedTypeFamilies(),
getArgNames()) {}

UrlDecodeStringOper(const std::vector<std::shared_ptr<Analyzer::Expr>>& operands)
: StringOper(SqlStringOpKind::URL_DECODE,
operands,
getMinArgs(),
getExpectedTypeFamilies(),
getArgNames()) {}

UrlDecodeStringOper(const std::shared_ptr<Analyzer::StringOper>& string_oper)
: StringOper(string_oper) {}

std::shared_ptr<Analyzer::Expr> deep_copy() const override;

size_t getMinArgs() const override { return 1u; }

std::vector<OperandTypeFamily> getExpectedTypeFamilies() const override {
return {OperandTypeFamily::STRING_FAMILY};
}

std::vector<std::string> getArgNames() const override { return {"operand"}; }
};

class TryStringCastOper : public StringOper {
public:
TryStringCastOper(const SQLTypeInfo& ti, const std::shared_ptr<Analyzer::Expr>& operand)
Expand Down Expand Up @@ -2603,6 +2703,37 @@ class LevenshteinDistanceStringOper : public StringOper {
const std::vector<std::shared_ptr<Analyzer::Expr>>& operands);
};

class HashStringOper : public StringOper {
public:
HashStringOper(const std::shared_ptr<Analyzer::Expr>& operand)
: StringOper(SqlStringOpKind::HASH,
SQLTypeInfo(kBIGINT),
{operand},
getMinArgs(),
getExpectedTypeFamilies(),
getArgNames()) {}

HashStringOper(const std::vector<std::shared_ptr<Analyzer::Expr>>& operands)
: StringOper(SqlStringOpKind::HASH,
SQLTypeInfo(kBIGINT),
operands,
getMinArgs(),
getExpectedTypeFamilies(),
getArgNames()) {}

HashStringOper(const std::shared_ptr<Analyzer::StringOper>& string_oper)
: StringOper(string_oper) {}

std::shared_ptr<Analyzer::Expr> deep_copy() const override;

size_t getMinArgs() const override { return 1UL; }

std::vector<OperandTypeFamily> getExpectedTypeFamilies() const override {
return {OperandTypeFamily::STRING_FAMILY};
}
std::vector<std::string> getArgNames() const override { return {"operand"}; }
};

class FunctionOper : public Expr {
public:
FunctionOper(const SQLTypeInfo& ti,
Expand Down
9 changes: 9 additions & 0 deletions Benchmarks/conbench/report.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
body { font-family: sans-serif }
table { border-collapse: collapse }
th { text-align: right; padding-right: 1em }
td { font-family: monospace; text-align: right; padding-right: 1em }
td.fixed { background-color: LightGreen }
td.check { background-color: Khaki }
td.warning { background-color: Yellow }
td.error { background-color: Red }
tr:nth-child(even) { background-color: LightCyan }
12 changes: 1 addition & 11 deletions Benchmarks/conbench/report.py
Original file line number Diff line number Diff line change
Expand Up @@ -213,17 +213,7 @@ def summary_body_rows():
<html>
<head>
<title>Benchmarks for {branch} / {short_sha} on {host}</title>
<style>
body {{ font-family: sans-serif }}
table {{ border-collapse: collapse }}
th {{ text-align: right; padding-right: 1em }}
td {{ font-family: monospace; text-align: right; padding-right: 1em }}
td.fixed {{ background-color: LightGreen }}
td.check {{ background-color: Khaki }}
td.warning {{ background-color: Yellow }}
td.error {{ background-color: Red }}
tr:nth-child(even) {{ background-color: LightCyan }}
</style>
<link rel="stylesheet" href="report.css">
</head>
<body>
<h1>Benchmarks for {branch} / <a href="{commit_url}">{short_sha}</a> on {host}</h1>
Expand Down
44 changes: 33 additions & 11 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -89,12 +89,13 @@ add_definitions("-DMAPD_EDITION_${MAPD_EDITION}")
string(TOLOWER "${MAPD_EDITION}" MAPD_EDITION_LOWER)

# HeavyDB version number
set(MAPD_VERSION_MAJOR "7")
set(MAPD_VERSION_MINOR "1")
set(MAPD_VERSION_MAJOR "8")
set(MAPD_VERSION_MINOR "0")
set(MAPD_VERSION_PATCH "0")
set(MAPD_VERSION_EXTRA "dev")
set(MAPD_VERSION_RAW "${MAPD_VERSION_MAJOR}.${MAPD_VERSION_MINOR}.${MAPD_VERSION_PATCH}${MAPD_VERSION_EXTRA}")
set(MAPD_IMMERSE_URL "http://builds.mapd.com/frontend/mapd2-dashboard-v2-137-release-prod.zip")
set(MAPD_IMMERSE_BUILD_ID "immerse-v2-latest-master-prod" CACHE STRING "Immerse Build ID")
set(MAPD_IMMERSE_URL "http://builds.mapd.com/frontend/${MAPD_IMMERSE_BUILD_ID}.zip")
string(TIMESTAMP MAPD_BUILD_DATE "%Y%m%d")

if($ENV{BUILD_NUMBER})
Expand Down Expand Up @@ -134,6 +135,31 @@ macro(set_alternate_linker linker)
endif()
endmacro()

macro(InstallVersionFile)
# `touch mapd_deps_version.txt` from build dir to silence warning.
find_file(MapdDepsVersion_FILE mapd_deps_version.txt PATH ${CMAKE_BINARY_DIR} NO_CACHE)

if(NOT MapdDepsVersion_FILE)
message(WARNING "Build could NOT find deps version file mapd_deps_version.txt")
else()
message(STATUS "Found deps version file ${MapdDepsVersion_FILE}")
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/version)
set(HEAVY_DEPS_CUSTOM ${CMAKE_BINARY_DIR}/version/heavyai_deps_version.txt)
# cp mapd_version data to heavyai deps, removing un-tagged lines.
add_custom_command(OUTPUT ${HEAVY_DEPS_CUSTOM}
DEPENDS ${MapdDepsVersion_FILE}
COMMAND ${CMAKE_COMMAND} -E copy ${MapdDepsVersion_FILE} ${HEAVY_DEPS_CUSTOM}
# In the copied deps files leave the first line with the deps generated info
# and any other line starting with 'Public Release:', though remove the public release tag
VERBATIM
COMMAND "sed" "-i" "-n" "/^Public Release:/s/^Public Release://p" ${HEAVY_DEPS_CUSTOM})

add_custom_target(HeavyDepsVersionTarget DEPENDS ${HEAVY_DEPS_CUSTOM})
add_dependencies(heavydb HeavyDepsVersionTarget)
install(FILES ${HEAVY_DEPS_CUSTOM} DESTINATION "." COMPONENT "doc")
endif()
endmacro()

set(USE_ALTERNATE_LINKER "" CACHE STRING "Use alternate linker. Leave empty for system default; alternatives are 'gold', 'lld', 'bfd', 'mold'")
if(NOT "${USE_ALTERNATE_LINKER}" STREQUAL "")
set_alternate_linker(${USE_ALTERNATE_LINKER})
Expand Down Expand Up @@ -192,9 +218,8 @@ endif()
option(ENABLE_CUDA "Enable CUDA support" ON)
if(ENABLE_CUDA)
enable_language(CUDA)
find_package(CUDA REQUIRED)
include_directories(${CUDA_INCLUDE_DIRS})
list(APPEND CUDA_LIBRARIES ${CUDA_CUDA_LIBRARY})
include_directories(${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES})
list(APPEND CUDA_LIBRARIES cuda)
add_definitions("-DHAVE_CUDA")

else()
Expand Down Expand Up @@ -918,10 +943,6 @@ target_link_libraries(mapd_thrift ${Thrift_LIBRARIES})

if("${MAPD_EDITION_LOWER}" STREQUAL "ee")
option(ENABLE_OMNIVERSE_CONNECTOR "Enable Omniverse Connector" ON)
if(ENABLE_OMNIVERSE_CONNECTOR)
include_directories(ThirdParty/poly2tri)
add_subdirectory(ThirdParty/poly2tri)
endif()
include_directories(Catalog/ee)
include_directories(Distributed/ee)
else()
Expand Down Expand Up @@ -992,7 +1013,7 @@ if(ENABLE_RUNTIME_LIBS)
find_package(Torch REQUIRED)
if (DEFINED TORCH_CUDA_LIBRARIES)
# Torch removes the CUDA Driver target from CUDA_LIBRARIES when doing its own CUDA CMake setup, so we have to re-add it
list(APPEND CUDA_LIBRARIES ${CUDA_CUDA_LIBRARY})
list(APPEND CUDA_LIBRARIES cuda)
add_compile_definitions("HAVE_CUDA_TORCH")
endif()
add_compile_definitions("HAVE_TORCH_TFS")
Expand Down Expand Up @@ -1107,6 +1128,7 @@ endif()

add_executable(heavydb HeavyDB.cpp ${CMAKE_BINARY_DIR}/MapDRelease.h)
set_target_properties(heavydb PROPERTIES COMPILE_DEFINITIONS "${TIME_LIMITED_DEFINITIONS}")
InstallVersionFile()

add_custom_command(
DEPENDS ${CMAKE_SOURCE_DIR}/heavy.thrift
Expand Down