1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-07-29 08:21:15 +03:00
Files
mariadb-columnstore-engine/dbcon/joblist/virtualtable.h
2022-01-21 16:43:49 +00:00

118 lines
2.5 KiB
C++

/* Copyright (C) 2014 InfiniDB, Inc.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; version 2 of
the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
MA 02110-1301, USA. */
// $Id: virtualtable.h 6370 2010-03-18 02:58:09Z xlou $
/** @file */
#pragma once
#include "calpontsystemcatalog.h"
#include "returnedcolumn.h"
#include "simplecolumn.h"
namespace joblist
{
class VirtualTable
{
public:
VirtualTable();
virtual ~VirtualTable()
{
}
virtual void initialize();
void addColumn(const execplan::SRCP& column);
void tableOid(const execplan::CalpontSystemCatalog::OID& oid)
{
fTableOid = oid;
}
const execplan::CalpontSystemCatalog::OID& tableOid() const
{
return fTableOid;
}
void name(const std::string& s)
{
fName = s;
}
const std::string& name() const
{
return fName;
}
void alias(const std::string& s)
{
fAlias = s;
}
const std::string& alias() const
{
return fAlias;
}
void view(const std::string& v)
{
fView = v;
}
const std::string& view() const
{
return fView;
}
const std::vector<execplan::SSC>& columns() const
{
return fColumns;
}
const execplan::CalpontSystemCatalog::OID& columnOid(uint32_t i) const;
const std::vector<execplan::CalpontSystemCatalog::ColType>& columnTypes() const
{
return fColumnTypes;
}
void columnType(execplan::CalpontSystemCatalog::ColType& type, uint32_t i);
const execplan::CalpontSystemCatalog::ColType& columnType(uint32_t i) const;
const std::map<UniqId, uint32_t>& columnMap() const
{
return fColumnMap;
}
void varbinaryOK(bool b)
{
fVarBinOK = b;
}
bool varbinaryOK() const
{
return fVarBinOK;
}
protected:
execplan::CalpontSystemCatalog::OID fTableOid;
std::string fName;
std::string fAlias;
std::string fView;
std::vector<execplan::SSC> fColumns;
std::vector<execplan::CalpontSystemCatalog::ColType> fColumnTypes;
std::map<UniqId, uint32_t> fColumnMap;
bool fVarBinOK;
};
} // namespace joblist