OpenM++ runtime library (libopenm)
openm::ModelAccumulatorSql Class Reference

class to produce accumulators sql subqueries for otput table More...

Inheritance diagram for openm::ModelAccumulatorSql:
Collaboration diagram for openm::ModelAccumulatorSql:

Public Member Functions

 ModelAccumulatorSql (const string &i_accTableName, const vector< string > &i_dimCols, const vector< int > &i_accIds, const vector< string > &i_accNames, const vector< string > &i_accCols, const vector< TableAccRow > &i_tableAcc)
 initialization: store output table definition parts. More...
 
 ~ModelAccumulatorSql () noexcept
 release sql builder resources.
 
const string translateNativeAccExpr (const string &i_outTableName, const string &i_accName, int i_accId)
 translate output table "native" (non-derived) accumulator into sql CTE subquery. More...
 
const string translateDerivedAccExpr (const string &i_outTableName, const string &i_accName, const string &i_expr, const map< string, size_t > &i_nativeMap)
 translate output table derived accumulator into sql CTE subquery. More...
 
- Public Member Functions inherited from openm::ModelBaseExpressionSql
 ModelBaseExpressionSql (const string &i_accTableName, const vector< string > &i_dimCols, const vector< int > &i_accIds, const vector< string > &i_accNames, const vector< string > &i_accCols)
 initialization: store output table definition parts. More...
 
 ~ModelBaseExpressionSql () noexcept
 release sql builder resources.
 

Additional Inherited Members

- Protected Member Functions inherited from openm::ModelBaseExpressionSql
const string translateAllSimpleFnc (const string &i_srcMsg, bool i_isSkipAggr, const string &i_expr)
 translate (substitute) all non-aggregation functions More...
 
- Static Protected Member Functions inherited from openm::ModelBaseExpressionSql
static const string translateSimpleFnc (const string &i_srcMsg, FncCode i_code, const string &i_arg)
 translate (substitute) non-aggregation function More...
 
- Protected Attributes inherited from openm::ModelBaseExpressionSql
const string accTableName
 accumulator database table name
 
const vector< string > dimCols
 names of table dimensions
 
const vector< int > accIds
 ids of table accumulators
 
const vector< string > accNames
 names of table accumulators: Acc0, Acc1
 
const vector< string > accCols
 column names of table accumulators: acc0, acc1
 
int accCount
 number of accumulators
 

Detailed Description

class to produce accumulators sql subqueries for otput table

Constructor & Destructor Documentation

◆ ModelAccumulatorSql()

openm::ModelAccumulatorSql::ModelAccumulatorSql ( const string &  i_accTableName,
const vector< string > &  i_dimCols,
const vector< int > &  i_accIds,
const vector< string > &  i_accNames,
const vector< string > &  i_accCols,
const vector< TableAccRow > &  i_tableAcc 
)
inline

initialization: store output table definition parts.

Parameters
[in]i_accTableNameaccumulator table name in database
[in]i_dimColscolumn names of table dimensions
[in]i_accIdsids of table accumulators
[in]i_accNamesnames of table accumulators
[in]i_accColscolumns names of table accumulators

Member Function Documentation

◆ translateDerivedAccExpr()

const string ModelAccumulatorSql::translateDerivedAccExpr ( const string &  i_outTableName,
const string &  i_accName,
const string &  i_expr,
const map< string, size_t > &  i_nativeMap 
)

translate output table derived accumulator into sql CTE subquery.

Parameters
i_outTableNameoutput table name
i_accNameaccumulator name
i_exprsource expression, ie: acc0 + acc1.
i_nativeMapnative accumlators map of (name, accumulator index)
Returns
sql select subquery

◆ translateNativeAccExpr()

const string ModelAccumulatorSql::translateNativeAccExpr ( const string &  i_outTableName,
const string &  i_accName,
int  i_accId 
)

translate output table "native" (non-derived) accumulator into sql CTE subquery.

Parameters
i_outTableNameoutput table name
i_accNameaccumulator name
i_accIdaccumulator id
Returns
sql select subquery

The documentation for this class was generated from the following files: