fix unknown error when has not privilege to do query
This commit is contained in:
@ -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));
|
||||
|
@ -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:
|
||||
|
Reference in New Issue
Block a user