Files
oceanbase/src/sql/resolver/ob_column_ref.h
wangzelin.wzl 93a1074b0c patch 4.0
2022-10-24 17:57:12 +08:00

103 lines
2.7 KiB
C++

/**
* Copyright (c) 2021 OceanBase
* OceanBase CE is licensed under Mulan PubL v2.
* You can use this software according to the terms and conditions of the Mulan PubL v2.
* You may obtain a copy of Mulan PubL v2 at:
* http://license.coscl.org.cn/MulanPubL-2.0
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
* See the Mulan PubL v2 for more details.
*/
#ifndef OCEANBASE_SQL_OB_COLUMN_REF_
#define OCEANBASE_SQL_OB_COLUMN_REF_
#include "lib/ob_name_def.h"
#include "lib/string/ob_string.h"
#include "lib/charset/ob_charset.h"
namespace oceanbase
{
namespace sql
{
class ObColumnRef
{
public:
ObColumnRef()
:database_name_(),
table_name_(),
column_name_(),
is_star_(false),
collation_type_(common::CS_TYPE_INVALID)
{
}
virtual ~ObColumnRef() {}
void set_database_name(common::ObString &database_name)
{
database_name_.assign_ptr(database_name.ptr(), database_name.length());
}
void set_table_name(common::ObString &table_name)
{
table_name_.assign_ptr(table_name.ptr(), table_name.length());
}
void set_column_name(common::ObString &column_name)
{
column_name_.assign_ptr(column_name.ptr(), column_name.length());
}
void set_star()
{
is_star_ = true;
}
bool is_star() const
{
return is_star_;
}
void get_database_name(common::ObString &database_name)const
{
database_name.assign_ptr(database_name_.ptr(), database_name_.length());
}
void get_table_name(common::ObString &table_name) const
{
table_name.assign_ptr(table_name_.ptr(), table_name_.length());
}
void get_column_name(common::ObString &column_name) const
{
column_name.assign_ptr(column_name_.ptr(), column_name_.length());
}
const common::ObString &get_database_name() const { return database_name_; }
const common::ObString &get_table_name() const { return table_name_; }
const common::ObString &get_column_name() const { return column_name_; }
const common::ObCollationType& get_collation_type() const { return collation_type_; }
void set_collation_type(const common::ObCollationType &collation_type)
{
collation_type_ = collation_type;
}
TO_STRING_KV(K(database_name_),
K(table_name_),
K(column_name_),
K(is_star_),
N_COLLATION, common::ObCharset::collation_name(collation_type_));
private:
common::ObString database_name_;
common::ObString table_name_;
common::ObString column_name_;
bool is_star_;
common::ObCollationType collation_type_;
};
}//namespace sql
}//namespace oceanbase
#endif