fix unknown error when has not privilege to do query

This commit is contained in:
obdev
2023-05-23 01:47:13 +00:00
committed by ob-robot
parent 5f81d12222
commit 4bd7e86da7
2 changed files with 20 additions and 16 deletions

View File

@ -452,6 +452,8 @@ int ObLogRestoreProxyUtil::check_begin_lsn(const uint64_t tenant_id)
LOG_WARN("fail to generate sql", KR(ret), K(tenant_id));
} else if (OB_FAIL(sql_proxy_.read(result, sql.ptr()))) {
LOG_WARN("check_begin_lsn failed", KR(ret), K(tenant_id), K(sql));
RESTORE_PROXY_USER_ERROR("tenant ls begin_lsn failed");
ret = OB_INVALID_ARGUMENT;
} else if (OB_ISNULL(result.get_result())) {
ret = OB_ERR_UNEXPECTED;
LOG_WARN("config result is null", KR(ret), K(tenant_id), K(sql));

View File

@ -393,6 +393,14 @@ int ObTenantResolver<T>::resolve_tenant_option(T *stmt, ParseNode *node,
return ret;
}
#define CHECK_SUPPORT_OPTION_USER_ERROR(args) \
{ \
LOG_USER_ERROR(OB_INVALID_ARGUMENT, args); \
ret = common::OB_INVALID_ARGUMENT; \
SQL_LOG(WARN, "invalid argument", KR(ret), K(node->type_)); \
break; \
}
template<class T>
int ObTenantResolver<T>::check_support_option(const T *stmt, const ParseNode *node)
{
@ -405,40 +413,34 @@ int ObTenantResolver<T>::check_support_option(const T *stmt, const ParseNode *no
if (stmt->get_stmt_type() == stmt::T_CREATE_STANDBY_TENANT) {
switch (node->type_) {
case T_REPLICA_NUM: {
LOG_USER_ERROR(OB_INVALID_ARGUMENT, "replica_num");
CHECK_SUPPORT_OPTION_USER_ERROR("replica_num");
}
case T_CHARSET: {
LOG_USER_ERROR(OB_INVALID_ARGUMENT, "charset");
CHECK_SUPPORT_OPTION_USER_ERROR("charset");
}
case T_COLLATION: {
LOG_USER_ERROR(OB_INVALID_ARGUMENT, "collation");
CHECK_SUPPORT_OPTION_USER_ERROR("collation");
}
case T_ENABLE_ARBITRATION_SERVICE: {
LOG_USER_ERROR(OB_INVALID_ARGUMENT, "enable_arbitration_service");
CHECK_SUPPORT_OPTION_USER_ERROR("enable_arbitration_service");
}
case T_ZONE_LIST: {
LOG_USER_ERROR(OB_INVALID_ARGUMENT, "zone_list");
CHECK_SUPPORT_OPTION_USER_ERROR("zone_list");
}
case T_READ_ONLY: {
LOG_USER_ERROR(OB_INVALID_ARGUMENT, "read_only");
CHECK_SUPPORT_OPTION_USER_ERROR("read_only");
}
case T_LOGONLY_REPLICA_NUM: {
LOG_USER_ERROR(OB_INVALID_ARGUMENT, "logonly_replica_num");
CHECK_SUPPORT_OPTION_USER_ERROR("logonly_replica_num");
}
case T_DEFAULT_TABLEGROUP: {
LOG_USER_ERROR(OB_INVALID_ARGUMENT, "default_tablegroup");
CHECK_SUPPORT_OPTION_USER_ERROR("default_tablegroup");
}
case T_PROGRESSIVE_MERGE_NUM: {
LOG_USER_ERROR(OB_INVALID_ARGUMENT, "progressive_merge_num");
CHECK_SUPPORT_OPTION_USER_ERROR("progressive_merge_num");
}
case T_ENABLE_EXTENDED_ROWID: {
LOG_USER_ERROR(OB_INVALID_ARGUMENT, "enable_extended_rowid");
}
{
// not support option
ret = common::OB_INVALID_ARGUMENT;
SQL_LOG(WARN, "invalid argument", KR(ret), K(node->type_));
break;
CHECK_SUPPORT_OPTION_USER_ERROR("enable_extended_rowid");
}
case T_LOCALITY: