An example of how to push down computations to Hyper during data insertion using expressions.
#include <iostream>
#include <string>
#include <unordered_set>
{"Extract", "Extract"},
static void runInsertDataWithExpressions() {
std::cout << "EXAMPLE - Push down computations to Hyper during data insertion using expressions" << std::endl;
const std::string pathToDatabase = "data/orders.hyper";
{
{
catalog.createTable(extractTable);
std::vector<hyperapi::TableDefinition::Column> inserterDefinition{
std::string shipPriorityAsIntCaseExpression =
"CASE " +
hyperapi::escapeName(
"Ship Priority Text") +
std::vector<hyperapi::Inserter::ColumnMapping> columnMappings{
{
hyperapi::Inserter inserter(connection, extractTable, columnMappings, inserterDefinition);
inserter.addRow(399, "2012-09-13 10:00:00", "Express Class", "Urgent");
inserter.addRow(530, "2012-07-12 14:00:00", "Standard Class", "Low");
inserter.execute();
}
int64_t rowCount = connection.executeScalarQuery<int64_t>("SELECT COUNT(*) FROM " + extractTable.getTableName().toString());
std::cout << "The number of rows in table " << extractTable.getTableName() << " is " << rowCount << "." << std::endl;
}
std::cout << "The connection to the Hyper file has been closed." << std::endl;
}
std::cout << "The Hyper Process has been shut down." << std::endl;
}
int main() {
try {
runInsertDataWithExpressions();
return 1;
}
return 0;
}