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