[CP] fix some mysql and information_schema not compat with mysql5.7
This commit is contained in:
committed by
ob-robot
parent
98b9115578
commit
4337f7c376
@ -538,9 +538,16 @@ int ObInfoSchemaColumnsTable::fill_row_cells(const ObString &database_name,
|
|||||||
casted_cell.reset();
|
casted_cell.reset();
|
||||||
const ObObj *res_cell = NULL;
|
const ObObj *res_cell = NULL;
|
||||||
ObObj def_obj = column_schema->get_cur_default_value();
|
ObObj def_obj = column_schema->get_cur_default_value();
|
||||||
if (IS_DEFAULT_NOW_OBJ(def_obj)) {
|
ObObjType column_type = ObMaxType;
|
||||||
|
const ObColumnSchemaV2 *tmp_column_schema = NULL;
|
||||||
|
if (OB_ISNULL(table_schema_) ||
|
||||||
|
OB_ISNULL(tmp_column_schema = table_schema_->get_column_schema(col_id))) {
|
||||||
|
ret = OB_ERR_UNEXPECTED;
|
||||||
|
SERVER_LOG(WARN, "table or column schema is null", KR(ret), KP(table_schema_), KP(tmp_column_schema));
|
||||||
|
} else if (FALSE_IT(column_type = tmp_column_schema->get_meta_type().get_type())) {
|
||||||
|
} else if (IS_DEFAULT_NOW_OBJ(def_obj)) {
|
||||||
ObObj def_now_obj;
|
ObObj def_now_obj;
|
||||||
def_now_obj.set_varchar(ObString::make_string(N_UPPERCASE_CUR_TIMESTAMP));
|
def_now_obj.set_string(column_type, ObString::make_string(N_UPPERCASE_CUR_TIMESTAMP));
|
||||||
cells[cell_idx] = def_now_obj;
|
cells[cell_idx] = def_now_obj;
|
||||||
} else if (def_obj.is_bit() || ob_is_enum_or_set_type(def_obj.get_type())) {
|
} else if (def_obj.is_bit() || ob_is_enum_or_set_type(def_obj.get_type())) {
|
||||||
char *buf = NULL;
|
char *buf = NULL;
|
||||||
@ -553,24 +560,24 @@ int ObInfoSchemaColumnsTable::fill_row_cells(const ObString &database_name,
|
|||||||
if (OB_FAIL(def_obj.print_varchar_literal(buf, buf_len, pos, TZ_INFO(session_)))) {
|
if (OB_FAIL(def_obj.print_varchar_literal(buf, buf_len, pos, TZ_INFO(session_)))) {
|
||||||
SERVER_LOG(WARN, "fail to print varchar literal", K(ret), K(def_obj), K(buf_len), K(pos), K(buf));
|
SERVER_LOG(WARN, "fail to print varchar literal", K(ret), K(def_obj), K(buf_len), K(pos), K(buf));
|
||||||
} else {
|
} else {
|
||||||
cells[cell_idx].set_varchar(ObString(static_cast<int32_t>(pos), buf));
|
cells[cell_idx].set_string(column_type, ObString(static_cast<int32_t>(pos), buf));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (OB_FAIL(def_obj.print_plain_str_literal(column_schema->get_extended_type_info(), buf, buf_len, pos))) {
|
if (OB_FAIL(def_obj.print_plain_str_literal(column_schema->get_extended_type_info(), buf, buf_len, pos))) {
|
||||||
SERVER_LOG(WARN, "fail to print plain str literal", KPC(column_schema), K(buf), K(buf_len), K(pos), K(ret));
|
SERVER_LOG(WARN, "fail to print plain str literal", KPC(column_schema), K(buf), K(buf_len), K(pos), K(ret));
|
||||||
} else {
|
} else {
|
||||||
cells[cell_idx].set_varchar(ObString(static_cast<int32_t>(pos), buf));
|
cells[cell_idx].set_string(column_type, ObString(static_cast<int32_t>(pos), buf));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (OB_FAIL(ObObjCaster::to_type(ObVarcharType, cast_ctx,
|
if (OB_FAIL(ObObjCaster::to_type(column_type, cast_ctx,
|
||||||
def_obj,
|
def_obj,
|
||||||
casted_cell, res_cell))) {
|
casted_cell, res_cell))) {
|
||||||
SERVER_LOG(WARN, "failed to cast to ObVarcharType object",
|
SERVER_LOG(WARN, "failed to cast to object",
|
||||||
K(ret), K(def_obj));
|
K(ret), K(def_obj));
|
||||||
} else if (OB_ISNULL(res_cell)) {
|
} else if (OB_ISNULL(res_cell)) {
|
||||||
ret = OB_ERR_UNEXPECTED;
|
ret = OB_ERR_UNEXPECTED;
|
||||||
SERVER_LOG(WARN, "succ to cast to ObVarcharType, but res_cell is NULL",
|
SERVER_LOG(WARN, "succ to cast to object, but res_cell is NULL",
|
||||||
K(ret), K(def_obj));
|
K(ret), K(def_obj));
|
||||||
} else {
|
} else {
|
||||||
cells[cell_idx] = *res_cell;
|
cells[cell_idx] = *res_cell;
|
||||||
@ -591,7 +598,14 @@ int ObInfoSchemaColumnsTable::fill_row_cells(const ObString &database_name,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case DATA_TYPE: {
|
case DATA_TYPE: {
|
||||||
if (OB_FAIL(ob_sql_type_str(data_type_str_,
|
ObObjType column_type = ObMaxType;
|
||||||
|
const ObColumnSchemaV2 *tmp_column_schema = NULL;
|
||||||
|
if (OB_ISNULL(table_schema_) ||
|
||||||
|
OB_ISNULL(tmp_column_schema = table_schema_->get_column_schema(col_id))) {
|
||||||
|
ret = OB_ERR_UNEXPECTED;
|
||||||
|
SERVER_LOG(WARN, "table or column schema is null", KR(ret), KP(table_schema_), KP(tmp_column_schema));
|
||||||
|
} else if (FALSE_IT(column_type = tmp_column_schema->get_meta_type().get_type())) {
|
||||||
|
} else if (OB_FAIL(ob_sql_type_str(data_type_str_,
|
||||||
column_type_str_len_,
|
column_type_str_len_,
|
||||||
column_schema->get_data_type(),
|
column_schema->get_data_type(),
|
||||||
column_schema->get_collation_type(),
|
column_schema->get_collation_type(),
|
||||||
@ -600,7 +614,7 @@ int ObInfoSchemaColumnsTable::fill_row_cells(const ObString &database_name,
|
|||||||
} else {
|
} else {
|
||||||
ObString type_val(column_type_str_len_,
|
ObString type_val(column_type_str_len_,
|
||||||
static_cast<int32_t>(strlen(data_type_str_)),data_type_str_);
|
static_cast<int32_t>(strlen(data_type_str_)),data_type_str_);
|
||||||
cells[cell_idx].set_varchar(type_val);
|
cells[cell_idx].set_string(column_type, type_val);
|
||||||
cells[cell_idx].set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
cells[cell_idx].set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -702,7 +716,14 @@ int ObInfoSchemaColumnsTable::fill_row_cells(const ObString &database_name,
|
|||||||
const ObLengthSemantics default_length_semantics = session_->get_local_nls_length_semantics();
|
const ObLengthSemantics default_length_semantics = session_->get_local_nls_length_semantics();
|
||||||
const uint64_t sub_type = column_schema->is_xmltype() ?
|
const uint64_t sub_type = column_schema->is_xmltype() ?
|
||||||
column_schema->get_sub_data_type() : static_cast<uint64_t>(column_schema->get_geo_type());
|
column_schema->get_sub_data_type() : static_cast<uint64_t>(column_schema->get_geo_type());
|
||||||
if (OB_FAIL(get_type_str(column_schema->get_meta_type(),
|
ObObjType column_type = ObMaxType;
|
||||||
|
const ObColumnSchemaV2 *tmp_column_schema = NULL;
|
||||||
|
if (OB_ISNULL(table_schema_) ||
|
||||||
|
OB_ISNULL(tmp_column_schema = table_schema_->get_column_schema(col_id))) {
|
||||||
|
ret = OB_ERR_UNEXPECTED;
|
||||||
|
SERVER_LOG(WARN, "table or column schema is null", KR(ret), KP(table_schema_), KP(tmp_column_schema));
|
||||||
|
} else if (FALSE_IT(column_type = tmp_column_schema->get_meta_type().get_type())) {
|
||||||
|
} else if (OB_FAIL(get_type_str(column_schema->get_meta_type(),
|
||||||
column_schema->get_accuracy(),
|
column_schema->get_accuracy(),
|
||||||
column_schema->get_extended_type_info(),
|
column_schema->get_extended_type_info(),
|
||||||
default_length_semantics,
|
default_length_semantics,
|
||||||
@ -717,7 +738,7 @@ int ObInfoSchemaColumnsTable::fill_row_cells(const ObString &database_name,
|
|||||||
}
|
}
|
||||||
if (OB_SUCC(ret)) {
|
if (OB_SUCC(ret)) {
|
||||||
ObString type_val(column_type_str_len_, static_cast<int32_t>(strlen(column_type_str_)),column_type_str_);
|
ObString type_val(column_type_str_len_, static_cast<int32_t>(strlen(column_type_str_)),column_type_str_);
|
||||||
cells[cell_idx].set_varchar(type_val);
|
cells[cell_idx].set_string(column_type, type_val);
|
||||||
cells[cell_idx].set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
cells[cell_idx].set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -809,16 +830,32 @@ int ObInfoSchemaColumnsTable::fill_row_cells(const ObString &database_name,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case COLUMN_COMMENT: {
|
case COLUMN_COMMENT: {
|
||||||
cells[cell_idx].set_varchar(column_schema->get_comment_str());
|
ObObjType column_type = ObMaxType;
|
||||||
cells[cell_idx].set_collation_type(ObCharset::get_default_collation(
|
const ObColumnSchemaV2 *tmp_column_schema = NULL;
|
||||||
ObCharset::get_default_charset()));
|
if (OB_ISNULL(table_schema_) ||
|
||||||
|
OB_ISNULL(tmp_column_schema = table_schema_->get_column_schema(col_id))) {
|
||||||
|
ret = OB_ERR_UNEXPECTED;
|
||||||
|
SERVER_LOG(WARN, "table or column schema is null", KR(ret), KP(table_schema_), KP(tmp_column_schema));
|
||||||
|
} else if (FALSE_IT(column_type = tmp_column_schema->get_meta_type().get_type())) {
|
||||||
|
} else {
|
||||||
|
cells[cell_idx].set_string(column_type, column_schema->get_comment_str());
|
||||||
|
cells[cell_idx].set_collation_type(ObCharset::get_default_collation(
|
||||||
|
ObCharset::get_default_charset()));
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case GENERATION_EXPRESSION: {
|
case GENERATION_EXPRESSION: {
|
||||||
if (column_schema->is_generated_column()) {
|
ObObjType column_type = ObMaxType;
|
||||||
cells[cell_idx].set_varchar(column_schema->get_orig_default_value().get_string());
|
const ObColumnSchemaV2 *tmp_column_schema = NULL;
|
||||||
|
if (OB_ISNULL(table_schema_) ||
|
||||||
|
OB_ISNULL(tmp_column_schema = table_schema_->get_column_schema(col_id))) {
|
||||||
|
ret = OB_ERR_UNEXPECTED;
|
||||||
|
SERVER_LOG(WARN, "table or column schema is null", KR(ret), KP(table_schema_), KP(tmp_column_schema));
|
||||||
|
} else if (FALSE_IT(column_type = tmp_column_schema->get_meta_type().get_type())) {
|
||||||
|
} else if (column_schema->is_generated_column()) {
|
||||||
|
cells[cell_idx].set_string(column_type, column_schema->get_orig_default_value().get_string());
|
||||||
} else {
|
} else {
|
||||||
cells[cell_idx].set_varchar("");
|
cells[cell_idx].set_string(column_type, ObString(""));
|
||||||
}
|
}
|
||||||
cells[cell_idx].set_collation_type(ObCharset::get_default_collation(
|
cells[cell_idx].set_collation_type(ObCharset::get_default_collation(
|
||||||
ObCharset::get_default_charset()));
|
ObCharset::get_default_charset()));
|
||||||
@ -942,11 +979,18 @@ int ObInfoSchemaColumnsTable::fill_row_cells(const common::ObString &database_na
|
|||||||
casted_cell.reset();
|
casted_cell.reset();
|
||||||
const ObObj *res_cell = NULL;
|
const ObObj *res_cell = NULL;
|
||||||
ColumnItem column_item;
|
ColumnItem column_item;
|
||||||
if (OB_FAIL(ObResolverUtils::resolve_default_value_and_expr_from_select_item(select_item, column_item, select_stmt))) {
|
ObObjType column_type = ObMaxType;
|
||||||
|
const ObColumnSchemaV2 *tmp_column_schema = NULL;
|
||||||
|
if (OB_ISNULL(table_schema_) ||
|
||||||
|
OB_ISNULL(tmp_column_schema = table_schema_->get_column_schema(col_id))) {
|
||||||
|
ret = OB_ERR_UNEXPECTED;
|
||||||
|
SERVER_LOG(WARN, "table or column schema is null", KR(ret), KP(table_schema_), KP(tmp_column_schema));
|
||||||
|
} else if (FALSE_IT(column_type = tmp_column_schema->get_meta_type().get_type())) {
|
||||||
|
} else if (OB_FAIL(ObResolverUtils::resolve_default_value_and_expr_from_select_item(select_item, column_item, select_stmt))) {
|
||||||
SERVER_LOG(WARN, "failed to resolve default value", K(ret));
|
SERVER_LOG(WARN, "failed to resolve default value", K(ret));
|
||||||
} else if (IS_DEFAULT_NOW_OBJ(column_item.default_value_)) {
|
} else if (IS_DEFAULT_NOW_OBJ(column_item.default_value_)) {
|
||||||
ObObj def_now_obj;
|
ObObj def_now_obj;
|
||||||
def_now_obj.set_varchar(ObString::make_string(N_UPPERCASE_CUR_TIMESTAMP));
|
def_now_obj.set_string(column_type, ObString::make_string(N_UPPERCASE_CUR_TIMESTAMP));
|
||||||
cells[cell_idx] = def_now_obj;
|
cells[cell_idx] = def_now_obj;
|
||||||
} else if (column_item.default_value_.is_bit() || ob_is_enum_or_set_type(column_item.default_value_.get_type())) {
|
} else if (column_item.default_value_.is_bit() || ob_is_enum_or_set_type(column_item.default_value_.get_type())) {
|
||||||
char *buf = NULL;
|
char *buf = NULL;
|
||||||
@ -959,7 +1003,7 @@ int ObInfoSchemaColumnsTable::fill_row_cells(const common::ObString &database_na
|
|||||||
if (OB_FAIL(column_item.default_value_.print_varchar_literal(buf, buf_len, pos, TZ_INFO(session_)))) {
|
if (OB_FAIL(column_item.default_value_.print_varchar_literal(buf, buf_len, pos, TZ_INFO(session_)))) {
|
||||||
SERVER_LOG(WARN, "fail to print varchar literal", K(ret), K(column_item.default_value_), K(buf_len), K(pos), K(buf));
|
SERVER_LOG(WARN, "fail to print varchar literal", K(ret), K(column_item.default_value_), K(buf_len), K(pos), K(buf));
|
||||||
} else {
|
} else {
|
||||||
cells[cell_idx].set_varchar(ObString(static_cast<int32_t>(pos), buf));
|
cells[cell_idx].set_string(column_type, ObString(static_cast<int32_t>(pos), buf));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
ObArray<common::ObString> extended_type_info;
|
ObArray<common::ObString> extended_type_info;
|
||||||
@ -969,18 +1013,18 @@ int ObInfoSchemaColumnsTable::fill_row_cells(const common::ObString &database_na
|
|||||||
} else if (OB_FAIL(column_item.default_value_.print_plain_str_literal(extended_type_info, buf, buf_len, pos))) {
|
} else if (OB_FAIL(column_item.default_value_.print_plain_str_literal(extended_type_info, buf, buf_len, pos))) {
|
||||||
SERVER_LOG(WARN, "fail to print plain str literal", K(buf), K(buf_len), K(pos), K(ret));
|
SERVER_LOG(WARN, "fail to print plain str literal", K(buf), K(buf_len), K(pos), K(ret));
|
||||||
} else {
|
} else {
|
||||||
cells[cell_idx].set_varchar(ObString(static_cast<int32_t>(pos), buf));
|
cells[cell_idx].set_string(column_type, ObString(static_cast<int32_t>(pos), buf));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (OB_FAIL(ObObjCaster::to_type(ObVarcharType, cast_ctx,
|
if (OB_FAIL(ObObjCaster::to_type(column_type, cast_ctx,
|
||||||
column_item.default_value_,
|
column_item.default_value_,
|
||||||
casted_cell, res_cell))) {
|
casted_cell, res_cell))) {
|
||||||
SERVER_LOG(WARN, "failed to cast to ObVarcharType object",
|
SERVER_LOG(WARN, "failed to cast to object",
|
||||||
K(ret), K(column_item.default_value_));
|
K(ret), K(column_item.default_value_));
|
||||||
} else if (OB_ISNULL(res_cell)) {
|
} else if (OB_ISNULL(res_cell)) {
|
||||||
ret = OB_ERR_UNEXPECTED;
|
ret = OB_ERR_UNEXPECTED;
|
||||||
SERVER_LOG(WARN, "succ to cast to ObVarcharType, but res_cell is NULL",
|
SERVER_LOG(WARN, "succ to cast to object, but res_cell is NULL",
|
||||||
K(ret), K(column_item.default_value_));
|
K(ret), K(column_item.default_value_));
|
||||||
} else {
|
} else {
|
||||||
cells[cell_idx] = *res_cell;
|
cells[cell_idx] = *res_cell;
|
||||||
@ -1006,7 +1050,14 @@ int ObInfoSchemaColumnsTable::fill_row_cells(const common::ObString &database_na
|
|||||||
ObString type_str(strlen(column_type_str_), column_type_str_);
|
ObString type_str(strlen(column_type_str_), column_type_str_);
|
||||||
geo_sub_type = ObGeoTypeUtil::get_geo_type_by_name(type_str);
|
geo_sub_type = ObGeoTypeUtil::get_geo_type_by_name(type_str);
|
||||||
}
|
}
|
||||||
if (OB_FAIL(ob_sql_type_str(data_type_str_,
|
ObObjType column_type = ObMaxType;
|
||||||
|
const ObColumnSchemaV2 *tmp_column_schema = NULL;
|
||||||
|
if (OB_ISNULL(table_schema_) ||
|
||||||
|
OB_ISNULL(tmp_column_schema = table_schema_->get_column_schema(col_id))) {
|
||||||
|
ret = OB_ERR_UNEXPECTED;
|
||||||
|
SERVER_LOG(WARN, "table or column schema is null", KR(ret), KP(table_schema_), KP(tmp_column_schema));
|
||||||
|
} else if (FALSE_IT(column_type = tmp_column_schema->get_meta_type().get_type())) {
|
||||||
|
} else if (OB_FAIL(ob_sql_type_str(data_type_str_,
|
||||||
column_type_str_len_,
|
column_type_str_len_,
|
||||||
column_attributes.result_type_.get_type(),
|
column_attributes.result_type_.get_type(),
|
||||||
ObCharset::get_default_collation(ObCharset::get_default_charset()),
|
ObCharset::get_default_collation(ObCharset::get_default_charset()),
|
||||||
@ -1015,7 +1066,7 @@ int ObInfoSchemaColumnsTable::fill_row_cells(const common::ObString &database_na
|
|||||||
} else {
|
} else {
|
||||||
ObString type_val(column_type_str_len_,
|
ObString type_val(column_type_str_len_,
|
||||||
static_cast<int32_t>(strlen(data_type_str_)),data_type_str_);
|
static_cast<int32_t>(strlen(data_type_str_)),data_type_str_);
|
||||||
cells[cell_idx].set_varchar(type_val);
|
cells[cell_idx].set_string(column_type, type_val);
|
||||||
cells[cell_idx].set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
cells[cell_idx].set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -1099,9 +1150,18 @@ int ObInfoSchemaColumnsTable::fill_row_cells(const common::ObString &database_na
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case COLUMN_TYPE: {
|
case COLUMN_TYPE: {
|
||||||
ObString type_val(column_type_str_len_, static_cast<int32_t>(strlen(column_type_str_)),column_type_str_);
|
ObObjType column_type = ObMaxType;
|
||||||
cells[cell_idx].set_varchar(type_val);
|
const ObColumnSchemaV2 *tmp_column_schema = NULL;
|
||||||
cells[cell_idx].set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
if (OB_ISNULL(table_schema_) ||
|
||||||
|
OB_ISNULL(tmp_column_schema = table_schema_->get_column_schema(col_id))) {
|
||||||
|
ret = OB_ERR_UNEXPECTED;
|
||||||
|
SERVER_LOG(WARN, "table or column schema is null", KR(ret), KP(table_schema_), KP(tmp_column_schema));
|
||||||
|
} else if (FALSE_IT(column_type = tmp_column_schema->get_meta_type().get_type())) {
|
||||||
|
} else {
|
||||||
|
ObString type_val(column_type_str_len_, static_cast<int32_t>(strlen(column_type_str_)),column_type_str_);
|
||||||
|
cells[cell_idx].set_string(column_type, type_val);
|
||||||
|
cells[cell_idx].set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case COLUMN_KEY: {
|
case COLUMN_KEY: {
|
||||||
|
|||||||
@ -114,7 +114,7 @@ int ObMySQLDBTable::inner_get_next_row(common::ObNewRow *&row)
|
|||||||
EXIST_PRIV_CASE(CREATE);
|
EXIST_PRIV_CASE(CREATE);
|
||||||
EXIST_PRIV_CASE(DROP);
|
EXIST_PRIV_CASE(DROP);
|
||||||
EXIST_PRIV_CASE(GRANT);
|
EXIST_PRIV_CASE(GRANT);
|
||||||
NO_EXIST_PRIV_CASE(REFERENCE);
|
NO_EXIST_PRIV_CASE(REFERENCES);
|
||||||
EXIST_PRIV_CASE(INDEX);
|
EXIST_PRIV_CASE(INDEX);
|
||||||
EXIST_PRIV_CASE(ALTER);
|
EXIST_PRIV_CASE(ALTER);
|
||||||
NO_EXIST_PRIV_CASE(CREATE_TMP_TABLE);
|
NO_EXIST_PRIV_CASE(CREATE_TMP_TABLE);
|
||||||
|
|||||||
@ -43,7 +43,7 @@ private:
|
|||||||
CREATE_PRIV,
|
CREATE_PRIV,
|
||||||
DROP_PRIV,
|
DROP_PRIV,
|
||||||
GRANT_PRIV,
|
GRANT_PRIV,
|
||||||
REFERENCE_PRIV,
|
REFERENCES_PRIV,
|
||||||
INDEX_PRIV,
|
INDEX_PRIV,
|
||||||
ALTER_PRIV,
|
ALTER_PRIV,
|
||||||
CREATE_TMP_TABLE_PRIV,
|
CREATE_TMP_TABLE_PRIV,
|
||||||
|
|||||||
@ -128,7 +128,7 @@ int ObMySQLUserTable::inner_get_next_row(common::ObNewRow *&row)
|
|||||||
EXIST_PRIV_CASE(PROCESS);
|
EXIST_PRIV_CASE(PROCESS);
|
||||||
EXIST_PRIV_CASE(FILE);
|
EXIST_PRIV_CASE(FILE);
|
||||||
EXIST_PRIV_CASE(GRANT);
|
EXIST_PRIV_CASE(GRANT);
|
||||||
NO_EXIST_PRIV_CASE(REFERENCE);
|
NO_EXIST_PRIV_CASE(REFERENCES);
|
||||||
EXIST_PRIV_CASE(INDEX);
|
EXIST_PRIV_CASE(INDEX);
|
||||||
EXIST_PRIV_CASE(ALTER);
|
EXIST_PRIV_CASE(ALTER);
|
||||||
EXIST_PRIV_CASE(SHOW_DB);
|
EXIST_PRIV_CASE(SHOW_DB);
|
||||||
|
|||||||
@ -41,7 +41,7 @@ private:
|
|||||||
PROCESS_PRIV,
|
PROCESS_PRIV,
|
||||||
FILE_PRIV,
|
FILE_PRIV,
|
||||||
GRANT_PRIV,
|
GRANT_PRIV,
|
||||||
REFERENCE_PRIV,
|
REFERENCES_PRIV,
|
||||||
INDEX_PRIV,
|
INDEX_PRIV,
|
||||||
ALTER_PRIV,
|
ALTER_PRIV,
|
||||||
SHOW_DB_PRIV,
|
SHOW_DB_PRIV,
|
||||||
|
|||||||
@ -516,7 +516,7 @@ int ObInnerTableSchema::user_schema(ObTableSchema &table_schema)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (OB_SUCC(ret)) {
|
if (OB_SUCC(ret)) {
|
||||||
ADD_COLUMN_SCHEMA("reference_priv", //column_name
|
ADD_COLUMN_SCHEMA("references_priv", //column_name
|
||||||
++column_id, //column_id
|
++column_id, //column_id
|
||||||
0, //rowkey_id
|
0, //rowkey_id
|
||||||
0, //index_id
|
0, //index_id
|
||||||
@ -1222,7 +1222,7 @@ int ObInnerTableSchema::db_schema(ObTableSchema &table_schema)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (OB_SUCC(ret)) {
|
if (OB_SUCC(ret)) {
|
||||||
ADD_COLUMN_SCHEMA("reference_priv", //column_name
|
ADD_COLUMN_SCHEMA("references_priv", //column_name
|
||||||
++column_id, //column_id
|
++column_id, //column_id
|
||||||
0, //rowkey_id
|
0, //rowkey_id
|
||||||
0, //index_id
|
0, //index_id
|
||||||
@ -2112,7 +2112,7 @@ int ObInnerTableSchema::proc_schema(ObTableSchema &table_schema)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (OB_SUCC(ret)) {
|
if (OB_SUCC(ret)) {
|
||||||
ADD_COLUMN_SCHEMA("collation_database", //column_name
|
ADD_COLUMN_SCHEMA("db_collation", //column_name
|
||||||
++column_id, //column_id
|
++column_id, //column_id
|
||||||
0, //rowkey_id
|
0, //rowkey_id
|
||||||
0, //index_id
|
0, //index_id
|
||||||
|
|||||||
@ -9560,9 +9560,9 @@ int ObInnerTableSchema::all_virtual_information_columns_schema(ObTableSchema &ta
|
|||||||
0, //rowkey_id
|
0, //rowkey_id
|
||||||
0, //index_id
|
0, //index_id
|
||||||
0, //part_key_pos
|
0, //part_key_pos
|
||||||
ObVarcharType, //column_type
|
ObLongTextType, //column_type
|
||||||
CS_TYPE_INVALID, //column_collation_type
|
CS_TYPE_INVALID, //column_collation_type
|
||||||
OB_MAX_DEFAULT_VALUE_LENGTH, //column_length
|
0, //column_length
|
||||||
-1, //column_precision
|
-1, //column_precision
|
||||||
-1, //column_scale
|
-1, //column_scale
|
||||||
true, //is_nullable
|
true, //is_nullable
|
||||||
@ -9590,15 +9590,15 @@ int ObInnerTableSchema::all_virtual_information_columns_schema(ObTableSchema &ta
|
|||||||
|
|
||||||
if (OB_SUCC(ret)) {
|
if (OB_SUCC(ret)) {
|
||||||
ObObj data_type_default;
|
ObObj data_type_default;
|
||||||
data_type_default.set_varchar(ObString::make_string(""));
|
data_type_default.set_lob_value(ObLongTextType, "", static_cast<int32_t>(strlen("")));
|
||||||
ADD_COLUMN_SCHEMA_T("DATA_TYPE", //column_name
|
ADD_COLUMN_SCHEMA_T("DATA_TYPE", //column_name
|
||||||
++column_id, //column_id
|
++column_id, //column_id
|
||||||
0, //rowkey_id
|
0, //rowkey_id
|
||||||
0, //index_id
|
0, //index_id
|
||||||
0, //part_key_pos
|
0, //part_key_pos
|
||||||
ObVarcharType, //column_type
|
ObLongTextType, //column_type
|
||||||
CS_TYPE_INVALID, //column_collation_type
|
CS_TYPE_INVALID, //column_collation_type
|
||||||
OB_MAX_VARCHAR_LENGTH, //column_length
|
0, //column_length
|
||||||
-1, //column_precision
|
-1, //column_precision
|
||||||
-1, //column_scale
|
-1, //column_scale
|
||||||
false, //is_nullable
|
false, //is_nullable
|
||||||
@ -9718,9 +9718,9 @@ int ObInnerTableSchema::all_virtual_information_columns_schema(ObTableSchema &ta
|
|||||||
0, //rowkey_id
|
0, //rowkey_id
|
||||||
0, //index_id
|
0, //index_id
|
||||||
0, //part_key_pos
|
0, //part_key_pos
|
||||||
ObVarcharType, //column_type
|
ObLongTextType, //column_type
|
||||||
CS_TYPE_INVALID, //column_collation_type
|
CS_TYPE_INVALID, //column_collation_type
|
||||||
OB_MAX_VARCHAR_LENGTH, //column_length
|
0, //column_length
|
||||||
-1, //column_precision
|
-1, //column_precision
|
||||||
-1, //column_scale
|
-1, //column_scale
|
||||||
false, //is_nullable
|
false, //is_nullable
|
||||||
@ -9786,15 +9786,15 @@ int ObInnerTableSchema::all_virtual_information_columns_schema(ObTableSchema &ta
|
|||||||
|
|
||||||
if (OB_SUCC(ret)) {
|
if (OB_SUCC(ret)) {
|
||||||
ObObj column_comment_default;
|
ObObj column_comment_default;
|
||||||
column_comment_default.set_varchar(ObString::make_string(""));
|
column_comment_default.set_lob_value(ObLongTextType, "", static_cast<int32_t>(strlen("")));
|
||||||
ADD_COLUMN_SCHEMA_T("COLUMN_COMMENT", //column_name
|
ADD_COLUMN_SCHEMA_T("COLUMN_COMMENT", //column_name
|
||||||
++column_id, //column_id
|
++column_id, //column_id
|
||||||
0, //rowkey_id
|
0, //rowkey_id
|
||||||
0, //index_id
|
0, //index_id
|
||||||
0, //part_key_pos
|
0, //part_key_pos
|
||||||
ObVarcharType, //column_type
|
ObLongTextType, //column_type
|
||||||
CS_TYPE_INVALID, //column_collation_type
|
CS_TYPE_INVALID, //column_collation_type
|
||||||
MAX_COLUMN_COMMENT_LENGTH, //column_length
|
0, //column_length
|
||||||
-1, //column_precision
|
-1, //column_precision
|
||||||
-1, //column_scale
|
-1, //column_scale
|
||||||
false, //is_nullable
|
false, //is_nullable
|
||||||
@ -9805,15 +9805,15 @@ int ObInnerTableSchema::all_virtual_information_columns_schema(ObTableSchema &ta
|
|||||||
|
|
||||||
if (OB_SUCC(ret)) {
|
if (OB_SUCC(ret)) {
|
||||||
ObObj generation_expression_default;
|
ObObj generation_expression_default;
|
||||||
generation_expression_default.set_varchar(ObString::make_string(""));
|
generation_expression_default.set_lob_value(ObLongTextType, "", static_cast<int32_t>(strlen("")));
|
||||||
ADD_COLUMN_SCHEMA_T("GENERATION_EXPRESSION", //column_name
|
ADD_COLUMN_SCHEMA_T("GENERATION_EXPRESSION", //column_name
|
||||||
++column_id, //column_id
|
++column_id, //column_id
|
||||||
0, //rowkey_id
|
0, //rowkey_id
|
||||||
0, //index_id
|
0, //index_id
|
||||||
0, //part_key_pos
|
0, //part_key_pos
|
||||||
ObVarcharType, //column_type
|
ObLongTextType, //column_type
|
||||||
CS_TYPE_INVALID, //column_collation_type
|
CS_TYPE_INVALID, //column_collation_type
|
||||||
OB_MAX_DEFAULT_VALUE_LENGTH, //column_length
|
0, //column_length
|
||||||
-1, //column_precision
|
-1, //column_precision
|
||||||
-1, //column_scale
|
-1, //column_scale
|
||||||
false, //is_nullable
|
false, //is_nullable
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -9089,7 +9089,7 @@ def_table_schema(
|
|||||||
('process_priv', 'varchar:1'),
|
('process_priv', 'varchar:1'),
|
||||||
('file_priv', 'varchar:1'),
|
('file_priv', 'varchar:1'),
|
||||||
('grant_priv', 'varchar:1'),
|
('grant_priv', 'varchar:1'),
|
||||||
('reference_priv', 'varchar:1'),
|
('references_priv', 'varchar:1'),
|
||||||
('index_priv', 'varchar:1'),
|
('index_priv', 'varchar:1'),
|
||||||
('alter_priv', 'varchar:1'),
|
('alter_priv', 'varchar:1'),
|
||||||
('show_db_priv', 'varchar:1'),
|
('show_db_priv', 'varchar:1'),
|
||||||
@ -9146,7 +9146,7 @@ def_table_schema(
|
|||||||
('create_priv', 'varchar:1'),
|
('create_priv', 'varchar:1'),
|
||||||
('drop_priv', 'varchar:1'),
|
('drop_priv', 'varchar:1'),
|
||||||
('grant_priv', 'varchar:1'),
|
('grant_priv', 'varchar:1'),
|
||||||
('reference_priv', 'varchar:1'),
|
('references_priv', 'varchar:1'),
|
||||||
('index_priv', 'varchar:1'),
|
('index_priv', 'varchar:1'),
|
||||||
('alter_priv', 'varchar:1'),
|
('alter_priv', 'varchar:1'),
|
||||||
('create_tmp_table_priv', 'varchar:1'),
|
('create_tmp_table_priv', 'varchar:1'),
|
||||||
@ -9235,7 +9235,7 @@ def_table_schema(
|
|||||||
('comment', 'varchar:OB_MAX_VARCHAR_LENGTH', 'false', ''),
|
('comment', 'varchar:OB_MAX_VARCHAR_LENGTH', 'false', ''),
|
||||||
('character_set_client', 'varchar:MAX_CHARSET_LENGTH'),
|
('character_set_client', 'varchar:MAX_CHARSET_LENGTH'),
|
||||||
('collation_connection', 'varchar:MAX_CHARSET_LENGTH'),
|
('collation_connection', 'varchar:MAX_CHARSET_LENGTH'),
|
||||||
('collation_database', 'varchar:MAX_CHARSET_LENGTH'),
|
('db_collation', 'varchar:MAX_CHARSET_LENGTH'),
|
||||||
('body_utf8', 'varchar:OB_MAX_VARCHAR_LENGTH'),
|
('body_utf8', 'varchar:OB_MAX_VARCHAR_LENGTH'),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
@ -9987,9 +9987,9 @@ def_table_schema(
|
|||||||
('TABLE_CATALOG', 'varchar:MAX_TABLE_CATALOG_LENGTH', 'false', ''),
|
('TABLE_CATALOG', 'varchar:MAX_TABLE_CATALOG_LENGTH', 'false', ''),
|
||||||
('COLUMN_NAME', 'varchar:OB_MAX_COLUMN_NAME_LENGTH', 'false', ''),
|
('COLUMN_NAME', 'varchar:OB_MAX_COLUMN_NAME_LENGTH', 'false', ''),
|
||||||
('ORDINAL_POSITION', 'uint', 'false', '0'),
|
('ORDINAL_POSITION', 'uint', 'false', '0'),
|
||||||
('COLUMN_DEFAULT', 'varchar:OB_MAX_DEFAULT_VALUE_LENGTH', 'true'),
|
('COLUMN_DEFAULT', 'longtext', 'true'),
|
||||||
('IS_NULLABLE', 'varchar:COLUMN_NULLABLE_LENGTH', 'false', ''),
|
('IS_NULLABLE', 'varchar:COLUMN_NULLABLE_LENGTH', 'false', ''),
|
||||||
('DATA_TYPE', 'varchar:OB_MAX_VARCHAR_LENGTH', 'false', ''),
|
('DATA_TYPE', 'longtext', 'false', ''),
|
||||||
('CHARACTER_MAXIMUM_LENGTH', 'uint', 'true'),
|
('CHARACTER_MAXIMUM_LENGTH', 'uint', 'true'),
|
||||||
('CHARACTER_OCTET_LENGTH', 'uint', 'true'),
|
('CHARACTER_OCTET_LENGTH', 'uint', 'true'),
|
||||||
('NUMERIC_PRECISION', 'uint', 'true'),
|
('NUMERIC_PRECISION', 'uint', 'true'),
|
||||||
@ -9997,12 +9997,12 @@ def_table_schema(
|
|||||||
('DATETIME_PRECISION', 'uint', 'true'),
|
('DATETIME_PRECISION', 'uint', 'true'),
|
||||||
('CHARACTER_SET_NAME', 'varchar:MAX_CHARSET_LENGTH', 'true'),
|
('CHARACTER_SET_NAME', 'varchar:MAX_CHARSET_LENGTH', 'true'),
|
||||||
('COLLATION_NAME', 'varchar:MAX_COLLATION_LENGTH', 'true'),
|
('COLLATION_NAME', 'varchar:MAX_COLLATION_LENGTH', 'true'),
|
||||||
('COLUMN_TYPE', 'varchar:OB_MAX_VARCHAR_LENGTH'),
|
('COLUMN_TYPE', 'longtext'),
|
||||||
('COLUMN_KEY', 'varchar:MAX_COLUMN_KEY_LENGTH', 'false', ''),
|
('COLUMN_KEY', 'varchar:MAX_COLUMN_KEY_LENGTH', 'false', ''),
|
||||||
('EXTRA', 'varchar:COLUMN_EXTRA_LENGTH', 'false', ''),
|
('EXTRA', 'varchar:COLUMN_EXTRA_LENGTH', 'false', ''),
|
||||||
('PRIVILEGES', 'varchar:MAX_COLUMN_PRIVILEGE_LENGTH', 'false', ''),
|
('PRIVILEGES', 'varchar:MAX_COLUMN_PRIVILEGE_LENGTH', 'false', ''),
|
||||||
('COLUMN_COMMENT', 'varchar:MAX_COLUMN_COMMENT_LENGTH', 'false', ''),
|
('COLUMN_COMMENT', 'longtext', 'false', ''),
|
||||||
('GENERATION_EXPRESSION', 'varchar:OB_MAX_DEFAULT_VALUE_LENGTH', 'false', '')
|
('GENERATION_EXPRESSION', 'longtext', 'false', '')
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -14187,7 +14187,7 @@ def_table_schema(
|
|||||||
CAST(mp.DEFINER AS CHAR(93)) as DEFINER,
|
CAST(mp.DEFINER AS CHAR(93)) as DEFINER,
|
||||||
CAST(mp.CHARACTER_SET_CLIENT AS CHAR(32)) as CHARACTER_SET_CLIENT,
|
CAST(mp.CHARACTER_SET_CLIENT AS CHAR(32)) as CHARACTER_SET_CLIENT,
|
||||||
CAST(mp.COLLATION_CONNECTION AS CHAR(32)) as COLLATION_CONNECTION,
|
CAST(mp.COLLATION_CONNECTION AS CHAR(32)) as COLLATION_CONNECTION,
|
||||||
CAST(mp.collation_database AS CHAR(32)) as DATABASE_COLLATION
|
CAST(mp.db_collation AS CHAR(32)) as DATABASE_COLLATION
|
||||||
from
|
from
|
||||||
mysql.proc as mp
|
mysql.proc as mp
|
||||||
join oceanbase.__all_database a
|
join oceanbase.__all_database a
|
||||||
|
|||||||
@ -24,9 +24,9 @@ TABLE_SCHEMA varchar(128) NO NULL
|
|||||||
TABLE_NAME varchar(256) NO NULL
|
TABLE_NAME varchar(256) NO NULL
|
||||||
COLUMN_NAME varchar(128) NO
|
COLUMN_NAME varchar(128) NO
|
||||||
ORDINAL_POSITION bigint(20) unsigned NO
|
ORDINAL_POSITION bigint(20) unsigned NO
|
||||||
COLUMN_DEFAULT varchar(262144) YES NULL
|
COLUMN_DEFAULT longtext YES NULL
|
||||||
IS_NULLABLE varchar(4) NO
|
IS_NULLABLE varchar(4) NO
|
||||||
DATA_TYPE varchar(1048576) NO
|
DATA_TYPE longtext NO
|
||||||
CHARACTER_MAXIMUM_LENGTH bigint(20) unsigned YES NULL
|
CHARACTER_MAXIMUM_LENGTH bigint(20) unsigned YES NULL
|
||||||
CHARACTER_OCTET_LENGTH bigint(20) unsigned YES NULL
|
CHARACTER_OCTET_LENGTH bigint(20) unsigned YES NULL
|
||||||
NUMERIC_PRECISION bigint(20) unsigned YES NULL
|
NUMERIC_PRECISION bigint(20) unsigned YES NULL
|
||||||
@ -34,12 +34,12 @@ NUMERIC_SCALE bigint(20) unsigned YES NULL
|
|||||||
DATETIME_PRECISION bigint(20) unsigned YES NULL
|
DATETIME_PRECISION bigint(20) unsigned YES NULL
|
||||||
CHARACTER_SET_NAME varchar(128) YES NULL
|
CHARACTER_SET_NAME varchar(128) YES NULL
|
||||||
COLLATION_NAME varchar(128) YES NULL
|
COLLATION_NAME varchar(128) YES NULL
|
||||||
COLUMN_TYPE varchar(1048576) NO NULL
|
COLUMN_TYPE longtext NO NULL
|
||||||
COLUMN_KEY varchar(3) NO
|
COLUMN_KEY varchar(3) NO
|
||||||
EXTRA varchar(4096) NO
|
EXTRA varchar(4096) NO
|
||||||
PRIVILEGES varchar(200) NO
|
PRIVILEGES varchar(200) NO
|
||||||
COLUMN_COMMENT varchar(2048) NO
|
COLUMN_COMMENT longtext NO
|
||||||
GENERATION_EXPRESSION varchar(262144) NO
|
GENERATION_EXPRESSION longtext NO
|
||||||
desc global_status;
|
desc global_status;
|
||||||
Field Type Null Key Default Extra
|
Field Type Null Key Default Extra
|
||||||
VARIABLE_NAME varchar(128) NO
|
VARIABLE_NAME varchar(128) NO
|
||||||
|
|||||||
Reference in New Issue
Block a user