103 lines
2.7 KiB
C++
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
|