//---------------------------------------------------------------------------
//	@function:
//		CMappingVarColId::Load
//
//	@doc:
//		Load column mapping information from list of column names
//
//---------------------------------------------------------------------------
void
CMappingVarColId::Load
(
    ULONG ulQueryLevel,
    ULONG ulRTEIndex,
    CIdGenerator *pidgtor,
    List *plColNames
)
{
    ListCell *plcCol = NULL;
    ULONG ul = 0;

    // add mapping information for columns
    ForEach(plcCol, plColNames)
    {
        Value *pvalue = (Value *) lfirst(plcCol);
        CHAR *szColName = strVal(pvalue);

        CWStringDynamic *pstrColName = CDXLUtils::PstrFromSz(m_pmp, szColName);

        this->Insert
        (
            ulQueryLevel,
            ulRTEIndex,
            INT(ul + 1),
            pidgtor->UlNextId(),
            pstrColName->PStrCopy(m_pmp)
        );

        ul ++;
        delete(pstrColName);
    }