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)); LOG_WARN("fail to generate sql", KR(ret), K(tenant_id));
} else if (OB_FAIL(sql_proxy_.read(result, sql.ptr()))) { } else if (OB_FAIL(sql_proxy_.read(result, sql.ptr()))) {
LOG_WARN("check_begin_lsn failed", KR(ret), K(tenant_id), K(sql)); 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())) { } else if (OB_ISNULL(result.get_result())) {
ret = OB_ERR_UNEXPECTED; ret = OB_ERR_UNEXPECTED;
LOG_WARN("config result is null", KR(ret), K(tenant_id), K(sql)); 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; 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> template<class T>
int ObTenantResolver<T>::check_support_option(const T *stmt, const ParseNode *node) 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) { if (stmt->get_stmt_type() == stmt::T_CREATE_STANDBY_TENANT) {
switch (node->type_) { switch (node->type_) {
case T_REPLICA_NUM: { case T_REPLICA_NUM: {
LOG_USER_ERROR(OB_INVALID_ARGUMENT, "replica_num"); CHECK_SUPPORT_OPTION_USER_ERROR("replica_num");
} }
case T_CHARSET: { case T_CHARSET: {
LOG_USER_ERROR(OB_INVALID_ARGUMENT, "charset"); CHECK_SUPPORT_OPTION_USER_ERROR("charset");
} }
case T_COLLATION: { case T_COLLATION: {
LOG_USER_ERROR(OB_INVALID_ARGUMENT, "collation"); CHECK_SUPPORT_OPTION_USER_ERROR("collation");
} }
case T_ENABLE_ARBITRATION_SERVICE: { 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: { case T_ZONE_LIST: {
LOG_USER_ERROR(OB_INVALID_ARGUMENT, "zone_list"); CHECK_SUPPORT_OPTION_USER_ERROR("zone_list");
} }
case T_READ_ONLY: { case T_READ_ONLY: {
LOG_USER_ERROR(OB_INVALID_ARGUMENT, "read_only"); CHECK_SUPPORT_OPTION_USER_ERROR("read_only");
} }
case T_LOGONLY_REPLICA_NUM: { 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: { case T_DEFAULT_TABLEGROUP: {
LOG_USER_ERROR(OB_INVALID_ARGUMENT, "default_tablegroup"); CHECK_SUPPORT_OPTION_USER_ERROR("default_tablegroup");
} }
case T_PROGRESSIVE_MERGE_NUM: { 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: { case T_ENABLE_EXTENDED_ROWID: {
LOG_USER_ERROR(OB_INVALID_ARGUMENT, "enable_extended_rowid"); CHECK_SUPPORT_OPTION_USER_ERROR("enable_extended_rowid");
}
{
// not support option
ret = common::OB_INVALID_ARGUMENT;
SQL_LOG(WARN, "invalid argument", KR(ret), K(node->type_));
break;
} }
case T_LOCALITY: case T_LOCALITY: