OmniSciDB  bf83d84833
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Parser::anonymous_namespace{ParserNode.cpp} Namespace Reference

Functions

bool expr_is_null (const Analyzer::Expr *expr)
 
bool bool_from_string_literal (const Parser::StringLiteral *str_literal)
 
void validate_shard_column_type (const ColumnDescriptor &cd)
 
size_t shard_column_index (const std::string &name, const std::list< ColumnDescriptor > &columns)
 
size_t sort_column_index (const std::string &name, const std::list< ColumnDescriptor > &columns)
 
void set_string_field (rapidjson::Value &obj, const std::string &field_name, const std::string &field_value, rapidjson::Document &document)
 
std::string serialize_key_metainfo (const ShardKeyDef *shard_key_def, const std::vector< SharedDictionaryDef > &shared_dict_defs)
 
template<typename LITERAL_TYPE , typename ASSIGNMENT , typename VALIDATE = DefaultValidate<LITERAL_TYPE>>
decltype(auto) get_property_value (const NameValueAssign *p, ASSIGNMENT op, VALIDATE validate=VALIDATE())
 
decltype(auto) get_storage_type (TableDescriptor &td, const NameValueAssign *p, const std::list< ColumnDescriptor > &columns)
 
decltype(auto) get_frag_size_def (TableDescriptor &td, const NameValueAssign *p, const std::list< ColumnDescriptor > &columns)
 
decltype(auto) get_frag_size_dataframe_def (DataframeTableDescriptor &df_td, const NameValueAssign *p, const std::list< ColumnDescriptor > &columns)
 
decltype(auto) get_max_chunk_size_def (TableDescriptor &td, const NameValueAssign *p, const std::list< ColumnDescriptor > &columns)
 
decltype(auto) get_max_chunk_size_dataframe_def (DataframeTableDescriptor &df_td, const NameValueAssign *p, const std::list< ColumnDescriptor > &columns)
 
decltype(auto) get_delimiter_def (DataframeTableDescriptor &df_td, const NameValueAssign *p, const std::list< ColumnDescriptor > &columns)
 
decltype(auto) get_header_def (DataframeTableDescriptor &df_td, const NameValueAssign *p, const std::list< ColumnDescriptor > &columns)
 
decltype(auto) get_page_size_def (TableDescriptor &td, const NameValueAssign *p, const std::list< ColumnDescriptor > &columns)
 
decltype(auto) get_max_rows_def (TableDescriptor &td, const NameValueAssign *p, const std::list< ColumnDescriptor > &columns)
 
decltype(auto) get_skip_rows_def (DataframeTableDescriptor &df_td, const NameValueAssign *p, const std::list< ColumnDescriptor > &columns)
 
decltype(auto) get_partions_def (TableDescriptor &td, const NameValueAssign *p, const std::list< ColumnDescriptor > &columns)
 
decltype(auto) get_shard_count_def (TableDescriptor &td, const NameValueAssign *p, const std::list< ColumnDescriptor > &columns)
 
decltype(auto) get_vacuum_def (TableDescriptor &td, const NameValueAssign *p, const std::list< ColumnDescriptor > &columns)
 
decltype(auto) get_sort_column_def (TableDescriptor &td, const NameValueAssign *p, const std::list< ColumnDescriptor > &columns)
 
decltype(auto) get_max_rollback_epochs_def (TableDescriptor &td, const NameValueAssign *p, const std::list< ColumnDescriptor > &columns)
 
void get_table_definitions (TableDescriptor &td, const std::unique_ptr< NameValueAssign > &p, const std::list< ColumnDescriptor > &columns)
 
void get_table_definitions_for_ctas (TableDescriptor &td, const std::unique_ptr< NameValueAssign > &p, const std::list< ColumnDescriptor > &columns)
 
void get_dataframe_definitions (DataframeTableDescriptor &df_td, const std::unique_ptr< NameValueAssign > &p, const std::list< ColumnDescriptor > &columns)
 

Variables

static const std::map< const
std::string, const
TableDefFuncPtr
tableDefFuncMap
 
static const std::map< const
std::string, const
DataframeDefFuncPtr
dataframeDefFuncMap
 

Function Documentation

bool Parser::anonymous_namespace{ParserNode.cpp}::bool_from_string_literal ( const Parser::StringLiteral str_literal)

Definition at line 913 of file ParserNode.cpp.

References Parser::StringLiteral::get_stringval().

Referenced by Parser::CopyTableStmt::execute(), and Parser::ExportQueryStmt::parseOptions().

913  {
914  const std::string* s = str_literal->get_stringval();
915  if (*s == "t" || *s == "true" || *s == "T" || *s == "True") {
916  return true;
917  } else if (*s == "f" || *s == "false" || *s == "F" || *s == "False") {
918  return false;
919  } else {
920  throw std::runtime_error("Invalid string for boolean " + *s);
921  }
922 }
const std::string * get_stringval() const
Definition: ParserNode.h:136

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool Parser::anonymous_namespace{ParserNode.cpp}::expr_is_null ( const Analyzer::Expr expr)

Definition at line 905 of file ParserNode.cpp.

References Analyzer::Constant::get_is_null(), SQLTypeInfo::get_type(), Analyzer::Expr::get_type_info(), and kNULLT.

Referenced by Parser::CaseExpr::normalize().

905  {
906  if (expr->get_type_info().get_type() == kNULLT) {
907  return true;
908  }
909  const auto const_expr = dynamic_cast<const Analyzer::Constant*>(expr);
910  return const_expr && const_expr->get_is_null();
911 }
bool get_is_null() const
Definition: Analyzer.h:334
HOST DEVICE SQLTypes get_type() const
Definition: sqltypes.h:311
const SQLTypeInfo & get_type_info() const
Definition: Analyzer.h:78

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void Parser::anonymous_namespace{ParserNode.cpp}::get_dataframe_definitions ( DataframeTableDescriptor df_td,
const std::unique_ptr< NameValueAssign > &  p,
const std::list< ColumnDescriptor > &  columns 
)

Definition at line 2197 of file ParserNode.cpp.

Referenced by Parser::CreateDataframeStmt::execute().

2199  {
2200  const auto it =
2201  dataframeDefFuncMap.find(boost::to_lower_copy<std::string>(*p->get_name()));
2202  if (it == dataframeDefFuncMap.end()) {
2203  throw std::runtime_error(
2204  "Invalid CREATE DATAFRAME option " + *p->get_name() +
2205  ". Should be FRAGMENT_SIZE, MAX_CHUNK_SIZE, SKIP_ROWS, DELIMITER or HEADER.");
2206  }
2207  return it->second(df_td, p.get(), columns);
2208 }
static const std::map< const std::string, const DataframeDefFuncPtr > dataframeDefFuncMap

+ Here is the caller graph for this function:

decltype(auto) Parser::anonymous_namespace{ParserNode.cpp}::get_delimiter_def ( DataframeTableDescriptor df_td,
const NameValueAssign *  p,
const std::list< ColumnDescriptor > &  columns 
)

Definition at line 2037 of file ParserNode.cpp.

2039  {
2040  return get_property_value<StringLiteral>(p, [&df_td](const auto val) {
2041  if (val.size() != 1) {
2042  throw std::runtime_error("Length of DELIMITER must be equal to 1.");
2043  }
2044  df_td.delimiter = val;
2045  });
2046 }
decltype(auto) Parser::anonymous_namespace{ParserNode.cpp}::get_frag_size_dataframe_def ( DataframeTableDescriptor df_td,
const NameValueAssign *  p,
const std::list< ColumnDescriptor > &  columns 
)

Definition at line 2015 of file ParserNode.cpp.

2017  {
2018  return get_property_value<IntLiteral>(
2019  p, [&df_td](const auto val) { df_td.maxFragRows = val; });
2020 }
decltype(auto) Parser::anonymous_namespace{ParserNode.cpp}::get_frag_size_def ( TableDescriptor td,
const NameValueAssign *  p,
const std::list< ColumnDescriptor > &  columns 
)

Definition at line 2008 of file ParserNode.cpp.

2010  {
2011  return get_property_value<IntLiteral>(p,
2012  [&td](const auto val) { td.maxFragRows = val; });
2013 }
decltype(auto) Parser::anonymous_namespace{ParserNode.cpp}::get_header_def ( DataframeTableDescriptor df_td,
const NameValueAssign *  p,
const std::list< ColumnDescriptor > &  columns 
)

Definition at line 2048 of file ParserNode.cpp.

2050  {
2051  return get_property_value<StringLiteral>(p, [&df_td](const auto val) {
2052  if (val == "FALSE") {
2053  df_td.hasHeader = false;
2054  } else if (val == "TRUE") {
2055  df_td.hasHeader = true;
2056  } else {
2057  throw std::runtime_error("Option HEADER support only 'true' or 'false' values.");
2058  }
2059  });
2060 }
decltype(auto) Parser::anonymous_namespace{ParserNode.cpp}::get_max_chunk_size_dataframe_def ( DataframeTableDescriptor df_td,
const NameValueAssign *  p,
const std::list< ColumnDescriptor > &  columns 
)

Definition at line 2029 of file ParserNode.cpp.

2032  {
2033  return get_property_value<IntLiteral>(
2034  p, [&df_td](const auto val) { df_td.maxChunkSize = val; });
2035 }
decltype(auto) Parser::anonymous_namespace{ParserNode.cpp}::get_max_chunk_size_def ( TableDescriptor td,
const NameValueAssign *  p,
const std::list< ColumnDescriptor > &  columns 
)

Definition at line 2022 of file ParserNode.cpp.

2024  {
2025  return get_property_value<IntLiteral>(p,
2026  [&td](const auto val) { td.maxChunkSize = val; });
2027 }
decltype(auto) Parser::anonymous_namespace{ParserNode.cpp}::get_max_rollback_epochs_def ( TableDescriptor td,
const NameValueAssign *  p,
const std::list< ColumnDescriptor > &  columns 
)

Definition at line 2136 of file ParserNode.cpp.

2138  {
2139  auto assignment = [&td](const auto val) {
2140  td.maxRollbackEpochs =
2141  val < 0 ? -1 : val; // Anything < 0 means unlimited rollbacks. Note that 0
2142  // still means keeping a shadow copy of data/metdata
2143  // between epochs so bad writes can be rolled back
2144  };
2145  return get_property_value<IntLiteral, decltype(assignment), PositiveOrZeroValidate>(
2146  p, assignment);
2147 }
int32_t maxRollbackEpochs
decltype(auto) Parser::anonymous_namespace{ParserNode.cpp}::get_max_rows_def ( TableDescriptor td,
const NameValueAssign *  p,
const std::list< ColumnDescriptor > &  columns 
)

Definition at line 2068 of file ParserNode.cpp.

2070  {
2071  return get_property_value<IntLiteral>(p, [&td](const auto val) { td.maxRows = val; });
2072 }
decltype(auto) Parser::anonymous_namespace{ParserNode.cpp}::get_page_size_def ( TableDescriptor td,
const NameValueAssign *  p,
const std::list< ColumnDescriptor > &  columns 
)

Definition at line 2062 of file ParserNode.cpp.

2064  {
2065  return get_property_value<IntLiteral>(p,
2066  [&td](const auto val) { td.fragPageSize = val; });
2067 }
decltype(auto) Parser::anonymous_namespace{ParserNode.cpp}::get_partions_def ( TableDescriptor td,
const NameValueAssign *  p,
const std::list< ColumnDescriptor > &  columns 
)

Definition at line 2081 of file ParserNode.cpp.

2083  {
2084  return get_property_value<StringLiteral>(p, [&td](const auto partitions_uc) {
2085  if (partitions_uc != "SHARDED" && partitions_uc != "REPLICATED") {
2086  throw std::runtime_error("PARTITIONS must be SHARDED or REPLICATED");
2087  }
2088  if (td.shardedColumnId != 0 && partitions_uc == "REPLICATED") {
2089  throw std::runtime_error(
2090  "A table cannot be sharded and replicated at the same time");
2091  };
2092  td.partitions = partitions_uc;
2093  });
2094 }
std::string partitions
template<typename LITERAL_TYPE , typename ASSIGNMENT , typename VALIDATE = DefaultValidate<LITERAL_TYPE>>
decltype(auto) Parser::anonymous_namespace{ParserNode.cpp}::get_property_value ( const NameValueAssign *  p,
ASSIGNMENT  op,
VALIDATE  validate = VALIDATE() 
)

Definition at line 1993 of file ParserNode.cpp.

1995  {
1996  const auto val = validate(p);
1997  return op(val);
1998 }
decltype(auto) Parser::anonymous_namespace{ParserNode.cpp}::get_shard_count_def ( TableDescriptor td,
const NameValueAssign *  p,
const std::list< ColumnDescriptor > &  columns 
)

Definition at line 2095 of file ParserNode.cpp.

References g_leaf_count.

2097  {
2098  if (!td.shardedColumnId) {
2099  throw std::runtime_error("SHARD KEY must be defined.");
2100  }
2101  return get_property_value<IntLiteral>(p, [&td](const auto shard_count) {
2102  if (g_leaf_count && shard_count % g_leaf_count) {
2103  throw std::runtime_error(
2104  "SHARD_COUNT must be a multiple of the number of leaves in the cluster.");
2105  }
2106  td.nShards = g_leaf_count ? shard_count / g_leaf_count : shard_count;
2107  if (!td.shardedColumnId && !td.nShards) {
2108  throw std::runtime_error(
2109  "Must specify the number of shards through the SHARD_COUNT option");
2110  };
2111  });
2112 }
size_t g_leaf_count
Definition: ParserNode.cpp:74
decltype(auto) Parser::anonymous_namespace{ParserNode.cpp}::get_skip_rows_def ( DataframeTableDescriptor df_td,
const NameValueAssign *  p,
const std::list< ColumnDescriptor > &  columns 
)

Definition at line 2074 of file ParserNode.cpp.

2076  {
2077  return get_property_value<IntLiteral>(
2078  p, [&df_td](const auto val) { df_td.skipRows = val; });
2079 }
decltype(auto) Parser::anonymous_namespace{ParserNode.cpp}::get_sort_column_def ( TableDescriptor td,
const NameValueAssign *  p,
const std::list< ColumnDescriptor > &  columns 
)

Definition at line 2125 of file ParserNode.cpp.

References sort_column_index().

2127  {
2128  return get_property_value<StringLiteral>(p, [&td, &columns](const auto sort_upper) {
2129  td.sortedColumnId = sort_column_index(sort_upper, columns);
2130  if (!td.sortedColumnId) {
2131  throw std::runtime_error("Specified sort column " + sort_upper + " doesn't exist");
2132  }
2133  });
2134 }
size_t sort_column_index(const std::string &name, const std::list< ColumnDescriptor > &columns)

+ Here is the call graph for this function:

decltype(auto) Parser::anonymous_namespace{ParserNode.cpp}::get_storage_type ( TableDescriptor td,
const NameValueAssign *  p,
const std::list< ColumnDescriptor > &  columns 
)

Definition at line 2000 of file ParserNode.cpp.

2002  {
2003  auto assignment = [&td](const auto val) { td.storageType = val; };
2004  return get_property_value<StringLiteral, decltype(assignment), CaseSensitiveValidate>(
2005  p, assignment);
2006 }
std::string storageType
void Parser::anonymous_namespace{ParserNode.cpp}::get_table_definitions ( TableDescriptor td,
const std::unique_ptr< NameValueAssign > &  p,
const std::list< ColumnDescriptor > &  columns 
)

Definition at line 2161 of file ParserNode.cpp.

Referenced by Parser::CreateTableStmt::executeDryRun().

2163  {
2164  const auto it = tableDefFuncMap.find(boost::to_lower_copy<std::string>(*p->get_name()));
2165  if (it == tableDefFuncMap.end()) {
2166  throw std::runtime_error(
2167  "Invalid CREATE TABLE option " + *p->get_name() +
2168  ". Should be FRAGMENT_SIZE, MAX_CHUNK_SIZE, PAGE_SIZE, MAX_ROLLBACK_EPOCHS, "
2169  "MAX_ROWS, "
2170  "PARTITIONS, SHARD_COUNT, VACUUM, SORT_COLUMN, STORAGE_TYPE.");
2171  }
2172  return it->second(td, p.get(), columns);
2173 }
static const std::map< const std::string, const TableDefFuncPtr > tableDefFuncMap

+ Here is the caller graph for this function:

void Parser::anonymous_namespace{ParserNode.cpp}::get_table_definitions_for_ctas ( TableDescriptor td,
const std::unique_ptr< NameValueAssign > &  p,
const std::list< ColumnDescriptor > &  columns 
)

Definition at line 2175 of file ParserNode.cpp.

Referenced by Parser::CreateTableAsSelectStmt::execute().

2177  {
2178  const auto it = tableDefFuncMap.find(boost::to_lower_copy<std::string>(*p->get_name()));
2179  if (it == tableDefFuncMap.end()) {
2180  throw std::runtime_error(
2181  "Invalid CREATE TABLE AS option " + *p->get_name() +
2182  ". Should be FRAGMENT_SIZE, MAX_CHUNK_SIZE, PAGE_SIZE, MAX_ROLLBACK_EPOCHS, "
2183  "MAX_ROWS, "
2184  "PARTITIONS, SHARD_COUNT, VACUUM, SORT_COLUMN, STORAGE_TYPE or "
2185  "USE_SHARED_DICTIONARIES.");
2186  }
2187  return it->second(td, p.get(), columns);
2188 }
static const std::map< const std::string, const TableDefFuncPtr > tableDefFuncMap

+ Here is the caller graph for this function:

decltype(auto) Parser::anonymous_namespace{ParserNode.cpp}::get_vacuum_def ( TableDescriptor td,
const NameValueAssign *  p,
const std::list< ColumnDescriptor > &  columns 
)

Definition at line 2114 of file ParserNode.cpp.

2116  {
2117  return get_property_value<StringLiteral>(p, [&td](const auto vacuum_uc) {
2118  if (vacuum_uc != "IMMEDIATE" && vacuum_uc != "DELAYED") {
2119  throw std::runtime_error("VACUUM must be IMMEDIATE or DELAYED");
2120  }
2121  td.hasDeletedCol = boost::iequals(vacuum_uc, "IMMEDIATE") ? false : true;
2122  });
2123 }
std::string Parser::anonymous_namespace{ParserNode.cpp}::serialize_key_metainfo ( const ShardKeyDef *  shard_key_def,
const std::vector< SharedDictionaryDef > &  shared_dict_defs 
)

Definition at line 1960 of file ParserNode.cpp.

References Parser::ShardKeyDef::get_column(), and set_string_field().

Referenced by Parser::CreateDataframeStmt::execute(), Parser::CreateTableAsSelectStmt::execute(), and Parser::CreateTableStmt::executeDryRun().

1962  {
1963  rapidjson::Document document;
1964  auto& allocator = document.GetAllocator();
1965  rapidjson::Value arr(rapidjson::kArrayType);
1966  if (shard_key_def) {
1967  rapidjson::Value shard_key_obj(rapidjson::kObjectType);
1968  set_string_field(shard_key_obj, "type", "SHARD KEY", document);
1969  set_string_field(shard_key_obj, "name", shard_key_def->get_column(), document);
1970  arr.PushBack(shard_key_obj, allocator);
1971  }
1972  for (const auto& shared_dict_def : shared_dict_defs) {
1973  rapidjson::Value shared_dict_obj(rapidjson::kObjectType);
1974  set_string_field(shared_dict_obj, "type", "SHARED DICTIONARY", document);
1975  set_string_field(shared_dict_obj, "name", shared_dict_def.get_column(), document);
1977  shared_dict_obj, "foreign_table", shared_dict_def.get_foreign_table(), document);
1978  set_string_field(shared_dict_obj,
1979  "foreign_column",
1980  shared_dict_def.get_foreign_column(),
1981  document);
1982  arr.PushBack(shared_dict_obj, allocator);
1983  }
1984  rapidjson::StringBuffer buffer;
1985  rapidjson::Writer<rapidjson::StringBuffer> writer(buffer);
1986  arr.Accept(writer);
1987  return buffer.GetString();
1988 }
void set_string_field(rapidjson::Value &obj, const std::string &field_name, const std::string &field_value, rapidjson::Document &document)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void Parser::anonymous_namespace{ParserNode.cpp}::set_string_field ( rapidjson::Value &  obj,
const std::string &  field_name,
const std::string &  field_value,
rapidjson::Document &  document 
)

Definition at line 1947 of file ParserNode.cpp.

Referenced by serialize_key_metainfo().

1950  {
1951  rapidjson::Value field_name_json_str;
1952  field_name_json_str.SetString(
1953  field_name.c_str(), field_name.size(), document.GetAllocator());
1954  rapidjson::Value field_value_json_str;
1955  field_value_json_str.SetString(
1956  field_value.c_str(), field_value.size(), document.GetAllocator());
1957  obj.AddMember(field_name_json_str, field_value_json_str, document.GetAllocator());
1958 }

+ Here is the caller graph for this function:

size_t Parser::anonymous_namespace{ParserNode.cpp}::shard_column_index ( const std::string &  name,
const std::list< ColumnDescriptor > &  columns 
)

Definition at line 1914 of file ParserNode.cpp.

References validate_shard_column_type().

Referenced by Parser::CreateTableStmt::executeDryRun().

1915  {
1916  size_t index = 1;
1917  for (const auto& cd : columns) {
1918  if (cd.columnName == name) {
1920  return index;
1921  }
1922  ++index;
1923  if (cd.columnType.is_geometry()) {
1924  index += cd.columnType.get_physical_cols();
1925  }
1926  }
1927  // Not found, return 0
1928  return 0;
1929 }
void validate_shard_column_type(const ColumnDescriptor &cd)
string name
Definition: setup.py:35

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

size_t Parser::anonymous_namespace{ParserNode.cpp}::sort_column_index ( const std::string &  name,
const std::list< ColumnDescriptor > &  columns 
)

Definition at line 1931 of file ParserNode.cpp.

Referenced by get_sort_column_def().

1932  {
1933  size_t index = 1;
1934  for (const auto& cd : columns) {
1935  if (boost::to_upper_copy<std::string>(cd.columnName) == name) {
1936  return index;
1937  }
1938  ++index;
1939  if (cd.columnType.is_geometry()) {
1940  index += cd.columnType.get_physical_cols();
1941  }
1942  }
1943  // Not found, return 0
1944  return 0;
1945 }
string name
Definition: setup.py:35

+ Here is the caller graph for this function:

void Parser::anonymous_namespace{ParserNode.cpp}::validate_shard_column_type ( const ColumnDescriptor cd)

Definition at line 1903 of file ParserNode.cpp.

References ColumnDescriptor::columnType, and kENCODING_DICT.

Referenced by shard_column_index().

1903  {
1904  const auto& col_ti = cd.columnType;
1905  if (col_ti.is_integer() ||
1906  (col_ti.is_string() && col_ti.get_compression() == kENCODING_DICT) ||
1907  col_ti.is_time()) {
1908  return;
1909  }
1910  throw std::runtime_error("Cannot shard on type " + col_ti.get_type_name() +
1911  ", encoding " + col_ti.get_compression_name());
1912 }
SQLTypeInfo columnType

+ Here is the caller graph for this function:

Variable Documentation

const std::map<const std::string, const DataframeDefFuncPtr> Parser::anonymous_namespace{ParserNode.cpp}::dataframeDefFuncMap
static
Initial value:
=
{{"fragment_size"s, get_frag_size_dataframe_def},
{"max_chunk_size"s, get_max_chunk_size_dataframe_def},
{"skip_rows"s, get_skip_rows_def},
{"delimiter"s, get_delimiter_def},
{"header"s, get_header_def}}
decltype(auto) get_skip_rows_def(DataframeTableDescriptor &df_td, const NameValueAssign *p, const std::list< ColumnDescriptor > &columns)
decltype(auto) get_header_def(DataframeTableDescriptor &df_td, const NameValueAssign *p, const std::list< ColumnDescriptor > &columns)
decltype(auto) get_max_chunk_size_dataframe_def(DataframeTableDescriptor &df_td, const NameValueAssign *p, const std::list< ColumnDescriptor > &columns)
decltype(auto) get_frag_size_dataframe_def(DataframeTableDescriptor &df_td, const NameValueAssign *p, const std::list< ColumnDescriptor > &columns)
decltype(auto) get_delimiter_def(DataframeTableDescriptor &df_td, const NameValueAssign *p, const std::list< ColumnDescriptor > &columns)

Definition at line 2190 of file ParserNode.cpp.

const std::map<const std::string, const TableDefFuncPtr> Parser::anonymous_namespace{ParserNode.cpp}::tableDefFuncMap
static
Initial value:
= {
{"fragment_size"s, get_frag_size_def},
{"max_chunk_size"s, get_max_chunk_size_def},
{"page_size"s, get_page_size_def},
{"max_rows"s, get_max_rows_def},
{"partitions"s, get_partions_def},
{"shard_count"s, get_shard_count_def},
{"vacuum"s, get_vacuum_def},
{"sort_column"s, get_sort_column_def},
{"storage_type"s, get_storage_type},
{"max_rollback_epochs", get_max_rollback_epochs_def}}
decltype(auto) get_max_rows_def(TableDescriptor &td, const NameValueAssign *p, const std::list< ColumnDescriptor > &columns)
decltype(auto) get_max_chunk_size_def(TableDescriptor &td, const NameValueAssign *p, const std::list< ColumnDescriptor > &columns)
decltype(auto) get_vacuum_def(TableDescriptor &td, const NameValueAssign *p, const std::list< ColumnDescriptor > &columns)
decltype(auto) get_shard_count_def(TableDescriptor &td, const NameValueAssign *p, const std::list< ColumnDescriptor > &columns)
decltype(auto) get_sort_column_def(TableDescriptor &td, const NameValueAssign *p, const std::list< ColumnDescriptor > &columns)
decltype(auto) get_frag_size_def(TableDescriptor &td, const NameValueAssign *p, const std::list< ColumnDescriptor > &columns)
decltype(auto) get_partions_def(TableDescriptor &td, const NameValueAssign *p, const std::list< ColumnDescriptor > &columns)
decltype(auto) get_page_size_def(TableDescriptor &td, const NameValueAssign *p, const std::list< ColumnDescriptor > &columns)
decltype(auto) get_max_rollback_epochs_def(TableDescriptor &td, const NameValueAssign *p, const std::list< ColumnDescriptor > &columns)
decltype(auto) get_storage_type(TableDescriptor &td, const NameValueAssign *p, const std::list< ColumnDescriptor > &columns)

Definition at line 2149 of file ParserNode.cpp.