[CP] 422_opensource feature patch 431
This commit is contained in:
parent
78507a5aae
commit
263b3806fa
2
deps/oblib/src/lib/CMakeLists.txt
vendored
2
deps/oblib/src/lib/CMakeLists.txt
vendored
@ -204,6 +204,8 @@ ob_set_subtarget(oblib_lib common_mixed
|
||||
wide_integer/ob_wide_integer_cmp_funcs.cpp
|
||||
wide_integer/ob_wide_integer_str_funcs.cpp
|
||||
udt/ob_udt_type.cpp
|
||||
locale/ob_locale_type.cc
|
||||
locale/ob_locale.cpp
|
||||
)
|
||||
|
||||
ob_set_subtarget(oblib_lib lock
|
||||
|
81
deps/oblib/src/lib/locale/ob_locale.cpp
vendored
Normal file
81
deps/oblib/src/lib/locale/ob_locale.cpp
vendored
Normal file
@ -0,0 +1,81 @@
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
#include "lib/locale/ob_locale_type.h"
|
||||
namespace oceanbase {
|
||||
namespace common {
|
||||
// Note that the index of the ob_locale_ja_JP is exactly 2 and should be placed in the 2nd position in the ob_locales.
|
||||
OB_LOCALE *ob_locales[] = {&ob_locale_en_US, NULL, &ob_locale_ja_JP, NULL,
|
||||
NULL, NULL, NULL, NULL,
|
||||
NULL, NULL, NULL, NULL,
|
||||
NULL, NULL, NULL, NULL,
|
||||
NULL, NULL, NULL, NULL,
|
||||
NULL, NULL, NULL, NULL,
|
||||
NULL, NULL, NULL, NULL,
|
||||
NULL, NULL, NULL, &ob_locale_ko_KR,
|
||||
NULL, NULL, NULL, NULL,
|
||||
NULL, NULL, NULL, NULL,
|
||||
NULL, NULL, NULL, NULL,
|
||||
NULL, NULL, NULL, NULL,
|
||||
NULL, NULL, NULL, NULL,
|
||||
NULL, NULL, NULL, NULL,
|
||||
&ob_locale_zh_CN, &ob_locale_zh_TW, NULL, NULL,
|
||||
NULL, NULL, NULL, NULL,
|
||||
NULL, NULL, NULL, NULL,
|
||||
NULL, NULL, NULL, NULL,
|
||||
NULL, NULL, NULL, NULL,
|
||||
NULL, NULL, NULL, NULL,
|
||||
NULL, NULL, NULL, NULL,
|
||||
NULL, NULL, NULL, NULL,
|
||||
NULL, NULL, NULL, NULL,
|
||||
NULL, NULL, NULL, NULL,
|
||||
NULL, NULL, NULL, NULL,
|
||||
NULL, NULL, NULL, NULL,
|
||||
NULL, NULL, NULL, NULL,
|
||||
NULL, NULL, NULL, NULL};
|
||||
|
||||
OB_LOCALE *ob_locale_by_name(const ObString &locale_name) {
|
||||
OB_LOCALE ** locale = NULL;
|
||||
OB_LOCALE *result_locale = NULL;
|
||||
bool has_found = false;
|
||||
OB_LOCALE ** locale_limit = ob_locales + LOCALE_COUNT;
|
||||
for (locale = ob_locales ; !has_found && locale < locale_limit ; locale++) {
|
||||
if ( *locale != NULL && 0 == locale_name.case_compare((*locale)->name_) ) {
|
||||
result_locale = *locale;
|
||||
has_found = true;
|
||||
}
|
||||
}
|
||||
if (NULL == result_locale) {
|
||||
result_locale = &ob_locale_en_US;
|
||||
}
|
||||
return result_locale;
|
||||
}
|
||||
|
||||
bool is_valid_ob_locale(const ObString &in_locale_name, ObString &valid_locale_name) {
|
||||
OB_LOCALE ** locale = NULL;
|
||||
OB_LOCALE *result_locale = NULL;
|
||||
bool ret = true;
|
||||
bool has_found = false;
|
||||
for (locale = ob_locales; !has_found && locale < ob_locales + LOCALE_COUNT; locale++) {
|
||||
if (*locale != NULL && 0 == in_locale_name.case_compare((*locale)->name_)) {
|
||||
result_locale = *locale;
|
||||
valid_locale_name = ObString(result_locale->name_);
|
||||
has_found = true;
|
||||
}
|
||||
}
|
||||
if (NULL == result_locale) {
|
||||
ret = false;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
} // common
|
||||
} // oceanbase
|
145
deps/oblib/src/lib/locale/ob_locale_type.cc
vendored
Normal file
145
deps/oblib/src/lib/locale/ob_locale_type.cc
vendored
Normal file
@ -0,0 +1,145 @@
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
#include "ob_locale_type.h"
|
||||
|
||||
namespace oceanbase {
|
||||
namespace common {
|
||||
|
||||
//LOCALE BEGIN en_US: English - United States
|
||||
static const char *ob_locale_month_names_en_US[MONTH_LENGTH] = {
|
||||
"January", "February", "March", "April", "May", "June", "July",
|
||||
"August", "September", "October", "November", "December", NULL};
|
||||
static const char *ob_locale_ab_month_names_en_US[MONTH_LENGTH] = {
|
||||
"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul",
|
||||
"Aug", "Sep", "Oct", "Nov", "Dec", NULL};
|
||||
static const char *ob_locale_day_names_en_US[DAY_LENGTH] = {
|
||||
"Monday", "Tuesday", "Wednesday", "Thursday",
|
||||
"Friday", "Saturday", "Sunday", NULL};
|
||||
static const char *ob_locale_ab_day_names_en_US[DAY_LENGTH] = {
|
||||
"Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun", NULL};
|
||||
static OB_LOCALE_TYPE ob_locale_type_month_names_en_US( MONTH_LENGTH - 1, "", ob_locale_month_names_en_US, NULL);
|
||||
static OB_LOCALE_TYPE ob_locale_type_ab_month_names_en_US(MONTH_LENGTH - 1, "", ob_locale_ab_month_names_en_US, NULL);
|
||||
static OB_LOCALE_TYPE ob_locale_type_day_names_en_US(DAY_LENGTH - 1, "", ob_locale_day_names_en_US, NULL);
|
||||
static OB_LOCALE_TYPE ob_locale_type_ab_day_names_en_US(DAY_LENGTH - 1, "", ob_locale_ab_day_names_en_US, NULL);
|
||||
|
||||
OB_LOCALE ob_locale_en_US(0, "en_US", "English - United States", true,
|
||||
&ob_locale_type_month_names_en_US,
|
||||
&ob_locale_type_ab_month_names_en_US,
|
||||
&ob_locale_type_day_names_en_US,
|
||||
&ob_locale_type_ab_day_names_en_US, 9, 9,
|
||||
'.', /* decimal point en_US */
|
||||
',', /* thousands_sep en_US */
|
||||
"\x03\x03"/* grouping en_US */);
|
||||
|
||||
/***** LOCALE BEGIN ja_JP: Japanese - Japan *****/
|
||||
static const char *ob_locale_month_names_ja_JP[MONTH_LENGTH] = {
|
||||
"1月", "2月", "3月", "4月", "5月", "6月", "7月",
|
||||
"8月", "9月", "10月", "11月", "12月", NULL};
|
||||
static const char *ob_locale_ab_month_names_ja_JP[MONTH_LENGTH] = {
|
||||
" 1月", " 2月", " 3月", " 4月", " 5月", " 6月", " 7月",
|
||||
" 8月", " 9月", "10月", "11月", "12月", NULL};
|
||||
static const char *ob_locale_day_names_ja_JP[DAY_LENGTH] = {
|
||||
"月曜日", "火曜日", "水曜日","木曜日",
|
||||
"金曜日", "土曜日", "日曜日", NULL};
|
||||
static const char *ob_locale_ab_day_names_ja_JP[DAY_LENGTH] = {
|
||||
"月", "火", "水", "木", "金", "土", "日", NULL};
|
||||
static OB_LOCALE_TYPE ob_locale_type_month_names_ja_JP = { MONTH_LENGTH - 1, "", ob_locale_month_names_ja_JP, NULL };
|
||||
static OB_LOCALE_TYPE ob_locale_type_ab_month_names_ja_JP = { MONTH_LENGTH - 1, "", ob_locale_ab_month_names_ja_JP, NULL};
|
||||
static OB_LOCALE_TYPE ob_locale_type_day_names_ja_JP = { DAY_LENGTH - 1, "", ob_locale_day_names_ja_JP, NULL};
|
||||
static OB_LOCALE_TYPE ob_locale_type_ab_day_names_ja_JP = { DAY_LENGTH - 1, "", ob_locale_ab_day_names_ja_JP, NULL};
|
||||
|
||||
OB_LOCALE ob_locale_ja_JP(2, "ja_JP", "Japanese - Japan", false,
|
||||
&ob_locale_type_month_names_ja_JP,
|
||||
&ob_locale_type_ab_month_names_ja_JP,
|
||||
&ob_locale_type_day_names_ja_JP,
|
||||
&ob_locale_type_ab_day_names_ja_JP, 3, 3,
|
||||
'.', /* decimal point ja_JP */
|
||||
',', /* thousands_sep ja_JP */
|
||||
"\x03"/* grouping ja_JP */);
|
||||
|
||||
/***** LOCALE BEGIN ko_KR: Korean - Korea *****/
|
||||
static const char *ob_locale_month_names_ko_KR[MONTH_LENGTH] = {
|
||||
"일월", "이월", "삼월", "사월", "오월", "유월", "칠월",
|
||||
"팔월", "구월", "시월", "십일월", "십이월", NULL};
|
||||
static const char *ob_locale_ab_month_names_ko_KR[MONTH_LENGTH] = {
|
||||
" 1월", " 2월", " 3월", " 4월", " 5월", " 6월", " 7월",
|
||||
" 8월", " 9월", "10월", "11월", "12월", NULL};
|
||||
static const char *ob_locale_day_names_ko_KR[DAY_LENGTH] = {
|
||||
"월요일", "화요일", "수요일", "목요일",
|
||||
"금요일", "토요일", "일요일", NULL};
|
||||
static const char *ob_locale_ab_day_names_ko_KR[DAY_LENGTH] = {
|
||||
"월", "화", "수", "목", "금", "토", "일", NULL};
|
||||
static OB_LOCALE_TYPE ob_locale_type_month_names_ko_KR = { MONTH_LENGTH - 1, "", ob_locale_month_names_ko_KR, NULL};
|
||||
static OB_LOCALE_TYPE ob_locale_type_ab_month_names_ko_KR = { MONTH_LENGTH - 1, "", ob_locale_ab_month_names_ko_KR, NULL};
|
||||
static OB_LOCALE_TYPE ob_locale_type_day_names_ko_KR = { DAY_LENGTH - 1, "", ob_locale_day_names_ko_KR, NULL};
|
||||
static OB_LOCALE_TYPE ob_locale_type_ab_day_names_ko_KR = { DAY_LENGTH - 1, "", ob_locale_ab_day_names_ko_KR, NULL};
|
||||
OB_LOCALE ob_locale_ko_KR(31, "ko_KR", "Korean - Korea", false,
|
||||
&ob_locale_type_month_names_ko_KR,
|
||||
&ob_locale_type_ab_month_names_ko_KR,
|
||||
&ob_locale_type_day_names_ko_KR,
|
||||
&ob_locale_type_ab_day_names_ko_KR, 3, 3,
|
||||
'.', /* decimal point ko_KR */
|
||||
',', /* thousands_sep ko_KR */
|
||||
"\x03\x03" /* grouping ko_KR */);
|
||||
|
||||
/***** LOCALE BEGIN zh_CN: Chinese - Peoples Republic of China *****/
|
||||
static const char *ob_locale_month_names_zh_CN[MONTH_LENGTH] = {
|
||||
"一月", "二月", "三月", "四月", "五月", "六月", "七月",
|
||||
"八月", "九月", "十月", "十一月", "十二月", NULL};
|
||||
static const char *ob_locale_ab_month_names_zh_CN[MONTH_LENGTH] = {
|
||||
" 1月", " 2月", " 3月", " 4月", " 5月", " 6月", " 7月",
|
||||
" 8月", " 9月", "10月", "11月", "12月", NULL};
|
||||
static const char *ob_locale_day_names_zh_CN[DAY_LENGTH] = {
|
||||
"星期一", "星期二", "星期三", "星期四",
|
||||
"星期五", "星期六", "星期日", NULL};
|
||||
static const char *ob_locale_ab_day_names_zh_CN[DAY_LENGTH] = {
|
||||
"一", "二", "三", "四", "五", "六", "日", NULL};
|
||||
static OB_LOCALE_TYPE ob_locale_type_month_names_zh_CN = { MONTH_LENGTH - 1, "", ob_locale_month_names_zh_CN, NULL};
|
||||
static OB_LOCALE_TYPE ob_locale_type_ab_month_names_zh_CN = { MONTH_LENGTH - 1, "", ob_locale_ab_month_names_zh_CN, NULL};
|
||||
static OB_LOCALE_TYPE ob_locale_type_day_names_zh_CN = { DAY_LENGTH - 1, "", ob_locale_day_names_zh_CN, NULL};
|
||||
static OB_LOCALE_TYPE ob_locale_type_ab_day_names_zh_CN = { DAY_LENGTH - 1, "", ob_locale_ab_day_names_zh_CN, NULL};
|
||||
OB_LOCALE ob_locale_zh_CN(56, "zh_CN", "Chinese - Peoples Republic of China", false,
|
||||
&ob_locale_type_month_names_zh_CN,
|
||||
&ob_locale_type_ab_month_names_zh_CN,
|
||||
&ob_locale_type_day_names_zh_CN,
|
||||
&ob_locale_type_ab_day_names_zh_CN, 3, 3,
|
||||
'.', /* decimal point zh_CN */
|
||||
',', /* thousands_sep zh_CN */
|
||||
"\x03" /* grouping zh_CN */);
|
||||
|
||||
/***** LOCALE BEGIN zh_TW: Chinese - Taiwan *****/
|
||||
static const char *ob_locale_month_names_zh_TW[MONTH_LENGTH] = {
|
||||
"一月", "二月", "三月", "四月", "五月", "六月", "七月",
|
||||
"八月", "九月", "十月", "十一月", "十二月", NULL};
|
||||
static const char *ob_locale_ab_month_names_zh_TW[MONTH_LENGTH] = {
|
||||
" 1月", " 2月", " 3月", " 4月", " 5月", " 6月", " 7月",
|
||||
" 8月", " 9月", "10月", "11月", "12月", NULL};
|
||||
static const char *ob_locale_day_names_zh_TW[DAY_LENGTH] = {
|
||||
"週一", "週二", "週三", "週四",
|
||||
"週五", "週六", "週日", NULL};
|
||||
static const char *ob_locale_ab_day_names_zh_TW[DAY_LENGTH] = {
|
||||
"一", "二", "三", "四","五", "六", "日", NULL};
|
||||
static OB_LOCALE_TYPE ob_locale_type_month_names_zh_TW = { MONTH_LENGTH - 1, "", ob_locale_month_names_zh_TW, NULL};
|
||||
static OB_LOCALE_TYPE ob_locale_type_ab_month_names_zh_TW = { MONTH_LENGTH - 1, "", ob_locale_ab_month_names_zh_TW, NULL};
|
||||
static OB_LOCALE_TYPE ob_locale_type_day_names_zh_TW = { DAY_LENGTH - 1, "", ob_locale_day_names_zh_TW, NULL};
|
||||
static OB_LOCALE_TYPE ob_locale_type_ab_day_names_zh_TW = { DAY_LENGTH - 1, "", ob_locale_ab_day_names_zh_TW, NULL};
|
||||
OB_LOCALE ob_locale_zh_TW(57, "zh_TW", "Chinese - Taiwan", false,
|
||||
&ob_locale_type_month_names_zh_TW,
|
||||
&ob_locale_type_ab_month_names_zh_TW,
|
||||
&ob_locale_type_day_names_zh_TW,
|
||||
&ob_locale_type_ab_day_names_zh_TW, 3, 2,
|
||||
'.', /* decimal point zh_TW */
|
||||
',', /* thousands_sep zh_TW */
|
||||
"\x03" /* grouping zh_TW */);
|
||||
|
||||
} // common
|
||||
} // oceanbase
|
81
deps/oblib/src/lib/locale/ob_locale_type.h
vendored
Normal file
81
deps/oblib/src/lib/locale/ob_locale_type.h
vendored
Normal file
@ -0,0 +1,81 @@
|
||||
/**
|
||||
* 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_LOCALE_TYPE_H_
|
||||
#define OCEANBASE_LOCALE_TYPE_H_
|
||||
|
||||
#define MONTH_LENGTH 13
|
||||
#define DAY_LENGTH 8
|
||||
#define LOCALE_COUNT 111
|
||||
#include "lib/ob_define.h"
|
||||
#include "lib/string/ob_string.h"
|
||||
|
||||
namespace oceanbase {
|
||||
namespace common {
|
||||
|
||||
typedef struct OB_LOCALE_TYPE { /* Different types saved here */
|
||||
unsigned int count_{0}; /* How many types */
|
||||
const char *name_{NULL}; /* Name of typelib */
|
||||
const char **type_names_{NULL};
|
||||
unsigned int *type_lengths_{NULL};
|
||||
OB_LOCALE_TYPE(unsigned int count,
|
||||
const char *name,
|
||||
const char **type_names,
|
||||
unsigned int *type_lengths):count_(count),
|
||||
name_(name),
|
||||
type_names_(type_names),
|
||||
type_lengths_(type_lengths){}
|
||||
} OB_LOCALE_TYPE;
|
||||
|
||||
class OB_LOCALE {
|
||||
public:
|
||||
unsigned int number_;
|
||||
const char *name_;
|
||||
const char *description_;
|
||||
const bool is_ascii_;
|
||||
OB_LOCALE_TYPE *month_names_;
|
||||
OB_LOCALE_TYPE *ab_month_names_;
|
||||
OB_LOCALE_TYPE *day_names_;
|
||||
OB_LOCALE_TYPE *ab_day_names_;
|
||||
unsigned int max_month_name_length_;
|
||||
unsigned int max_day_name_length_;
|
||||
unsigned int decimal_point_;
|
||||
unsigned int thousand_sep_;
|
||||
const char *grouping_;
|
||||
OB_LOCALE(unsigned int number_par, const char *name_par, const char *descr_par,
|
||||
bool is_ascii_par, OB_LOCALE_TYPE *month_names_par,
|
||||
OB_LOCALE_TYPE *ab_month_names_par, OB_LOCALE_TYPE *day_names_par,
|
||||
OB_LOCALE_TYPE *ab_day_names_par, unsigned int max_month_name_length_par,
|
||||
unsigned int max_day_name_length_par, unsigned int decimal_point_par,
|
||||
unsigned int thousand_sep_par, const char *grouping_par)
|
||||
: number_(number_par),
|
||||
name_(name_par),
|
||||
description_(descr_par),
|
||||
is_ascii_(is_ascii_par),
|
||||
month_names_(month_names_par),
|
||||
ab_month_names_(ab_month_names_par),
|
||||
day_names_(day_names_par),
|
||||
ab_day_names_(ab_day_names_par),
|
||||
max_month_name_length_(max_month_name_length_par),
|
||||
max_day_name_length_(max_day_name_length_par),
|
||||
decimal_point_(decimal_point_par),
|
||||
thousand_sep_(thousand_sep_par),
|
||||
grouping_(grouping_par){}
|
||||
};
|
||||
|
||||
OB_LOCALE *ob_locale_by_name(const ObString &cs_name);
|
||||
bool is_valid_ob_locale(const ObString &in_locale_name, ObString &valid_locale_name);
|
||||
|
||||
} // common
|
||||
} // oceanbase
|
||||
|
||||
#endif /* OCEANBASE_LOCALE_TYPE_ */
|
37
deps/oblib/src/lib/timezone/ob_time_convert.cpp
vendored
37
deps/oblib/src/lib/timezone/ob_time_convert.cpp
vendored
@ -26,6 +26,7 @@
|
||||
#include "rpc/obmysql/ob_mysql_util.h"
|
||||
#include "common/object/ob_object.h"
|
||||
//#include "lib/timezone/ob_timezone_util.h"
|
||||
#include "lib/locale/ob_locale_type.h"
|
||||
|
||||
#define STRING_WITH_LEN(X) (X), ((sizeof(X) - 1))
|
||||
|
||||
@ -4744,7 +4745,8 @@ int ObTimeConverter::deduce_max_len_from_oracle_dfm(const ObString &format,
|
||||
}
|
||||
|
||||
int ObTimeConverter::ob_time_to_str_format(const ObTime &ob_time, const ObString &format,
|
||||
char *buf, int64_t buf_len, int64_t &pos, bool &res_null)
|
||||
char *buf, int64_t buf_len, int64_t &pos, bool &res_null,
|
||||
const ObString &locale_name)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
if (OB_ISNULL(format.ptr()) || OB_ISNULL(buf) || OB_UNLIKELY(format.length() <= 0 || buf_len <= 0)) {
|
||||
@ -4758,6 +4760,19 @@ int ObTimeConverter::ob_time_to_str_format(const ObTime &ob_time, const ObString
|
||||
int32_t week_monday = -1;
|
||||
int32_t delta_sunday = -2;
|
||||
int32_t delta_monday = -2;
|
||||
//used for am/pm conversation in order to avoid if-else tests.
|
||||
|
||||
OB_LOCALE *ob_cur_locale = ob_locale_by_name(locale_name);
|
||||
OB_LOCALE_TYPE *locale_type_day = ob_cur_locale->day_names_;
|
||||
OB_LOCALE_TYPE *locale_type_ab_day = ob_cur_locale->ab_day_names_;
|
||||
OB_LOCALE_TYPE *locale_type_mon = ob_cur_locale->month_names_;
|
||||
OB_LOCALE_TYPE *locale_type_ab_mon = ob_cur_locale->ab_month_names_;
|
||||
|
||||
const char ** locale_daynames = locale_type_day->type_names_;
|
||||
const char ** locale_ab_daynames = locale_type_ab_day->type_names_;
|
||||
const char ** locale_monthnames = locale_type_mon->type_names_;
|
||||
const char ** locale_ab_monthnames = locale_type_ab_mon->type_names_;
|
||||
|
||||
//used for am/pm conversation in order to avoid if-else tests.
|
||||
const int hour_converter[24] = {12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
|
||||
12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
|
||||
@ -4792,8 +4807,11 @@ int ObTimeConverter::ob_time_to_str_format(const ObTime &ob_time, const ObString
|
||||
case 'M': { //Month name (January..December)
|
||||
if (OB_UNLIKELY(0 == parts[DT_MON])) {
|
||||
res_null = true;
|
||||
} else if (lib::is_mysql_mode()) {
|
||||
ret = data_fmt_s(buf, buf_len, pos, locale_monthnames[parts[DT_MON]-1]);
|
||||
} else {
|
||||
ret = data_fmt_s(buf, buf_len, pos, MON_NAMES[parts[DT_MON]].ptr_);
|
||||
}
|
||||
ret = data_fmt_s(buf, buf_len, pos, MON_NAMES[parts[DT_MON]].ptr_);
|
||||
break;
|
||||
}
|
||||
case 'm': { //Month, numeric (00..12)
|
||||
@ -4811,15 +4829,21 @@ int ObTimeConverter::ob_time_to_str_format(const ObTime &ob_time, const ObString
|
||||
case 'a': { //Abbreviated weekday name (Sun..Sat)
|
||||
if (OB_UNLIKELY(0 == parts[DT_WDAY])) {
|
||||
res_null = true;
|
||||
} else if (lib::is_mysql_mode()) {
|
||||
ret = data_fmt_s(buf, buf_len, pos, locale_ab_daynames[parts[DT_WDAY]-1]);
|
||||
} else {
|
||||
ret = data_fmt_s(buf, buf_len, pos, WDAY_ABBR_NAMES[parts[DT_WDAY]].ptr_);
|
||||
}
|
||||
ret = data_fmt_s(buf, buf_len, pos, WDAY_ABBR_NAMES[parts[DT_WDAY]].ptr_);
|
||||
break;
|
||||
}
|
||||
case 'b': { //Abbreviated month name (Jan..Dec)
|
||||
if (OB_UNLIKELY(0 == parts[DT_MON])) {
|
||||
res_null = true;
|
||||
} else if (lib::is_mysql_mode()) {
|
||||
ret = data_fmt_s(buf, buf_len, pos, locale_ab_monthnames[parts[DT_MON]-1]);
|
||||
} else {
|
||||
ret = data_fmt_s(buf, buf_len, pos, MON_ABBR_NAMES[parts[DT_MON]].ptr_);
|
||||
}
|
||||
ret = data_fmt_s(buf, buf_len, pos, MON_ABBR_NAMES[parts[DT_MON]].ptr_);
|
||||
break;
|
||||
}
|
||||
case 'c': { //Month, numeric (0..12)
|
||||
@ -4903,8 +4927,11 @@ int ObTimeConverter::ob_time_to_str_format(const ObTime &ob_time, const ObString
|
||||
case 'W': { //Weekday name (Sunday..Saturday)
|
||||
if (OB_UNLIKELY(0 == parts[DT_WDAY])) {
|
||||
res_null = true;
|
||||
} else if (lib::is_mysql_mode()) {
|
||||
ret = data_fmt_s(buf, buf_len, pos, locale_daynames[parts[DT_WDAY]-1]);
|
||||
} else {
|
||||
ret = data_fmt_s(buf, buf_len, pos, WDAY_NAMES[parts[DT_WDAY]].ptr_);
|
||||
}
|
||||
ret = data_fmt_s(buf, buf_len, pos, WDAY_NAMES[parts[DT_WDAY]].ptr_);
|
||||
break;
|
||||
}
|
||||
case 'w': { //Day of the week (0=Sunday..6=Saturday)
|
||||
|
@ -533,7 +533,8 @@ public:
|
||||
static int deduce_max_len_from_oracle_dfm(const ObString &format,
|
||||
int64_t &max_char_len);
|
||||
static int ob_time_to_str_format(const ObTime &ob_time, const ObString &format,
|
||||
char *buf, int64_t buf_len, int64_t &pos, bool &res_null);
|
||||
char *buf, int64_t buf_len, int64_t &pos, bool &res_null,
|
||||
const ObString &locale_name);
|
||||
static int ob_time_to_datetime(ObTime &ob_time, const ObTimeConvertCtx &cvrt_ctx, int64_t &value);
|
||||
static int ob_time_to_otimestamp(ObTime &ob_time, ObOTimestampData &value);
|
||||
static int32_t ob_time_to_date(ObTime &ob_time);
|
||||
|
@ -410,6 +410,7 @@ ob_set_subtarget(ob_server virtual_table
|
||||
virtual_table/ob_all_virtual_nic_info.cpp
|
||||
virtual_table/ob_all_virtual_storage_ha_error_diagnose.cpp
|
||||
virtual_table/ob_all_virtual_storage_ha_perf_diagnose.cpp
|
||||
virtual_table/ob_all_virtual_sys_variable_default_value.cpp
|
||||
)
|
||||
|
||||
ob_server_add_target(ob_server)
|
||||
|
@ -157,6 +157,17 @@ int ObAllVirtualSysParameterStat::inner_sys_get_next_row(ObNewRow *&row)
|
||||
ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
||||
break;
|
||||
}
|
||||
case DEFAULT_VALUE: {
|
||||
cells[i].set_varchar(sys_iter_->second->default_str());
|
||||
cells[i].set_collation_type(
|
||||
ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
||||
break;
|
||||
}
|
||||
case ISDEFAULT: {
|
||||
int isdefault = sys_iter_->second->is_default(sys_iter_->second->str(),sys_iter_->second->default_str(),sizeof(sys_iter_->second->default_str())) ? 1 : 0;
|
||||
cells[i].set_int(isdefault);
|
||||
break;
|
||||
}
|
||||
default : {
|
||||
// TODO: 版本兼容性,多余的列不报错
|
||||
// ret = OB_ERR_UNEXPECTED;
|
||||
@ -262,6 +273,17 @@ int ObAllVirtualSysParameterStat::inner_tenant_get_next_row(common::ObNewRow *&r
|
||||
ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
||||
break;
|
||||
}
|
||||
case DEFAULT_VALUE: {
|
||||
cells[i].set_varchar(tenant_iter_->second->default_str());
|
||||
cells[i].set_collation_type(
|
||||
ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
||||
break;
|
||||
}
|
||||
case ISDEFAULT: {
|
||||
int isdefault = tenant_iter_->second->is_default(tenant_iter_->second->str(),tenant_iter_->second->default_str(),sizeof(tenant_iter_->second->default_str())) ? 1 : 0;
|
||||
cells[i].set_int(isdefault);
|
||||
break;
|
||||
}
|
||||
default : {
|
||||
// 版本兼容性,多余列不报错
|
||||
// ret = OB_ERR_UNEXPECTED;
|
||||
|
@ -49,6 +49,8 @@ private:
|
||||
SCOPE,
|
||||
SOURCE,
|
||||
EDIT_LEVEL,
|
||||
DEFAULT_VALUE,
|
||||
ISDEFAULT,
|
||||
};
|
||||
common::ObConfigContainer::const_iterator sys_iter_;
|
||||
omt::ObTenantConfigGuard tenant_config_;
|
||||
|
@ -0,0 +1,126 @@
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#include "lib/string/ob_sql_string.h"
|
||||
#include "lib/mysqlclient/ob_mysql_proxy.h"
|
||||
#include "share/schema/ob_schema_struct.h"
|
||||
#include "share/inner_table/ob_inner_table_schema.h"
|
||||
#include "observer/virtual_table/ob_all_virtual_sys_variable_default_value.h"
|
||||
#include "sql/session/ob_sql_session_info.h"
|
||||
#include "share/system_variable/ob_system_variable_factory.h"
|
||||
#include "share/schema/ob_schema_getter_guard.h"
|
||||
|
||||
using namespace oceanbase::common;
|
||||
using namespace oceanbase::share;
|
||||
using namespace oceanbase::share::schema;
|
||||
using namespace oceanbase::sql;
|
||||
namespace oceanbase
|
||||
{
|
||||
namespace observer
|
||||
{
|
||||
|
||||
ObSysVarDefaultValue::ObSysVarDefaultValue()
|
||||
: ObVirtualTableScannerIterator()
|
||||
{
|
||||
}
|
||||
|
||||
ObSysVarDefaultValue::~ObSysVarDefaultValue()
|
||||
{
|
||||
}
|
||||
|
||||
void ObSysVarDefaultValue::reset()
|
||||
{
|
||||
ObVirtualTableScannerIterator::reset();
|
||||
}
|
||||
|
||||
int ObSysVarDefaultValue::inner_get_next_row(ObNewRow *&row)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
if (!((GET_MIN_CLUSTER_VERSION() >= CLUSTER_VERSION_4_2_2_0 &&
|
||||
GET_MIN_CLUSTER_VERSION() < CLUSTER_VERSION_4_3_0_0) ||
|
||||
GET_MIN_CLUSTER_VERSION() >= CLUSTER_VERSION_4_3_1_0)) {
|
||||
ret = OB_NOT_SUPPORTED;
|
||||
SERVER_LOG(WARN,"__all_virtual_sys_variable_default_value is only supported\
|
||||
when cluster_version in the range [422,430) or [431,~)", K(ret));
|
||||
} else if (OB_ISNULL(cur_row_.cells_)) {
|
||||
ret = OB_NOT_INIT;
|
||||
SERVER_LOG(WARN, "some data member is NULL", K(ret), K(cur_row_.cells_));
|
||||
} else if (OB_UNLIKELY(cur_row_.count_ < output_column_ids_.count())) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
SERVER_LOG(WARN, "cells count is less than output column count",
|
||||
K(ret), K(cur_row_.count_), K(output_column_ids_.count()));
|
||||
} else if (start_to_read_) {
|
||||
//do nothing
|
||||
} else if (OB_FAIL(add_row())) {
|
||||
SERVER_LOG(WARN, "fail to add row", K(ret));
|
||||
} else {
|
||||
scanner_it_ = scanner_.begin();
|
||||
start_to_read_ = true;
|
||||
}
|
||||
|
||||
if (OB_LIKELY(OB_SUCC(ret) && start_to_read_)) {
|
||||
if (OB_FAIL(scanner_it_.get_next_row(cur_row_))) {
|
||||
if (OB_UNLIKELY(OB_ITER_END != ret)) {
|
||||
SERVER_LOG(WARN, "fail to get next row", K(ret));
|
||||
}
|
||||
} else {
|
||||
row = &cur_row_;
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
int ObSysVarDefaultValue::add_row()
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
ObObj *cells = nullptr;
|
||||
if (OB_ISNULL(cells = cur_row_.cells_)) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
SERVER_LOG(ERROR, "cur row cell is NULL", K(ret));
|
||||
} else {
|
||||
for (int64_t store_idx = 0; OB_SUCC(ret) && store_idx < ObSysVarFactory::ALL_SYS_VARS_COUNT; ++store_idx) {
|
||||
if (store_idx < 0 || store_idx >= ObSysVarFactory::ALL_SYS_VARS_COUNT) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
SERVER_LOG(WARN, "unexpected store idx", K(ret), K(store_idx));
|
||||
} else {
|
||||
for (int64_t j = 0; OB_SUCC(ret) && j < output_column_ids_.count(); ++j) {
|
||||
uint64_t col_id = output_column_ids_.at(j);
|
||||
switch(col_id) {
|
||||
case NAME: {
|
||||
cells[j].set_varchar(ObSysVariables::get_name(store_idx));
|
||||
cells[j].set_collation_type(ObSysVariables::get_default_sysvar_collation());
|
||||
break;
|
||||
}
|
||||
case DEFAULT_VALUE: {
|
||||
cells[j].set_varchar(ObSysVariables::get_value(store_idx));
|
||||
cells[j].set_collation_type(ObSysVariables::get_default_sysvar_collation());
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
SERVER_LOG(WARN, "invalid column id", K(ret), K(j),
|
||||
K(output_column_ids_), K(col_id));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (OB_SUCC(ret) && OB_FAIL(scanner_.add_row(cur_row_))) {
|
||||
SERVER_LOG(WARN, "fail to add row", K(ret), K(cur_row_));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,54 @@
|
||||
/**
|
||||
* 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 _OB_ALL_VIRTUAL_SYS_VARIABLE_DEFAULT_VALUE_H_
|
||||
#define _OB_ALL_VIRTUAL_SYS_VARIABLE_DEFAULT_VALUE_H_
|
||||
#include "share/ob_virtual_table_scanner_iterator.h"
|
||||
namespace oceanbase
|
||||
{
|
||||
namespace common
|
||||
{
|
||||
class ObMySQLProxy;
|
||||
}
|
||||
namespace share
|
||||
{
|
||||
namespace schema
|
||||
{
|
||||
class ObTenantSchema;
|
||||
class ObSysVariableSchema;
|
||||
}
|
||||
}
|
||||
namespace sql
|
||||
{
|
||||
class ObSQLSessionInfo;
|
||||
}
|
||||
namespace observer
|
||||
{
|
||||
class ObSysVarDefaultValue : public common::ObVirtualTableScannerIterator
|
||||
{
|
||||
public:
|
||||
ObSysVarDefaultValue();
|
||||
virtual ~ObSysVarDefaultValue();
|
||||
virtual int inner_get_next_row(common::ObNewRow *&row);
|
||||
virtual void reset();
|
||||
int add_row();
|
||||
private:
|
||||
enum COLUMN_NAME
|
||||
{
|
||||
NAME = common::OB_APP_MIN_COLUMN_ID,
|
||||
DEFAULT_VALUE
|
||||
};
|
||||
DISALLOW_COPY_AND_ASSIGN(ObSysVarDefaultValue);
|
||||
};
|
||||
}
|
||||
}
|
||||
#endif /* _OB_ALL_VIRTUAL_SYS_VARIABLE_DEFAULT_VALUE_H_*/
|
@ -326,6 +326,17 @@ int ObAllVirtualTenantParameterStat::fill_row_(common::ObNewRow *&row,
|
||||
}
|
||||
break;
|
||||
}
|
||||
case DEFAULT_VALUE: {
|
||||
cells[i].set_varchar(iter->second->default_str());
|
||||
cells[i].set_collation_type(
|
||||
ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
||||
break;
|
||||
}
|
||||
case ISDEFAULT: {
|
||||
int isdefault = iter->second->is_default(iter->second->str(),iter->second->default_str(),sizeof(iter->second->default_str())) ? 1 : 0;
|
||||
cells[i].set_int(isdefault);
|
||||
break;
|
||||
}
|
||||
default : {
|
||||
// skip unknown column for version compatibility
|
||||
cells[i].set_null();
|
||||
|
@ -64,6 +64,8 @@ private:
|
||||
SOURCE,
|
||||
EDIT_LEVEL,
|
||||
TENANT_ID,
|
||||
DEFAULT_VALUE,
|
||||
ISDEFAULT,
|
||||
};
|
||||
|
||||
private:
|
||||
|
@ -225,6 +225,7 @@
|
||||
#include "observer/virtual_table/ob_all_virtual_kv_connection.h"
|
||||
#include "observer/virtual_table/ob_tenant_show_restore_preview.h"
|
||||
#include "observer/virtual_table/ob_all_virtual_nic_info.h"
|
||||
#include "observer/virtual_table/ob_all_virtual_sys_variable_default_value.h"
|
||||
|
||||
namespace oceanbase
|
||||
{
|
||||
@ -2678,6 +2679,15 @@ int ObVTIterCreator::create_vt_iter(ObVTableScanParam ¶ms,
|
||||
}
|
||||
break;
|
||||
}
|
||||
case OB_ALL_VIRTUAL_SYS_VARIABLE_DEFAULT_VALUE_TID: {
|
||||
ObSysVarDefaultValue *sys_var_default_value = NULL;
|
||||
if (OB_FAIL(NEW_VIRTUAL_TABLE(ObSysVarDefaultValue, sys_var_default_value))) {
|
||||
SERVER_LOG(ERROR, "fail to new", K(ret), K(pure_tid));
|
||||
} else {
|
||||
vt_iter = static_cast<ObVirtualTableIterator *>(sys_var_default_value);
|
||||
}
|
||||
break;
|
||||
}
|
||||
END_CREATE_VT_ITER_SWITCH_LAMBDA
|
||||
|
||||
#define AGENT_VIRTUAL_TABLE_CREATE_ITER
|
||||
|
@ -189,6 +189,12 @@ const char *ObConfigItem::data_type() const
|
||||
}
|
||||
return type_ptr;
|
||||
}
|
||||
bool ObConfigItem::is_default(const char *value_str_,
|
||||
const char *value_default_str_,
|
||||
int64_t size) const
|
||||
{
|
||||
return 0 == strncasecmp(value_str_, value_default_str_, size);
|
||||
}
|
||||
|
||||
// ObConfigIntListItem
|
||||
ObConfigIntListItem::ObConfigIntListItem(ObConfigContainer *container,
|
||||
|
@ -194,6 +194,11 @@ public:
|
||||
ObLatchRGuard rd_guard(const_cast<ObLatch&>(lock_), ObLatchIds::CONFIG_LOCK);
|
||||
return ObString::make_string(value_ptr()).case_compare(str);
|
||||
}
|
||||
const char *default_str() const
|
||||
{
|
||||
ObLatchRGuard rd_guard(const_cast<ObLatch&>(lock_), ObLatchIds::CONFIG_LOCK);
|
||||
return value_default_ptr();
|
||||
}
|
||||
virtual const char *spfile_str() const
|
||||
{
|
||||
const char *ret = nullptr;
|
||||
@ -233,6 +238,9 @@ public:
|
||||
{
|
||||
return attr_.is_static();
|
||||
}
|
||||
virtual bool is_default(const char *value_str_,
|
||||
const char *value_default_str_,
|
||||
int64_t size) const;
|
||||
virtual bool operator >(const char *) const { return false; }
|
||||
virtual bool operator >=(const char *) const { return false; }
|
||||
virtual bool operator <(const char *) const { return false; }
|
||||
@ -241,18 +249,14 @@ public:
|
||||
virtual ObConfigItemType get_config_item_type() const {
|
||||
return ObConfigItemType::OB_CONF_ITEM_TYPE_UNKNOWN;
|
||||
}
|
||||
const char *default_str() const
|
||||
{
|
||||
return value_default_ptr();
|
||||
}
|
||||
protected:
|
||||
//use current value to do input operation
|
||||
virtual bool set(const char *str) = 0;
|
||||
virtual const char *value_ptr() const = 0;
|
||||
virtual const char *value_reboot_ptr() const = 0;
|
||||
virtual const char *value_default_ptr() const = 0;
|
||||
virtual uint64_t value_len() const = 0;
|
||||
virtual uint64_t value_reboot_len() const = 0;
|
||||
virtual const char *value_default_ptr() const = 0;
|
||||
const ObConfigChecker *ck_;
|
||||
int64_t version_;
|
||||
int64_t dumped_version_;
|
||||
@ -331,13 +335,6 @@ protected:
|
||||
bool valid_;
|
||||
};
|
||||
|
||||
virtual const char *get_default_ptr() const = 0;
|
||||
|
||||
const char *value_default_ptr() const override
|
||||
{
|
||||
return get_default_ptr();
|
||||
}
|
||||
|
||||
struct ObInnerConfigIntListItem value_;
|
||||
static const uint64_t VALUE_BUF_SIZE = 32 * MAX_INDEX_SIZE;
|
||||
char value_str_[VALUE_BUF_SIZE];
|
||||
@ -463,13 +460,6 @@ protected:
|
||||
return sizeof(value_reboot_str_);
|
||||
}
|
||||
|
||||
virtual const char *get_default_ptr() const = 0;
|
||||
|
||||
const char *value_default_ptr() const override
|
||||
{
|
||||
return get_default_ptr();
|
||||
}
|
||||
|
||||
char value_str_[VALUE_BUF_SIZE];
|
||||
char value_reboot_str_[VALUE_BUF_SIZE];
|
||||
private:
|
||||
@ -519,11 +509,6 @@ protected:
|
||||
virtual bool set(const char *str);
|
||||
virtual int64_t parse(const char *str, bool &valid) const = 0;
|
||||
|
||||
virtual const char *get_default_ptr() const = 0;
|
||||
const char *value_default_ptr() const override
|
||||
{
|
||||
return get_default_ptr();
|
||||
}
|
||||
private:
|
||||
int64_t value_;
|
||||
int64_t min_value_;
|
||||
@ -610,12 +595,6 @@ protected:
|
||||
return sizeof(value_reboot_str_);
|
||||
}
|
||||
|
||||
virtual const char *get_default_ptr() const = 0;
|
||||
|
||||
const char *value_default_ptr() const override
|
||||
{
|
||||
return get_default_ptr();
|
||||
}
|
||||
static const uint64_t VALUE_BUF_SIZE = 64UL;
|
||||
char value_str_[VALUE_BUF_SIZE];
|
||||
char value_reboot_str_[VALUE_BUF_SIZE];
|
||||
@ -684,7 +663,7 @@ protected:
|
||||
{
|
||||
return value_str_;
|
||||
}
|
||||
char const *value_reboot_ptr() const override
|
||||
const char *value_reboot_ptr() const override
|
||||
{
|
||||
return value_reboot_str_;
|
||||
}
|
||||
@ -697,13 +676,6 @@ protected:
|
||||
return sizeof(value_reboot_str_);
|
||||
}
|
||||
|
||||
virtual const char *get_default_ptr() const = 0;
|
||||
|
||||
const char *value_default_ptr() const override
|
||||
{
|
||||
return get_default_ptr();
|
||||
}
|
||||
|
||||
static const uint64_t VALUE_BUF_SIZE = 32UL;
|
||||
char value_str_[VALUE_BUF_SIZE];
|
||||
char value_reboot_str_[VALUE_BUF_SIZE];
|
||||
@ -761,11 +733,6 @@ protected:
|
||||
{
|
||||
return sizeof(value_reboot_str_);
|
||||
}
|
||||
virtual const char *get_default_ptr() const = 0;
|
||||
const char *value_default_ptr() const override
|
||||
{
|
||||
return get_default_ptr();
|
||||
}
|
||||
|
||||
static const uint64_t VALUE_BUF_SIZE = 32UL;
|
||||
char value_str_[VALUE_BUF_SIZE];
|
||||
@ -823,11 +790,6 @@ protected:
|
||||
{
|
||||
return sizeof(value_reboot_str_);
|
||||
}
|
||||
virtual const char *get_default_ptr() const = 0;
|
||||
const char *value_default_ptr() const override
|
||||
{
|
||||
return get_default_ptr();
|
||||
}
|
||||
|
||||
static const uint64_t VALUE_BUF_SIZE = 32UL;
|
||||
char value_str_[VALUE_BUF_SIZE];
|
||||
@ -902,12 +864,6 @@ protected:
|
||||
{
|
||||
return sizeof(value_reboot_str_);
|
||||
}
|
||||
virtual const char *get_default_ptr() const = 0;
|
||||
const char *value_default_ptr() const override
|
||||
{
|
||||
return get_default_ptr();
|
||||
}
|
||||
|
||||
static const uint64_t VALUE_BUF_SIZE = 64UL;
|
||||
char value_str_[VALUE_BUF_SIZE];
|
||||
char value_reboot_str_[VALUE_BUF_SIZE];
|
||||
@ -955,16 +911,10 @@ protected:
|
||||
{
|
||||
return sizeof(value_reboot_str_);
|
||||
}
|
||||
virtual const char *get_default_ptr() const = 0;
|
||||
const char *value_default_ptr() const override
|
||||
{
|
||||
return get_default_ptr();
|
||||
}
|
||||
|
||||
static const uint64_t VALUE_BUF_SIZE = 8UL;
|
||||
char value_str_[VALUE_BUF_SIZE];
|
||||
char value_reboot_str_[VALUE_BUF_SIZE];
|
||||
|
||||
private:
|
||||
bool value_;
|
||||
DISALLOW_COPY_AND_ASSIGN(ObConfigBoolItem);
|
||||
@ -1033,11 +983,6 @@ protected:
|
||||
{
|
||||
return sizeof(value_reboot_str_);
|
||||
}
|
||||
virtual const char *get_default_ptr() const = 0;
|
||||
const char *value_default_ptr() const override
|
||||
{
|
||||
return get_default_ptr();
|
||||
}
|
||||
|
||||
static const uint64_t VALUE_BUF_SIZE = 65536UL;
|
||||
char value_str_[VALUE_BUF_SIZE];
|
||||
@ -1174,13 +1119,6 @@ protected:
|
||||
{
|
||||
return sizeof(value_reboot_str_);
|
||||
}
|
||||
//if there is subclass from ObConfigLogArchiveOptionsItem, please implement it in
|
||||
//ob_parameter_macro.h
|
||||
//virtual const char *get_default_ptr() const = 0;
|
||||
const char *value_default_ptr() const override
|
||||
{
|
||||
return NULL; //get_default_ptr();
|
||||
}
|
||||
|
||||
static const uint64_t VALUE_BUF_SIZE = 2048UL;
|
||||
char value_str_[VALUE_BUF_SIZE];
|
||||
@ -1260,11 +1198,6 @@ protected:
|
||||
{
|
||||
return sizeof(value_reboot_str_);
|
||||
}
|
||||
virtual const char *get_default_ptr() const = 0;
|
||||
const char *value_default_ptr() const override
|
||||
{
|
||||
return get_default_ptr();
|
||||
}
|
||||
|
||||
static const uint64_t VALUE_BUF_SIZE = 32UL; // 32 is enough for version like 4.2.0.0
|
||||
char value_str_[VALUE_BUF_SIZE];
|
||||
@ -1361,11 +1294,6 @@ protected:
|
||||
{
|
||||
return sizeof(value_reboot_str_);
|
||||
}
|
||||
virtual const char *get_default_ptr() const = 0;
|
||||
const char *value_default_ptr() const override
|
||||
{
|
||||
return get_default_ptr();
|
||||
}
|
||||
|
||||
protected:
|
||||
static const uint64_t VALUE_BUF_SIZE = 65536UL;
|
||||
|
@ -25,6 +25,84 @@ using namespace common;
|
||||
namespace share
|
||||
{
|
||||
|
||||
int ObInnerTableSchema::all_virtual_sys_variable_default_value_schema(ObTableSchema &table_schema)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
|
||||
|
||||
//generated fields:
|
||||
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
|
||||
table_schema.set_tablegroup_id(OB_INVALID_ID);
|
||||
table_schema.set_database_id(OB_SYS_DATABASE_ID);
|
||||
table_schema.set_table_id(OB_ALL_VIRTUAL_SYS_VARIABLE_DEFAULT_VALUE_TID);
|
||||
table_schema.set_rowkey_split_pos(0);
|
||||
table_schema.set_is_use_bloomfilter(false);
|
||||
table_schema.set_progressive_merge_num(0);
|
||||
table_schema.set_rowkey_column_num(0);
|
||||
table_schema.set_load_type(TABLE_LOAD_TYPE_IN_DISK);
|
||||
table_schema.set_table_type(VIRTUAL_TABLE);
|
||||
table_schema.set_index_type(INDEX_TYPE_IS_NOT);
|
||||
table_schema.set_def_type(TABLE_DEF_TYPE_INTERNAL);
|
||||
|
||||
if (OB_SUCC(ret)) {
|
||||
if (OB_FAIL(table_schema.set_table_name(OB_ALL_VIRTUAL_SYS_VARIABLE_DEFAULT_VALUE_TNAME))) {
|
||||
LOG_ERROR("fail to set table_name", K(ret));
|
||||
}
|
||||
}
|
||||
|
||||
if (OB_SUCC(ret)) {
|
||||
if (OB_FAIL(table_schema.set_compress_func_name(OB_DEFAULT_COMPRESS_FUNC_NAME))) {
|
||||
LOG_ERROR("fail to set compress_func_name", K(ret));
|
||||
}
|
||||
}
|
||||
table_schema.set_part_level(PARTITION_LEVEL_ZERO);
|
||||
table_schema.set_charset_type(ObCharset::get_default_charset());
|
||||
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
||||
|
||||
if (OB_SUCC(ret)) {
|
||||
ObObj variable_name_default;
|
||||
variable_name_default.set_varchar(ObString::make_string(""));
|
||||
ADD_COLUMN_SCHEMA_T("variable_name", //column_name
|
||||
++column_id, //column_id
|
||||
0, //rowkey_id
|
||||
0, //index_id
|
||||
0, //part_key_pos
|
||||
ObVarcharType, //column_type
|
||||
CS_TYPE_INVALID, //column_collation_type
|
||||
OB_MAX_CONFIG_NAME_LEN, //column_length
|
||||
-1, //column_precision
|
||||
-1, //column_scale
|
||||
false, //is_nullable
|
||||
false, //is_autoincrement
|
||||
variable_name_default,
|
||||
variable_name_default); //default_value
|
||||
}
|
||||
|
||||
if (OB_SUCC(ret)) {
|
||||
ADD_COLUMN_SCHEMA("default_value", //column_name
|
||||
++column_id, //column_id
|
||||
0, //rowkey_id
|
||||
0, //index_id
|
||||
0, //part_key_pos
|
||||
ObVarcharType, //column_type
|
||||
CS_TYPE_INVALID, //column_collation_type
|
||||
OB_MAX_CONFIG_VALUE_LEN, //column_length
|
||||
-1, //column_precision
|
||||
-1, //column_scale
|
||||
true, //is_nullable
|
||||
false); //is_autoincrement
|
||||
}
|
||||
table_schema.set_index_using_type(USING_HASH);
|
||||
table_schema.set_row_store_type(ENCODING_ROW_STORE);
|
||||
table_schema.set_store_format(OB_STORE_FORMAT_DYNAMIC_MYSQL);
|
||||
table_schema.set_progressive_merge_round(1);
|
||||
table_schema.set_storage_format_version(3);
|
||||
table_schema.set_tablet_id(0);
|
||||
|
||||
table_schema.set_max_used_column_id(column_id);
|
||||
return ret;
|
||||
}
|
||||
|
||||
int ObInnerTableSchema::all_virtual_transfer_partition_task_schema(ObTableSchema &table_schema)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
|
@ -4967,6 +4967,289 @@ int ObInnerTableSchema::all_virtual_aux_stat_real_agent_ora_schema(ObTableSchema
|
||||
return ret;
|
||||
}
|
||||
|
||||
int ObInnerTableSchema::all_virtual_sys_variable_real_agent_ora_schema(ObTableSchema &table_schema)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
|
||||
|
||||
//generated fields:
|
||||
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
|
||||
table_schema.set_tablegroup_id(OB_INVALID_ID);
|
||||
table_schema.set_database_id(OB_ORA_SYS_DATABASE_ID);
|
||||
table_schema.set_table_id(OB_ALL_VIRTUAL_SYS_VARIABLE_REAL_AGENT_ORA_TID);
|
||||
table_schema.set_rowkey_split_pos(0);
|
||||
table_schema.set_is_use_bloomfilter(false);
|
||||
table_schema.set_progressive_merge_num(0);
|
||||
table_schema.set_rowkey_column_num(3);
|
||||
table_schema.set_load_type(TABLE_LOAD_TYPE_IN_DISK);
|
||||
table_schema.set_table_type(VIRTUAL_TABLE);
|
||||
table_schema.set_index_type(INDEX_TYPE_IS_NOT);
|
||||
table_schema.set_def_type(TABLE_DEF_TYPE_INTERNAL);
|
||||
|
||||
if (OB_SUCC(ret)) {
|
||||
if (OB_FAIL(table_schema.set_table_name(OB_ALL_VIRTUAL_SYS_VARIABLE_REAL_AGENT_ORA_TNAME))) {
|
||||
LOG_ERROR("fail to set table_name", K(ret));
|
||||
}
|
||||
}
|
||||
|
||||
if (OB_SUCC(ret)) {
|
||||
if (OB_FAIL(table_schema.set_compress_func_name(OB_DEFAULT_COMPRESS_FUNC_NAME))) {
|
||||
LOG_ERROR("fail to set compress_func_name", K(ret));
|
||||
}
|
||||
}
|
||||
table_schema.set_part_level(PARTITION_LEVEL_ZERO);
|
||||
table_schema.set_charset_type(ObCharset::get_default_charset());
|
||||
table_schema.set_collation_type(ObCollationType::CS_TYPE_UTF8MB4_BIN);
|
||||
|
||||
if (OB_SUCC(ret)) {
|
||||
ADD_COLUMN_SCHEMA("TENANT_ID", //column_name
|
||||
++column_id, //column_id
|
||||
1, //rowkey_id
|
||||
0, //index_id
|
||||
0, //part_key_pos
|
||||
ObNumberType, //column_type
|
||||
CS_TYPE_INVALID, //column_collation_type
|
||||
38, //column_length
|
||||
38, //column_precision
|
||||
0, //column_scale
|
||||
false, //is_nullable
|
||||
false); //is_autoincrement
|
||||
}
|
||||
|
||||
if (OB_SUCC(ret)) {
|
||||
ADD_COLUMN_SCHEMA("ZONE", //column_name
|
||||
++column_id, //column_id
|
||||
2, //rowkey_id
|
||||
0, //index_id
|
||||
0, //part_key_pos
|
||||
ObVarcharType, //column_type
|
||||
CS_TYPE_UTF8MB4_BIN, //column_collation_type
|
||||
MAX_ZONE_LENGTH, //column_length
|
||||
2, //column_precision
|
||||
-1, //column_scale
|
||||
false, //is_nullable
|
||||
false); //is_autoincrement
|
||||
}
|
||||
|
||||
if (OB_SUCC(ret)) {
|
||||
ADD_COLUMN_SCHEMA("NAME", //column_name
|
||||
++column_id, //column_id
|
||||
3, //rowkey_id
|
||||
0, //index_id
|
||||
0, //part_key_pos
|
||||
ObVarcharType, //column_type
|
||||
CS_TYPE_UTF8MB4_BIN, //column_collation_type
|
||||
OB_MAX_CONFIG_NAME_LEN, //column_length
|
||||
2, //column_precision
|
||||
-1, //column_scale
|
||||
true, //is_nullable
|
||||
false); //is_autoincrement
|
||||
}
|
||||
|
||||
if (OB_SUCC(ret)) {
|
||||
ADD_COLUMN_SCHEMA("DATA_TYPE", //column_name
|
||||
++column_id, //column_id
|
||||
0, //rowkey_id
|
||||
0, //index_id
|
||||
0, //part_key_pos
|
||||
ObNumberType, //column_type
|
||||
CS_TYPE_INVALID, //column_collation_type
|
||||
38, //column_length
|
||||
38, //column_precision
|
||||
0, //column_scale
|
||||
false, //is_nullable
|
||||
false); //is_autoincrement
|
||||
}
|
||||
|
||||
if (OB_SUCC(ret)) {
|
||||
ADD_COLUMN_SCHEMA("VALUE", //column_name
|
||||
++column_id, //column_id
|
||||
0, //rowkey_id
|
||||
0, //index_id
|
||||
0, //part_key_pos
|
||||
ObVarcharType, //column_type
|
||||
CS_TYPE_UTF8MB4_BIN, //column_collation_type
|
||||
OB_MAX_CONFIG_VALUE_LEN, //column_length
|
||||
2, //column_precision
|
||||
-1, //column_scale
|
||||
true, //is_nullable
|
||||
false); //is_autoincrement
|
||||
}
|
||||
|
||||
if (OB_SUCC(ret)) {
|
||||
ADD_COLUMN_SCHEMA("INFO", //column_name
|
||||
++column_id, //column_id
|
||||
0, //rowkey_id
|
||||
0, //index_id
|
||||
0, //part_key_pos
|
||||
ObVarcharType, //column_type
|
||||
CS_TYPE_UTF8MB4_BIN, //column_collation_type
|
||||
OB_MAX_CONFIG_INFO_LEN, //column_length
|
||||
2, //column_precision
|
||||
-1, //column_scale
|
||||
false, //is_nullable
|
||||
false); //is_autoincrement
|
||||
}
|
||||
|
||||
if (OB_SUCC(ret)) {
|
||||
ADD_COLUMN_SCHEMA("FLAGS", //column_name
|
||||
++column_id, //column_id
|
||||
0, //rowkey_id
|
||||
0, //index_id
|
||||
0, //part_key_pos
|
||||
ObNumberType, //column_type
|
||||
CS_TYPE_INVALID, //column_collation_type
|
||||
38, //column_length
|
||||
38, //column_precision
|
||||
0, //column_scale
|
||||
false, //is_nullable
|
||||
false); //is_autoincrement
|
||||
}
|
||||
|
||||
if (OB_SUCC(ret)) {
|
||||
ADD_COLUMN_SCHEMA("MIN_VAL", //column_name
|
||||
++column_id, //column_id
|
||||
0, //rowkey_id
|
||||
0, //index_id
|
||||
0, //part_key_pos
|
||||
ObVarcharType, //column_type
|
||||
CS_TYPE_UTF8MB4_BIN, //column_collation_type
|
||||
OB_MAX_CONFIG_VALUE_LEN, //column_length
|
||||
2, //column_precision
|
||||
-1, //column_scale
|
||||
true, //is_nullable
|
||||
false); //is_autoincrement
|
||||
}
|
||||
|
||||
if (OB_SUCC(ret)) {
|
||||
ADD_COLUMN_SCHEMA("MAX_VAL", //column_name
|
||||
++column_id, //column_id
|
||||
0, //rowkey_id
|
||||
0, //index_id
|
||||
0, //part_key_pos
|
||||
ObVarcharType, //column_type
|
||||
CS_TYPE_UTF8MB4_BIN, //column_collation_type
|
||||
OB_MAX_CONFIG_VALUE_LEN, //column_length
|
||||
2, //column_precision
|
||||
-1, //column_scale
|
||||
true, //is_nullable
|
||||
false); //is_autoincrement
|
||||
}
|
||||
|
||||
if (OB_SUCC(ret)) {
|
||||
ADD_COLUMN_SCHEMA("GMT_CREATE", //column_name
|
||||
++column_id, //column_id
|
||||
0, //rowkey_id
|
||||
0, //index_id
|
||||
0, //part_key_pos
|
||||
ObTimestampLTZType, //column_type
|
||||
CS_TYPE_INVALID, //column_collation_type
|
||||
0, //column_length
|
||||
-1, //column_precision
|
||||
-1, //column_scale
|
||||
false, //is_nullable
|
||||
false); //is_autoincrement
|
||||
}
|
||||
|
||||
if (OB_SUCC(ret)) {
|
||||
ADD_COLUMN_SCHEMA("GMT_MODIFIED", //column_name
|
||||
++column_id, //column_id
|
||||
0, //rowkey_id
|
||||
0, //index_id
|
||||
0, //part_key_pos
|
||||
ObTimestampLTZType, //column_type
|
||||
CS_TYPE_INVALID, //column_collation_type
|
||||
0, //column_length
|
||||
-1, //column_precision
|
||||
-1, //column_scale
|
||||
false, //is_nullable
|
||||
false); //is_autoincrement
|
||||
}
|
||||
table_schema.set_index_using_type(USING_BTREE);
|
||||
table_schema.set_row_store_type(ENCODING_ROW_STORE);
|
||||
table_schema.set_store_format(OB_STORE_FORMAT_DYNAMIC_MYSQL);
|
||||
table_schema.set_progressive_merge_round(1);
|
||||
table_schema.set_storage_format_version(3);
|
||||
table_schema.set_tablet_id(0);
|
||||
|
||||
table_schema.set_max_used_column_id(column_id);
|
||||
return ret;
|
||||
}
|
||||
|
||||
int ObInnerTableSchema::all_virtual_sys_variable_default_value_ora_schema(ObTableSchema &table_schema)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
|
||||
|
||||
//generated fields:
|
||||
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
|
||||
table_schema.set_tablegroup_id(OB_INVALID_ID);
|
||||
table_schema.set_database_id(OB_ORA_SYS_DATABASE_ID);
|
||||
table_schema.set_table_id(OB_ALL_VIRTUAL_SYS_VARIABLE_DEFAULT_VALUE_ORA_TID);
|
||||
table_schema.set_rowkey_split_pos(0);
|
||||
table_schema.set_is_use_bloomfilter(false);
|
||||
table_schema.set_progressive_merge_num(0);
|
||||
table_schema.set_rowkey_column_num(0);
|
||||
table_schema.set_load_type(TABLE_LOAD_TYPE_IN_DISK);
|
||||
table_schema.set_table_type(VIRTUAL_TABLE);
|
||||
table_schema.set_index_type(INDEX_TYPE_IS_NOT);
|
||||
table_schema.set_def_type(TABLE_DEF_TYPE_INTERNAL);
|
||||
|
||||
if (OB_SUCC(ret)) {
|
||||
if (OB_FAIL(table_schema.set_table_name(OB_ALL_VIRTUAL_SYS_VARIABLE_DEFAULT_VALUE_ORA_TNAME))) {
|
||||
LOG_ERROR("fail to set table_name", K(ret));
|
||||
}
|
||||
}
|
||||
|
||||
if (OB_SUCC(ret)) {
|
||||
if (OB_FAIL(table_schema.set_compress_func_name(OB_DEFAULT_COMPRESS_FUNC_NAME))) {
|
||||
LOG_ERROR("fail to set compress_func_name", K(ret));
|
||||
}
|
||||
}
|
||||
table_schema.set_part_level(PARTITION_LEVEL_ZERO);
|
||||
table_schema.set_charset_type(ObCharset::get_default_charset());
|
||||
table_schema.set_collation_type(ObCollationType::CS_TYPE_UTF8MB4_BIN);
|
||||
|
||||
if (OB_SUCC(ret)) {
|
||||
ADD_COLUMN_SCHEMA("VARIABLE_NAME", //column_name
|
||||
++column_id, //column_id
|
||||
0, //rowkey_id
|
||||
0, //index_id
|
||||
0, //part_key_pos
|
||||
ObVarcharType, //column_type
|
||||
CS_TYPE_UTF8MB4_BIN, //column_collation_type
|
||||
OB_MAX_CONFIG_NAME_LEN, //column_length
|
||||
2, //column_precision
|
||||
-1, //column_scale
|
||||
true, //is_nullable
|
||||
false); //is_autoincrement
|
||||
}
|
||||
|
||||
if (OB_SUCC(ret)) {
|
||||
ADD_COLUMN_SCHEMA("DEFAULT_VALUE", //column_name
|
||||
++column_id, //column_id
|
||||
0, //rowkey_id
|
||||
0, //index_id
|
||||
0, //part_key_pos
|
||||
ObVarcharType, //column_type
|
||||
CS_TYPE_UTF8MB4_BIN, //column_collation_type
|
||||
OB_MAX_CONFIG_VALUE_LEN, //column_length
|
||||
2, //column_precision
|
||||
-1, //column_scale
|
||||
true, //is_nullable
|
||||
false); //is_autoincrement
|
||||
}
|
||||
table_schema.set_index_using_type(USING_HASH);
|
||||
table_schema.set_row_store_type(ENCODING_ROW_STORE);
|
||||
table_schema.set_store_format(OB_STORE_FORMAT_DYNAMIC_MYSQL);
|
||||
table_schema.set_progressive_merge_round(1);
|
||||
table_schema.set_storage_format_version(3);
|
||||
table_schema.set_tablet_id(0);
|
||||
|
||||
table_schema.set_max_used_column_id(column_id);
|
||||
return ret;
|
||||
}
|
||||
|
||||
int ObInnerTableSchema::all_virtual_transfer_partition_task_real_agent_ora_schema(ObTableSchema &table_schema)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
|
@ -960,7 +960,7 @@ int ObInnerTableSchema::gv_ob_parameters_schema(ObTableSchema &table_schema)
|
||||
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
||||
|
||||
if (OB_SUCC(ret)) {
|
||||
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT SVR_IP, SVR_PORT, ZONE, SCOPE, TENANT_ID, NAME, DATA_TYPE, VALUE, INFO, SECTION, EDIT_LEVEL FROM oceanbase.__all_virtual_tenant_parameter_stat )__"))) {
|
||||
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT SVR_IP, SVR_PORT, ZONE, SCOPE, TENANT_ID, NAME, DATA_TYPE, VALUE, INFO, SECTION, EDIT_LEVEL, DEFAULT_VALUE, CAST (CASE ISDEFAULT WHEN 1 THEN 'YES' ELSE 'NO' END AS CHAR(3)) AS ISDEFAULT FROM oceanbase.__all_virtual_tenant_parameter_stat )__"))) {
|
||||
LOG_ERROR("fail to set view_definition", K(ret));
|
||||
}
|
||||
}
|
||||
@ -1010,7 +1010,7 @@ int ObInnerTableSchema::v_ob_parameters_schema(ObTableSchema &table_schema)
|
||||
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
||||
|
||||
if (OB_SUCC(ret)) {
|
||||
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT SVR_IP, SVR_PORT, ZONE, SCOPE, TENANT_ID, NAME, DATA_TYPE, VALUE, INFO, SECTION, EDIT_LEVEL FROM oceanbase.GV$OB_PARAMETERS WHERE SVR_IP = host_ip() AND SVR_PORT = rpc_port() )__"))) {
|
||||
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT SVR_IP, SVR_PORT, ZONE, SCOPE, TENANT_ID, NAME, DATA_TYPE, VALUE, INFO, SECTION, EDIT_LEVEL, DEFAULT_VALUE, CAST (CASE ISDEFAULT WHEN 1 THEN 'YES' ELSE 'NO' END AS CHAR(3)) AS ISDEFAULT FROM oceanbase.GV$OB_PARAMETERS WHERE SVR_IP = host_ip() AND SVR_PORT = rpc_port() )__"))) {
|
||||
LOG_ERROR("fail to set view_definition", K(ret));
|
||||
}
|
||||
}
|
||||
|
@ -2410,7 +2410,7 @@ int ObInnerTableSchema::cdb_ob_sys_variables_schema(ObTableSchema &table_schema)
|
||||
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
||||
|
||||
if (OB_SUCC(ret)) {
|
||||
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT GMT_CREATE AS CREATE_TIME, GMT_MODIFIED AS MODIFY_TIME, TENANT_ID, NAME, VALUE, MIN_VAL as MIN_VALUE, MAX_VAL as MAX_VALUE, CASE FLAGS & 0x3 WHEN 1 THEN "GLOBAL_ONLY" WHEN 2 THEN "SESSION_ONLY" WHEN 3 THEN "GLOBAL | SESSION" ELSE NULL END as SCOPE, INFO FROM oceanbase.__all_virtual_sys_variable )__"))) {
|
||||
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT a.GMT_CREATE AS CREATE_TIME, a.GMT_MODIFIED AS MODIFY_TIME, a.TENANT_ID as TENANT_ID, a.NAME as NAME, a.VALUE as VALUE, a.MIN_VAL as MIN_VALUE, a.MAX_VAL as MAX_VALUE, CASE a.FLAGS & 0x3 WHEN 1 THEN "GLOBAL_ONLY" WHEN 2 THEN "SESSION_ONLY" WHEN 3 THEN "GLOBAL | SESSION" ELSE NULL END as SCOPE, a.INFO as INFO, b.DEFAULT_VALUE as DEFAULT_VALUE, CAST (CASE WHEN a.VALUE = b.DEFAULT_VALUE THEN 'YES' ELSE 'NO' END AS CHAR(3)) AS ISDEFAULT FROM oceanbase.__all_virtual_sys_variable a join oceanbase.__all_virtual_sys_variable_default_value b where a.name = b.variable_name; )__"))) {
|
||||
LOG_ERROR("fail to set view_definition", K(ret));
|
||||
}
|
||||
}
|
||||
|
@ -25,6 +25,56 @@ using namespace common;
|
||||
namespace share
|
||||
{
|
||||
|
||||
int ObInnerTableSchema::dba_ob_sys_variables_schema(ObTableSchema &table_schema)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
|
||||
|
||||
//generated fields:
|
||||
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
|
||||
table_schema.set_tablegroup_id(OB_INVALID_ID);
|
||||
table_schema.set_database_id(OB_SYS_DATABASE_ID);
|
||||
table_schema.set_table_id(OB_DBA_OB_SYS_VARIABLES_TID);
|
||||
table_schema.set_rowkey_split_pos(0);
|
||||
table_schema.set_is_use_bloomfilter(false);
|
||||
table_schema.set_progressive_merge_num(0);
|
||||
table_schema.set_rowkey_column_num(0);
|
||||
table_schema.set_load_type(TABLE_LOAD_TYPE_IN_DISK);
|
||||
table_schema.set_table_type(SYSTEM_VIEW);
|
||||
table_schema.set_index_type(INDEX_TYPE_IS_NOT);
|
||||
table_schema.set_def_type(TABLE_DEF_TYPE_INTERNAL);
|
||||
|
||||
if (OB_SUCC(ret)) {
|
||||
if (OB_FAIL(table_schema.set_table_name(OB_DBA_OB_SYS_VARIABLES_TNAME))) {
|
||||
LOG_ERROR("fail to set table_name", K(ret));
|
||||
}
|
||||
}
|
||||
|
||||
if (OB_SUCC(ret)) {
|
||||
if (OB_FAIL(table_schema.set_compress_func_name(OB_DEFAULT_COMPRESS_FUNC_NAME))) {
|
||||
LOG_ERROR("fail to set compress_func_name", K(ret));
|
||||
}
|
||||
}
|
||||
table_schema.set_part_level(PARTITION_LEVEL_ZERO);
|
||||
table_schema.set_charset_type(ObCharset::get_default_charset());
|
||||
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
||||
|
||||
if (OB_SUCC(ret)) {
|
||||
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT a.GMT_CREATE AS CREATE_TIME, a.GMT_MODIFIED AS MODIFY_TIME, a.NAME as NAME, a.VALUE as VALUE, a.MIN_VAL as MIN_VALUE, a.MAX_VAL as MAX_VALUE, CASE a.FLAGS & 0x3 WHEN 1 THEN "GLOBAL_ONLY" WHEN 2 THEN "SESSION_ONLY" WHEN 3 THEN "GLOBAL | SESSION" ELSE NULL END as SCOPE, a.INFO as INFO, b.DEFAULT_VALUE as DEFAULT_VALUE, CAST (CASE WHEN a.VALUE = b.DEFAULT_VALUE THEN 'YES' ELSE 'NO' END AS CHAR(3)) AS ISDEFAULT FROM oceanbase.__all_sys_variable a join oceanbase.__all_virtual_sys_variable_default_value b where a.name = b.variable_name; )__"))) {
|
||||
LOG_ERROR("fail to set view_definition", K(ret));
|
||||
}
|
||||
}
|
||||
table_schema.set_index_using_type(USING_BTREE);
|
||||
table_schema.set_row_store_type(ENCODING_ROW_STORE);
|
||||
table_schema.set_store_format(OB_STORE_FORMAT_DYNAMIC_MYSQL);
|
||||
table_schema.set_progressive_merge_round(1);
|
||||
table_schema.set_storage_format_version(3);
|
||||
table_schema.set_tablet_id(0);
|
||||
|
||||
table_schema.set_max_used_column_id(column_id);
|
||||
return ret;
|
||||
}
|
||||
|
||||
int ObInnerTableSchema::dba_ob_transfer_partition_tasks_schema(ObTableSchema &table_schema)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
|
@ -860,7 +860,7 @@ int ObInnerTableSchema::gv_ob_parameters_ora_schema(ObTableSchema &table_schema)
|
||||
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
||||
|
||||
if (OB_SUCC(ret)) {
|
||||
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT SVR_IP, SVR_PORT, ZONE, SCOPE, TENANT_ID, NAME, DATA_TYPE, VALUE, INFO, SECTION, EDIT_LEVEL FROM SYS.ALL_VIRTUAL_TENANT_PARAMETER_STAT )__"))) {
|
||||
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT SVR_IP, SVR_PORT, ZONE, SCOPE, TENANT_ID, NAME, DATA_TYPE, VALUE, INFO, SECTION, EDIT_LEVEL, DEFAULT_VALUE, CAST (CASE ISDEFAULT WHEN 1 THEN 'YES' ELSE 'NO' END AS VARCHAR2(3)) AS ISDEFAULT FROM SYS.ALL_VIRTUAL_TENANT_PARAMETER_STAT )__"))) {
|
||||
LOG_ERROR("fail to set view_definition", K(ret));
|
||||
}
|
||||
}
|
||||
@ -910,7 +910,7 @@ int ObInnerTableSchema::v_ob_parameters_ora_schema(ObTableSchema &table_schema)
|
||||
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
||||
|
||||
if (OB_SUCC(ret)) {
|
||||
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT SVR_IP, SVR_PORT, ZONE, SCOPE, TENANT_ID, NAME, DATA_TYPE, VALUE, INFO, SECTION, EDIT_LEVEL FROM SYS.GV$OB_PARAMETERS WHERE SVR_IP = host_ip() AND SVR_PORT = rpc_port() )__"))) {
|
||||
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT SVR_IP, SVR_PORT, ZONE, SCOPE, TENANT_ID, NAME, DATA_TYPE, VALUE, INFO, SECTION, EDIT_LEVEL, DEFAULT_VALUE, CAST (CASE ISDEFAULT WHEN '1' THEN 'YES' ELSE 'NO' END AS VARCHAR2(3)) AS ISDEFAULT FROM SYS.GV$OB_PARAMETERS WHERE SVR_IP = host_ip() AND SVR_PORT = rpc_port() )__"))) {
|
||||
LOG_ERROR("fail to set view_definition", K(ret));
|
||||
}
|
||||
}
|
||||
|
@ -175,6 +175,56 @@ int ObInnerTableSchema::dba_ob_aux_statistics_ora_schema(ObTableSchema &table_sc
|
||||
return ret;
|
||||
}
|
||||
|
||||
int ObInnerTableSchema::dba_ob_sys_variables_ora_schema(ObTableSchema &table_schema)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
|
||||
|
||||
//generated fields:
|
||||
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
|
||||
table_schema.set_tablegroup_id(OB_INVALID_ID);
|
||||
table_schema.set_database_id(OB_ORA_SYS_DATABASE_ID);
|
||||
table_schema.set_table_id(OB_DBA_OB_SYS_VARIABLES_ORA_TID);
|
||||
table_schema.set_rowkey_split_pos(0);
|
||||
table_schema.set_is_use_bloomfilter(false);
|
||||
table_schema.set_progressive_merge_num(0);
|
||||
table_schema.set_rowkey_column_num(0);
|
||||
table_schema.set_load_type(TABLE_LOAD_TYPE_IN_DISK);
|
||||
table_schema.set_table_type(SYSTEM_VIEW);
|
||||
table_schema.set_index_type(INDEX_TYPE_IS_NOT);
|
||||
table_schema.set_def_type(TABLE_DEF_TYPE_INTERNAL);
|
||||
|
||||
if (OB_SUCC(ret)) {
|
||||
if (OB_FAIL(table_schema.set_table_name(OB_DBA_OB_SYS_VARIABLES_ORA_TNAME))) {
|
||||
LOG_ERROR("fail to set table_name", K(ret));
|
||||
}
|
||||
}
|
||||
|
||||
if (OB_SUCC(ret)) {
|
||||
if (OB_FAIL(table_schema.set_compress_func_name(OB_DEFAULT_COMPRESS_FUNC_NAME))) {
|
||||
LOG_ERROR("fail to set compress_func_name", K(ret));
|
||||
}
|
||||
}
|
||||
table_schema.set_part_level(PARTITION_LEVEL_ZERO);
|
||||
table_schema.set_charset_type(ObCharset::get_default_charset());
|
||||
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
||||
|
||||
if (OB_SUCC(ret)) {
|
||||
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT A.GMT_CREATE AS CREATE_TIME, A.GMT_MODIFIED AS MODIFY_TIME, A.NAME as NAME, A.VALUE as VALUE, A.MIN_VAL as MIN_VALUE, A.MAX_VAL as MAX_VALUE, CASE BITAND(A.FLAGS,3) WHEN 1 THEN 'GLOBAL_ONLY' WHEN 2 THEN 'SESSION_ONLY' WHEN 3 THEN 'GLOBAL | SESSION' ELSE NULL END as SCOPE, A.INFO as INFO, B.DEFAULT_VALUE as DEFAULT_VALUE, CAST (CASE WHEN A.VALUE = B.DEFAULT_VALUE THEN 'YES' ELSE 'NO' END AS VARCHAR2(3)) AS ISDEFAULT FROM SYS.ALL_VIRTUAL_SYS_VARIABLE_REAL_AGENT A, SYS.ALL_VIRTUAL_SYS_VARIABLE_DEFAULT_VALUE B WHERE A.NAME = B.VARIABLE_NAME; )__"))) {
|
||||
LOG_ERROR("fail to set view_definition", K(ret));
|
||||
}
|
||||
}
|
||||
table_schema.set_index_using_type(USING_BTREE);
|
||||
table_schema.set_row_store_type(ENCODING_ROW_STORE);
|
||||
table_schema.set_store_format(OB_STORE_FORMAT_DYNAMIC_MYSQL);
|
||||
table_schema.set_progressive_merge_round(1);
|
||||
table_schema.set_storage_format_version(3);
|
||||
table_schema.set_tablet_id(0);
|
||||
|
||||
table_schema.set_max_used_column_id(column_id);
|
||||
return ret;
|
||||
}
|
||||
|
||||
int ObInnerTableSchema::dba_index_usage_ora_schema(ObTableSchema &table_schema)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
|
@ -1006,6 +1006,7 @@ public:
|
||||
static int all_virtual_checkpoint_diagnose_checkpoint_unit_info_schema(share::schema::ObTableSchema &table_schema);
|
||||
static int all_virtual_checkpoint_diagnose_info_schema(share::schema::ObTableSchema &table_schema);
|
||||
static int all_virtual_aux_stat_schema(share::schema::ObTableSchema &table_schema);
|
||||
static int all_virtual_sys_variable_default_value_schema(share::schema::ObTableSchema &table_schema);
|
||||
static int all_virtual_transfer_partition_task_schema(share::schema::ObTableSchema &table_schema);
|
||||
static int all_virtual_transfer_partition_task_history_schema(share::schema::ObTableSchema &table_schema);
|
||||
static int all_virtual_tenant_snapshot_job_schema(share::schema::ObTableSchema &table_schema);
|
||||
@ -1271,6 +1272,8 @@ public:
|
||||
static int all_virtual_ls_info_ora_schema(share::schema::ObTableSchema &table_schema);
|
||||
static int all_virtual_cgroup_config_ora_schema(share::schema::ObTableSchema &table_schema);
|
||||
static int all_virtual_aux_stat_real_agent_ora_schema(share::schema::ObTableSchema &table_schema);
|
||||
static int all_virtual_sys_variable_real_agent_ora_schema(share::schema::ObTableSchema &table_schema);
|
||||
static int all_virtual_sys_variable_default_value_ora_schema(share::schema::ObTableSchema &table_schema);
|
||||
static int all_virtual_transfer_partition_task_real_agent_ora_schema(share::schema::ObTableSchema &table_schema);
|
||||
static int all_virtual_transfer_partition_task_history_real_agent_ora_schema(share::schema::ObTableSchema &table_schema);
|
||||
static int all_virtual_ls_snapshot_ora_schema(share::schema::ObTableSchema &table_schema);
|
||||
@ -1650,6 +1653,7 @@ public:
|
||||
static int dba_ob_aux_statistics_schema(share::schema::ObTableSchema &table_schema);
|
||||
static int cdb_ob_aux_statistics_schema(share::schema::ObTableSchema &table_schema);
|
||||
static int dba_index_usage_schema(share::schema::ObTableSchema &table_schema);
|
||||
static int dba_ob_sys_variables_schema(share::schema::ObTableSchema &table_schema);
|
||||
static int dba_ob_transfer_partition_tasks_schema(share::schema::ObTableSchema &table_schema);
|
||||
static int cdb_ob_transfer_partition_tasks_schema(share::schema::ObTableSchema &table_schema);
|
||||
static int dba_ob_transfer_partition_task_history_schema(share::schema::ObTableSchema &table_schema);
|
||||
@ -2125,6 +2129,7 @@ public:
|
||||
static int gv_ob_cgroup_config_ora_schema(share::schema::ObTableSchema &table_schema);
|
||||
static int v_ob_cgroup_config_ora_schema(share::schema::ObTableSchema &table_schema);
|
||||
static int dba_ob_aux_statistics_ora_schema(share::schema::ObTableSchema &table_schema);
|
||||
static int dba_ob_sys_variables_ora_schema(share::schema::ObTableSchema &table_schema);
|
||||
static int dba_index_usage_ora_schema(share::schema::ObTableSchema &table_schema);
|
||||
static int gv_ob_ls_snapshots_ora_schema(share::schema::ObTableSchema &table_schema);
|
||||
static int v_ob_ls_snapshots_ora_schema(share::schema::ObTableSchema &table_schema);
|
||||
@ -3630,6 +3635,7 @@ const schema_create_func virtual_table_schema_creators [] = {
|
||||
ObInnerTableSchema::all_virtual_checkpoint_diagnose_checkpoint_unit_info_schema,
|
||||
ObInnerTableSchema::all_virtual_checkpoint_diagnose_info_schema,
|
||||
ObInnerTableSchema::all_virtual_aux_stat_schema,
|
||||
ObInnerTableSchema::all_virtual_sys_variable_default_value_schema,
|
||||
ObInnerTableSchema::all_virtual_transfer_partition_task_schema,
|
||||
ObInnerTableSchema::all_virtual_transfer_partition_task_history_schema,
|
||||
ObInnerTableSchema::all_virtual_tenant_snapshot_job_schema,
|
||||
@ -3905,6 +3911,8 @@ const schema_create_func virtual_table_schema_creators [] = {
|
||||
ObInnerTableSchema::all_virtual_ls_info_ora_schema,
|
||||
ObInnerTableSchema::all_virtual_cgroup_config_ora_schema,
|
||||
ObInnerTableSchema::all_virtual_aux_stat_real_agent_ora_schema,
|
||||
ObInnerTableSchema::all_virtual_sys_variable_real_agent_ora_schema,
|
||||
ObInnerTableSchema::all_virtual_sys_variable_default_value_ora_schema,
|
||||
ObInnerTableSchema::all_virtual_transfer_partition_task_real_agent_ora_schema,
|
||||
ObInnerTableSchema::all_virtual_transfer_partition_task_history_real_agent_ora_schema,
|
||||
ObInnerTableSchema::all_virtual_ls_snapshot_ora_schema,
|
||||
@ -4368,6 +4376,7 @@ const schema_create_func sys_view_schema_creators [] = {
|
||||
ObInnerTableSchema::dba_ob_aux_statistics_schema,
|
||||
ObInnerTableSchema::cdb_ob_aux_statistics_schema,
|
||||
ObInnerTableSchema::dba_index_usage_schema,
|
||||
ObInnerTableSchema::dba_ob_sys_variables_schema,
|
||||
ObInnerTableSchema::dba_ob_transfer_partition_tasks_schema,
|
||||
ObInnerTableSchema::cdb_ob_transfer_partition_tasks_schema,
|
||||
ObInnerTableSchema::dba_ob_transfer_partition_task_history_schema,
|
||||
@ -4843,6 +4852,7 @@ const schema_create_func sys_view_schema_creators [] = {
|
||||
ObInnerTableSchema::gv_ob_cgroup_config_ora_schema,
|
||||
ObInnerTableSchema::v_ob_cgroup_config_ora_schema,
|
||||
ObInnerTableSchema::dba_ob_aux_statistics_ora_schema,
|
||||
ObInnerTableSchema::dba_ob_sys_variables_ora_schema,
|
||||
ObInnerTableSchema::dba_index_usage_ora_schema,
|
||||
ObInnerTableSchema::gv_ob_ls_snapshots_ora_schema,
|
||||
ObInnerTableSchema::v_ob_ls_snapshots_ora_schema,
|
||||
@ -5448,6 +5458,7 @@ const uint64_t tenant_space_tables [] = {
|
||||
OB_ALL_VIRTUAL_CHECKPOINT_DIAGNOSE_MEMTABLE_INFO_TID,
|
||||
OB_ALL_VIRTUAL_CHECKPOINT_DIAGNOSE_CHECKPOINT_UNIT_INFO_TID,
|
||||
OB_ALL_VIRTUAL_CHECKPOINT_DIAGNOSE_INFO_TID,
|
||||
OB_ALL_VIRTUAL_SYS_VARIABLE_DEFAULT_VALUE_TID,
|
||||
OB_ALL_VIRTUAL_TENANT_SNAPSHOT_JOB_TID,
|
||||
OB_ALL_VIRTUAL_LS_SNAPSHOT_TID,
|
||||
OB_ALL_VIRTUAL_TENANT_SNAPSHOT_LS_REPLICA_HISTORY_TID,
|
||||
@ -5719,6 +5730,8 @@ const uint64_t tenant_space_tables [] = {
|
||||
OB_ALL_VIRTUAL_LS_INFO_ORA_TID,
|
||||
OB_ALL_VIRTUAL_CGROUP_CONFIG_ORA_TID,
|
||||
OB_ALL_VIRTUAL_AUX_STAT_REAL_AGENT_ORA_TID,
|
||||
OB_ALL_VIRTUAL_SYS_VARIABLE_REAL_AGENT_ORA_TID,
|
||||
OB_ALL_VIRTUAL_SYS_VARIABLE_DEFAULT_VALUE_ORA_TID,
|
||||
OB_ALL_VIRTUAL_TRANSFER_PARTITION_TASK_REAL_AGENT_ORA_TID,
|
||||
OB_ALL_VIRTUAL_TRANSFER_PARTITION_TASK_HISTORY_REAL_AGENT_ORA_TID,
|
||||
OB_ALL_VIRTUAL_LS_SNAPSHOT_ORA_TID,
|
||||
@ -5993,6 +6006,7 @@ const uint64_t tenant_space_tables [] = {
|
||||
OB_V_OB_CGROUP_CONFIG_TID,
|
||||
OB_DBA_OB_AUX_STATISTICS_TID,
|
||||
OB_DBA_INDEX_USAGE_TID,
|
||||
OB_DBA_OB_SYS_VARIABLES_TID,
|
||||
OB_DBA_OB_TRANSFER_PARTITION_TASKS_TID,
|
||||
OB_DBA_OB_TRANSFER_PARTITION_TASK_HISTORY_TID,
|
||||
OB_GV_OB_LS_SNAPSHOTS_TID,
|
||||
@ -6454,6 +6468,7 @@ const uint64_t tenant_space_tables [] = {
|
||||
OB_GV_OB_CGROUP_CONFIG_ORA_TID,
|
||||
OB_V_OB_CGROUP_CONFIG_ORA_TID,
|
||||
OB_DBA_OB_AUX_STATISTICS_ORA_TID,
|
||||
OB_DBA_OB_SYS_VARIABLES_ORA_TID,
|
||||
OB_DBA_INDEX_USAGE_ORA_TID,
|
||||
OB_GV_OB_LS_SNAPSHOTS_ORA_TID,
|
||||
OB_V_OB_LS_SNAPSHOTS_ORA_TID,
|
||||
@ -7294,6 +7309,7 @@ const uint64_t all_ora_mapping_virtual_table_org_tables [] = {
|
||||
OB_ALL_VIRTUAL_IMPORT_TABLE_TASK_HISTORY_TID,
|
||||
OB_ALL_VIRTUAL_LS_INFO_TID,
|
||||
OB_ALL_VIRTUAL_CGROUP_CONFIG_TID,
|
||||
OB_ALL_VIRTUAL_SYS_VARIABLE_DEFAULT_VALUE_TID,
|
||||
OB_ALL_VIRTUAL_LS_SNAPSHOT_TID,
|
||||
OB_ALL_VIRTUAL_NIC_INFO_TID, };
|
||||
|
||||
@ -7435,6 +7451,7 @@ const uint64_t all_ora_mapping_virtual_tables [] = { OB_ALL_VIRTUAL_SQL_AUDIT_O
|
||||
, OB_ALL_VIRTUAL_IMPORT_TABLE_TASK_HISTORY_ORA_TID
|
||||
, OB_ALL_VIRTUAL_LS_INFO_ORA_TID
|
||||
, OB_ALL_VIRTUAL_CGROUP_CONFIG_ORA_TID
|
||||
, OB_ALL_VIRTUAL_SYS_VARIABLE_DEFAULT_VALUE_ORA_TID
|
||||
, OB_ALL_VIRTUAL_LS_SNAPSHOT_ORA_TID
|
||||
, OB_ALL_VIRTUAL_NIC_INFO_ORA_TID
|
||||
, };
|
||||
@ -7933,6 +7950,7 @@ const char* const tenant_space_table_names [] = {
|
||||
OB_ALL_VIRTUAL_CHECKPOINT_DIAGNOSE_MEMTABLE_INFO_TNAME,
|
||||
OB_ALL_VIRTUAL_CHECKPOINT_DIAGNOSE_CHECKPOINT_UNIT_INFO_TNAME,
|
||||
OB_ALL_VIRTUAL_CHECKPOINT_DIAGNOSE_INFO_TNAME,
|
||||
OB_ALL_VIRTUAL_SYS_VARIABLE_DEFAULT_VALUE_TNAME,
|
||||
OB_ALL_VIRTUAL_TENANT_SNAPSHOT_JOB_TNAME,
|
||||
OB_ALL_VIRTUAL_LS_SNAPSHOT_TNAME,
|
||||
OB_ALL_VIRTUAL_TENANT_SNAPSHOT_LS_REPLICA_HISTORY_TNAME,
|
||||
@ -8204,6 +8222,8 @@ const char* const tenant_space_table_names [] = {
|
||||
OB_ALL_VIRTUAL_LS_INFO_ORA_TNAME,
|
||||
OB_ALL_VIRTUAL_CGROUP_CONFIG_ORA_TNAME,
|
||||
OB_ALL_VIRTUAL_AUX_STAT_REAL_AGENT_ORA_TNAME,
|
||||
OB_ALL_VIRTUAL_SYS_VARIABLE_REAL_AGENT_ORA_TNAME,
|
||||
OB_ALL_VIRTUAL_SYS_VARIABLE_DEFAULT_VALUE_ORA_TNAME,
|
||||
OB_ALL_VIRTUAL_TRANSFER_PARTITION_TASK_REAL_AGENT_ORA_TNAME,
|
||||
OB_ALL_VIRTUAL_TRANSFER_PARTITION_TASK_HISTORY_REAL_AGENT_ORA_TNAME,
|
||||
OB_ALL_VIRTUAL_LS_SNAPSHOT_ORA_TNAME,
|
||||
@ -8478,6 +8498,7 @@ const char* const tenant_space_table_names [] = {
|
||||
OB_V_OB_CGROUP_CONFIG_TNAME,
|
||||
OB_DBA_OB_AUX_STATISTICS_TNAME,
|
||||
OB_DBA_INDEX_USAGE_TNAME,
|
||||
OB_DBA_OB_SYS_VARIABLES_TNAME,
|
||||
OB_DBA_OB_TRANSFER_PARTITION_TASKS_TNAME,
|
||||
OB_DBA_OB_TRANSFER_PARTITION_TASK_HISTORY_TNAME,
|
||||
OB_GV_OB_LS_SNAPSHOTS_TNAME,
|
||||
@ -8939,6 +8960,7 @@ const char* const tenant_space_table_names [] = {
|
||||
OB_GV_OB_CGROUP_CONFIG_ORA_TNAME,
|
||||
OB_V_OB_CGROUP_CONFIG_ORA_TNAME,
|
||||
OB_DBA_OB_AUX_STATISTICS_ORA_TNAME,
|
||||
OB_DBA_OB_SYS_VARIABLES_ORA_TNAME,
|
||||
OB_DBA_INDEX_USAGE_ORA_TNAME,
|
||||
OB_GV_OB_LS_SNAPSHOTS_ORA_TNAME,
|
||||
OB_V_OB_LS_SNAPSHOTS_ORA_TNAME,
|
||||
@ -12466,11 +12488,11 @@ static inline int get_sys_table_lob_aux_schema(const uint64_t tid,
|
||||
|
||||
const int64_t OB_CORE_TABLE_COUNT = 4;
|
||||
const int64_t OB_SYS_TABLE_COUNT = 284;
|
||||
const int64_t OB_VIRTUAL_TABLE_COUNT = 788;
|
||||
const int64_t OB_SYS_VIEW_COUNT = 854;
|
||||
const int64_t OB_SYS_TENANT_TABLE_COUNT = 1931;
|
||||
const int64_t OB_VIRTUAL_TABLE_COUNT = 791;
|
||||
const int64_t OB_SYS_VIEW_COUNT = 856;
|
||||
const int64_t OB_SYS_TENANT_TABLE_COUNT = 1936;
|
||||
const int64_t OB_CORE_SCHEMA_VERSION = 1;
|
||||
const int64_t OB_BOOTSTRAP_SCHEMA_VERSION = 1934;
|
||||
const int64_t OB_BOOTSTRAP_SCHEMA_VERSION = 1939;
|
||||
|
||||
} // end namespace share
|
||||
} // end namespace oceanbase
|
||||
|
@ -742,6 +742,13 @@ bool vt_mapping_init()
|
||||
tmp_vt_mapping.is_real_vt_ = true;
|
||||
}
|
||||
|
||||
{
|
||||
int64_t idx = OB_ALL_VIRTUAL_SYS_VARIABLE_REAL_AGENT_ORA_TID - start_idx;
|
||||
VTMapping &tmp_vt_mapping = vt_mappings[idx];
|
||||
tmp_vt_mapping.mapping_tid_ = OB_ALL_SYS_VARIABLE_TID;
|
||||
tmp_vt_mapping.is_real_vt_ = true;
|
||||
}
|
||||
|
||||
{
|
||||
int64_t idx = OB_ALL_VIRTUAL_TABLEGROUP_REAL_AGENT_ORA_TID - start_idx;
|
||||
VTMapping &tmp_vt_mapping = vt_mappings[idx];
|
||||
|
@ -742,6 +742,7 @@ const uint64_t OB_ALL_VIRTUAL_CHECKPOINT_DIAGNOSE_MEMTABLE_INFO_TID = 12437; //
|
||||
const uint64_t OB_ALL_VIRTUAL_CHECKPOINT_DIAGNOSE_CHECKPOINT_UNIT_INFO_TID = 12438; // "__all_virtual_checkpoint_diagnose_checkpoint_unit_info"
|
||||
const uint64_t OB_ALL_VIRTUAL_CHECKPOINT_DIAGNOSE_INFO_TID = 12439; // "__all_virtual_checkpoint_diagnose_info"
|
||||
const uint64_t OB_ALL_VIRTUAL_AUX_STAT_TID = 12447; // "__all_virtual_aux_stat"
|
||||
const uint64_t OB_ALL_VIRTUAL_SYS_VARIABLE_DEFAULT_VALUE_TID = 12450; // "__all_virtual_sys_variable_default_value"
|
||||
const uint64_t OB_ALL_VIRTUAL_TRANSFER_PARTITION_TASK_TID = 12451; // "__all_virtual_transfer_partition_task"
|
||||
const uint64_t OB_ALL_VIRTUAL_TRANSFER_PARTITION_TASK_HISTORY_TID = 12452; // "__all_virtual_transfer_partition_task_history"
|
||||
const uint64_t OB_ALL_VIRTUAL_TENANT_SNAPSHOT_JOB_TID = 12453; // "__all_virtual_tenant_snapshot_job"
|
||||
@ -1007,6 +1008,8 @@ const uint64_t OB_ALL_VIRTUAL_IMPORT_TABLE_TASK_HISTORY_ORA_TID = 15412; // "ALL
|
||||
const uint64_t OB_ALL_VIRTUAL_LS_INFO_ORA_TID = 15414; // "ALL_VIRTUAL_LS_INFO_ORA"
|
||||
const uint64_t OB_ALL_VIRTUAL_CGROUP_CONFIG_ORA_TID = 15418; // "ALL_VIRTUAL_CGROUP_CONFIG_ORA"
|
||||
const uint64_t OB_ALL_VIRTUAL_AUX_STAT_REAL_AGENT_ORA_TID = 15427; // "ALL_VIRTUAL_AUX_STAT_REAL_AGENT_ORA"
|
||||
const uint64_t OB_ALL_VIRTUAL_SYS_VARIABLE_REAL_AGENT_ORA_TID = 15428; // "ALL_VIRTUAL_SYS_VARIABLE_REAL_AGENT_ORA"
|
||||
const uint64_t OB_ALL_VIRTUAL_SYS_VARIABLE_DEFAULT_VALUE_ORA_TID = 15429; // "ALL_VIRTUAL_SYS_VARIABLE_DEFAULT_VALUE_ORA"
|
||||
const uint64_t OB_ALL_VIRTUAL_TRANSFER_PARTITION_TASK_REAL_AGENT_ORA_TID = 15430; // "ALL_VIRTUAL_TRANSFER_PARTITION_TASK_REAL_AGENT_ORA"
|
||||
const uint64_t OB_ALL_VIRTUAL_TRANSFER_PARTITION_TASK_HISTORY_REAL_AGENT_ORA_TID = 15431; // "ALL_VIRTUAL_TRANSFER_PARTITION_TASK_HISTORY_REAL_AGENT_ORA"
|
||||
const uint64_t OB_ALL_VIRTUAL_LS_SNAPSHOT_ORA_TID = 15439; // "ALL_VIRTUAL_LS_SNAPSHOT_ORA"
|
||||
@ -1386,6 +1389,7 @@ const uint64_t OB_V_OB_CGROUP_CONFIG_TID = 21480; // "V$OB_CGROUP_CONFIG"
|
||||
const uint64_t OB_DBA_OB_AUX_STATISTICS_TID = 21497; // "DBA_OB_AUX_STATISTICS"
|
||||
const uint64_t OB_CDB_OB_AUX_STATISTICS_TID = 21498; // "CDB_OB_AUX_STATISTICS"
|
||||
const uint64_t OB_DBA_INDEX_USAGE_TID = 21499; // "DBA_INDEX_USAGE"
|
||||
const uint64_t OB_DBA_OB_SYS_VARIABLES_TID = 21500; // "DBA_OB_SYS_VARIABLES"
|
||||
const uint64_t OB_DBA_OB_TRANSFER_PARTITION_TASKS_TID = 21501; // "DBA_OB_TRANSFER_PARTITION_TASKS"
|
||||
const uint64_t OB_CDB_OB_TRANSFER_PARTITION_TASKS_TID = 21502; // "CDB_OB_TRANSFER_PARTITION_TASKS"
|
||||
const uint64_t OB_DBA_OB_TRANSFER_PARTITION_TASK_HISTORY_TID = 21503; // "DBA_OB_TRANSFER_PARTITION_TASK_HISTORY"
|
||||
@ -1861,6 +1865,7 @@ const uint64_t OB_V_OB_PL_CACHE_OBJECT_ORA_TID = 28199; // "V$OB_PL_CACHE_OBJECT
|
||||
const uint64_t OB_GV_OB_CGROUP_CONFIG_ORA_TID = 28200; // "GV$OB_CGROUP_CONFIG_ORA"
|
||||
const uint64_t OB_V_OB_CGROUP_CONFIG_ORA_TID = 28201; // "V$OB_CGROUP_CONFIG_ORA"
|
||||
const uint64_t OB_DBA_OB_AUX_STATISTICS_ORA_TID = 28210; // "DBA_OB_AUX_STATISTICS_ORA"
|
||||
const uint64_t OB_DBA_OB_SYS_VARIABLES_ORA_TID = 28211; // "DBA_OB_SYS_VARIABLES_ORA"
|
||||
const uint64_t OB_DBA_INDEX_USAGE_ORA_TID = 28214; // "DBA_INDEX_USAGE_ORA"
|
||||
const uint64_t OB_GV_OB_LS_SNAPSHOTS_ORA_TID = 28215; // "GV$OB_LS_SNAPSHOTS_ORA"
|
||||
const uint64_t OB_V_OB_LS_SNAPSHOTS_ORA_TID = 28216; // "V$OB_LS_SNAPSHOTS_ORA"
|
||||
@ -3350,6 +3355,7 @@ const char *const OB_ALL_VIRTUAL_CHECKPOINT_DIAGNOSE_MEMTABLE_INFO_TNAME = "__al
|
||||
const char *const OB_ALL_VIRTUAL_CHECKPOINT_DIAGNOSE_CHECKPOINT_UNIT_INFO_TNAME = "__all_virtual_checkpoint_diagnose_checkpoint_unit_info";
|
||||
const char *const OB_ALL_VIRTUAL_CHECKPOINT_DIAGNOSE_INFO_TNAME = "__all_virtual_checkpoint_diagnose_info";
|
||||
const char *const OB_ALL_VIRTUAL_AUX_STAT_TNAME = "__all_virtual_aux_stat";
|
||||
const char *const OB_ALL_VIRTUAL_SYS_VARIABLE_DEFAULT_VALUE_TNAME = "__all_virtual_sys_variable_default_value";
|
||||
const char *const OB_ALL_VIRTUAL_TRANSFER_PARTITION_TASK_TNAME = "__all_virtual_transfer_partition_task";
|
||||
const char *const OB_ALL_VIRTUAL_TRANSFER_PARTITION_TASK_HISTORY_TNAME = "__all_virtual_transfer_partition_task_history";
|
||||
const char *const OB_ALL_VIRTUAL_TENANT_SNAPSHOT_JOB_TNAME = "__all_virtual_tenant_snapshot_job";
|
||||
@ -3615,6 +3621,8 @@ const char *const OB_ALL_VIRTUAL_IMPORT_TABLE_TASK_HISTORY_ORA_TNAME = "ALL_VIRT
|
||||
const char *const OB_ALL_VIRTUAL_LS_INFO_ORA_TNAME = "ALL_VIRTUAL_LS_INFO";
|
||||
const char *const OB_ALL_VIRTUAL_CGROUP_CONFIG_ORA_TNAME = "ALL_VIRTUAL_CGROUP_CONFIG";
|
||||
const char *const OB_ALL_VIRTUAL_AUX_STAT_REAL_AGENT_ORA_TNAME = "ALL_VIRTUAL_AUX_STAT_REAL_AGENT";
|
||||
const char *const OB_ALL_VIRTUAL_SYS_VARIABLE_REAL_AGENT_ORA_TNAME = "ALL_VIRTUAL_SYS_VARIABLE_REAL_AGENT";
|
||||
const char *const OB_ALL_VIRTUAL_SYS_VARIABLE_DEFAULT_VALUE_ORA_TNAME = "ALL_VIRTUAL_SYS_VARIABLE_DEFAULT_VALUE";
|
||||
const char *const OB_ALL_VIRTUAL_TRANSFER_PARTITION_TASK_REAL_AGENT_ORA_TNAME = "ALL_VIRTUAL_TRANSFER_PARTITION_TASK_REAL_AGENT";
|
||||
const char *const OB_ALL_VIRTUAL_TRANSFER_PARTITION_TASK_HISTORY_REAL_AGENT_ORA_TNAME = "ALL_VIRTUAL_TRANSFER_PARTITION_TASK_HISTORY_REAL_AGENT";
|
||||
const char *const OB_ALL_VIRTUAL_LS_SNAPSHOT_ORA_TNAME = "ALL_VIRTUAL_LS_SNAPSHOT";
|
||||
@ -3994,6 +4002,7 @@ const char *const OB_V_OB_CGROUP_CONFIG_TNAME = "V$OB_CGROUP_CONFIG";
|
||||
const char *const OB_DBA_OB_AUX_STATISTICS_TNAME = "DBA_OB_AUX_STATISTICS";
|
||||
const char *const OB_CDB_OB_AUX_STATISTICS_TNAME = "CDB_OB_AUX_STATISTICS";
|
||||
const char *const OB_DBA_INDEX_USAGE_TNAME = "DBA_INDEX_USAGE";
|
||||
const char *const OB_DBA_OB_SYS_VARIABLES_TNAME = "DBA_OB_SYS_VARIABLES";
|
||||
const char *const OB_DBA_OB_TRANSFER_PARTITION_TASKS_TNAME = "DBA_OB_TRANSFER_PARTITION_TASKS";
|
||||
const char *const OB_CDB_OB_TRANSFER_PARTITION_TASKS_TNAME = "CDB_OB_TRANSFER_PARTITION_TASKS";
|
||||
const char *const OB_DBA_OB_TRANSFER_PARTITION_TASK_HISTORY_TNAME = "DBA_OB_TRANSFER_PARTITION_TASK_HISTORY";
|
||||
@ -4469,6 +4478,7 @@ const char *const OB_V_OB_PL_CACHE_OBJECT_ORA_TNAME = "V$OB_PL_CACHE_OBJECT";
|
||||
const char *const OB_GV_OB_CGROUP_CONFIG_ORA_TNAME = "GV$OB_CGROUP_CONFIG";
|
||||
const char *const OB_V_OB_CGROUP_CONFIG_ORA_TNAME = "V$OB_CGROUP_CONFIG";
|
||||
const char *const OB_DBA_OB_AUX_STATISTICS_ORA_TNAME = "DBA_OB_AUX_STATISTICS";
|
||||
const char *const OB_DBA_OB_SYS_VARIABLES_ORA_TNAME = "DBA_OB_SYS_VARIABLES";
|
||||
const char *const OB_DBA_INDEX_USAGE_ORA_TNAME = "DBA_INDEX_USAGE";
|
||||
const char *const OB_GV_OB_LS_SNAPSHOTS_ORA_TNAME = "GV$OB_LS_SNAPSHOTS";
|
||||
const char *const OB_V_OB_LS_SNAPSHOTS_ORA_TNAME = "V$OB_LS_SNAPSHOTS";
|
||||
|
@ -13958,8 +13958,19 @@ def_table_schema(**gen_iterate_virtual_table_def(
|
||||
keywords = all_def_keywords['__all_aux_stat']))
|
||||
# 12448: __all_virtual_detect_lock_info
|
||||
# 12449: __all_virtual_client_to_server_session_info
|
||||
# 12450: __all_virtual_sys_variable_default_value
|
||||
|
||||
def_table_schema(
|
||||
owner = 'linzhigang.lzg',
|
||||
table_name = '__all_virtual_sys_variable_default_value',
|
||||
table_id = '12450',
|
||||
table_type = 'VIRTUAL_TABLE',
|
||||
gm_columns = [],
|
||||
rowkey_columns = [],
|
||||
in_tenant_space = True,
|
||||
normal_columns = [
|
||||
('variable_name', 'varchar:OB_MAX_CONFIG_NAME_LEN', 'false', ''),
|
||||
('default_value', 'varchar:OB_MAX_CONFIG_VALUE_LEN', 'true')
|
||||
],
|
||||
)
|
||||
def_table_schema(**gen_iterate_virtual_table_def(
|
||||
table_id = '12451',
|
||||
table_name = '__all_virtual_transfer_partition_task',
|
||||
@ -14513,8 +14524,8 @@ def_table_schema(**no_direct_access(gen_oracle_mapping_virtual_table_def('15418'
|
||||
# 15425: __all_virtual_wr_sqlstat
|
||||
# 15426: __tenant_virtual_statname
|
||||
def_table_schema(**gen_oracle_mapping_real_virtual_table_def('15427', all_def_keywords['__all_aux_stat']))
|
||||
# 15428: __all_sys_variable
|
||||
# 15429: __all_virtual_sys_variable_default_value
|
||||
def_table_schema(**gen_oracle_mapping_real_virtual_table_def('15428', all_def_keywords['__all_sys_variable']))
|
||||
def_table_schema(**gen_oracle_mapping_virtual_table_def('15429', all_def_keywords['__all_virtual_sys_variable_default_value']))
|
||||
def_table_schema(**no_direct_access(gen_oracle_mapping_real_virtual_table_def('15430', all_def_keywords['__all_transfer_partition_task'])))
|
||||
def_table_schema(**no_direct_access(gen_oracle_mapping_real_virtual_table_def('15431', all_def_keywords['__all_transfer_partition_task_history'])))
|
||||
# 15432: __all_virtual_wr_sqltext
|
||||
@ -23110,7 +23121,13 @@ SELECT
|
||||
VALUE,
|
||||
INFO,
|
||||
SECTION,
|
||||
EDIT_LEVEL
|
||||
EDIT_LEVEL,
|
||||
DEFAULT_VALUE,
|
||||
CAST (CASE ISDEFAULT
|
||||
WHEN 1
|
||||
THEN 'YES'
|
||||
ELSE 'NO'
|
||||
END AS CHAR(3)) AS ISDEFAULT
|
||||
FROM oceanbase.__all_virtual_tenant_parameter_stat
|
||||
""".replace("\n", " ")
|
||||
)
|
||||
@ -23135,7 +23152,13 @@ def_table_schema(
|
||||
VALUE,
|
||||
INFO,
|
||||
SECTION,
|
||||
EDIT_LEVEL
|
||||
EDIT_LEVEL,
|
||||
DEFAULT_VALUE,
|
||||
CAST (CASE ISDEFAULT
|
||||
WHEN 1
|
||||
THEN 'YES'
|
||||
ELSE 'NO'
|
||||
END AS CHAR(3)) AS ISDEFAULT
|
||||
FROM oceanbase.GV$OB_PARAMETERS
|
||||
WHERE SVR_IP = host_ip() AND SVR_PORT = rpc_port()
|
||||
""".replace("\n", " ")
|
||||
@ -26621,21 +26644,28 @@ def_table_schema(
|
||||
view_definition =
|
||||
"""
|
||||
SELECT
|
||||
GMT_CREATE AS CREATE_TIME,
|
||||
GMT_MODIFIED AS MODIFY_TIME,
|
||||
TENANT_ID,
|
||||
NAME,
|
||||
VALUE,
|
||||
MIN_VAL as MIN_VALUE,
|
||||
MAX_VAL as MAX_VALUE,
|
||||
CASE FLAGS & 0x3
|
||||
a.GMT_CREATE AS CREATE_TIME,
|
||||
a.GMT_MODIFIED AS MODIFY_TIME,
|
||||
a.TENANT_ID as TENANT_ID,
|
||||
a.NAME as NAME,
|
||||
a.VALUE as VALUE,
|
||||
a.MIN_VAL as MIN_VALUE,
|
||||
a.MAX_VAL as MAX_VALUE,
|
||||
CASE a.FLAGS & 0x3
|
||||
WHEN 1 THEN "GLOBAL_ONLY"
|
||||
WHEN 2 THEN "SESSION_ONLY"
|
||||
WHEN 3 THEN "GLOBAL | SESSION"
|
||||
ELSE NULL
|
||||
END as SCOPE,
|
||||
INFO
|
||||
FROM oceanbase.__all_virtual_sys_variable
|
||||
a.INFO as INFO,
|
||||
b.DEFAULT_VALUE as DEFAULT_VALUE,
|
||||
CAST (CASE WHEN a.VALUE = b.DEFAULT_VALUE
|
||||
THEN 'YES'
|
||||
ELSE 'NO'
|
||||
END AS CHAR(3)) AS ISDEFAULT
|
||||
FROM oceanbase.__all_virtual_sys_variable a
|
||||
join oceanbase.__all_virtual_sys_variable_default_value b
|
||||
where a.name = b.variable_name;
|
||||
""".replace("\n", " "),
|
||||
)
|
||||
|
||||
@ -32209,7 +32239,42 @@ def_table_schema(
|
||||
""".replace("\n", " "),
|
||||
)
|
||||
|
||||
#21500: DBA_OB_SYS_VARIABLES
|
||||
def_table_schema(
|
||||
owner = 'linzhigang.lzg',
|
||||
table_name = 'DBA_OB_SYS_VARIABLES',
|
||||
table_id = '21500',
|
||||
table_type = 'SYSTEM_VIEW',
|
||||
gm_columns = [],
|
||||
rowkey_columns = [],
|
||||
normal_columns = [],
|
||||
in_tenant_space = True,
|
||||
view_definition =
|
||||
"""
|
||||
SELECT
|
||||
a.GMT_CREATE AS CREATE_TIME,
|
||||
a.GMT_MODIFIED AS MODIFY_TIME,
|
||||
a.NAME as NAME,
|
||||
a.VALUE as VALUE,
|
||||
a.MIN_VAL as MIN_VALUE,
|
||||
a.MAX_VAL as MAX_VALUE,
|
||||
CASE a.FLAGS & 0x3
|
||||
WHEN 1 THEN "GLOBAL_ONLY"
|
||||
WHEN 2 THEN "SESSION_ONLY"
|
||||
WHEN 3 THEN "GLOBAL | SESSION"
|
||||
ELSE NULL
|
||||
END as SCOPE,
|
||||
a.INFO as INFO,
|
||||
b.DEFAULT_VALUE as DEFAULT_VALUE,
|
||||
CAST (CASE WHEN a.VALUE = b.DEFAULT_VALUE
|
||||
THEN 'YES'
|
||||
ELSE 'NO'
|
||||
END AS CHAR(3)) AS ISDEFAULT
|
||||
FROM oceanbase.__all_sys_variable a
|
||||
join oceanbase.__all_virtual_sys_variable_default_value b
|
||||
where a.name = b.variable_name;
|
||||
""".replace("\n", " "),
|
||||
)
|
||||
|
||||
def_table_schema(
|
||||
owner = 'msy164651',
|
||||
table_name = 'DBA_OB_TRANSFER_PARTITION_TASKS',
|
||||
@ -57895,7 +57960,13 @@ SELECT
|
||||
VALUE,
|
||||
INFO,
|
||||
SECTION,
|
||||
EDIT_LEVEL
|
||||
EDIT_LEVEL,
|
||||
DEFAULT_VALUE,
|
||||
CAST (CASE ISDEFAULT
|
||||
WHEN 1
|
||||
THEN 'YES'
|
||||
ELSE 'NO'
|
||||
END AS VARCHAR2(3)) AS ISDEFAULT
|
||||
FROM SYS.ALL_VIRTUAL_TENANT_PARAMETER_STAT
|
||||
""".replace("\n", " ")
|
||||
)
|
||||
@ -57912,17 +57983,24 @@ def_table_schema(
|
||||
gm_columns = [],
|
||||
in_tenant_space = True,
|
||||
view_definition = """
|
||||
SELECT SVR_IP,
|
||||
SVR_PORT,
|
||||
ZONE,
|
||||
SCOPE,
|
||||
TENANT_ID,
|
||||
NAME,
|
||||
DATA_TYPE,
|
||||
VALUE,
|
||||
INFO,
|
||||
SECTION,
|
||||
EDIT_LEVEL
|
||||
SELECT
|
||||
SVR_IP,
|
||||
SVR_PORT,
|
||||
ZONE,
|
||||
SCOPE,
|
||||
TENANT_ID,
|
||||
NAME,
|
||||
DATA_TYPE,
|
||||
VALUE,
|
||||
INFO,
|
||||
SECTION,
|
||||
EDIT_LEVEL,
|
||||
DEFAULT_VALUE,
|
||||
CAST (CASE ISDEFAULT
|
||||
WHEN '1'
|
||||
THEN 'YES'
|
||||
ELSE 'NO'
|
||||
END AS VARCHAR2(3)) AS ISDEFAULT
|
||||
FROM SYS.GV$OB_PARAMETERS
|
||||
WHERE SVR_IP = host_ip() AND SVR_PORT = rpc_port()
|
||||
""".replace("\n", " ")
|
||||
@ -60489,7 +60567,42 @@ def_table_schema(
|
||||
WHERE TENANT_ID = EFFECTIVE_TENANT_ID();
|
||||
""".replace("\n", " ")
|
||||
)
|
||||
# 28211: DBA_OB_SYS_VARIABLES
|
||||
def_table_schema(
|
||||
owner = 'linzhigang.lzg',
|
||||
table_name = 'DBA_OB_SYS_VARIABLES',
|
||||
name_postfix = '_ORA',
|
||||
database_id = 'OB_ORA_SYS_DATABASE_ID',
|
||||
table_id = '28211',
|
||||
table_type = 'SYSTEM_VIEW',
|
||||
gm_columns = [],
|
||||
rowkey_columns = [],
|
||||
normal_columns = [],
|
||||
in_tenant_space = True,
|
||||
view_definition =
|
||||
"""
|
||||
SELECT
|
||||
A.GMT_CREATE AS CREATE_TIME,
|
||||
A.GMT_MODIFIED AS MODIFY_TIME,
|
||||
A.NAME as NAME,
|
||||
A.VALUE as VALUE,
|
||||
A.MIN_VAL as MIN_VALUE,
|
||||
A.MAX_VAL as MAX_VALUE,
|
||||
CASE BITAND(A.FLAGS,3)
|
||||
WHEN 1 THEN 'GLOBAL_ONLY'
|
||||
WHEN 2 THEN 'SESSION_ONLY'
|
||||
WHEN 3 THEN 'GLOBAL | SESSION'
|
||||
ELSE NULL
|
||||
END as SCOPE,
|
||||
A.INFO as INFO,
|
||||
B.DEFAULT_VALUE as DEFAULT_VALUE,
|
||||
CAST (CASE WHEN A.VALUE = B.DEFAULT_VALUE
|
||||
THEN 'YES'
|
||||
ELSE 'NO'
|
||||
END AS VARCHAR2(3)) AS ISDEFAULT
|
||||
FROM SYS.ALL_VIRTUAL_SYS_VARIABLE_REAL_AGENT A, SYS.ALL_VIRTUAL_SYS_VARIABLE_DEFAULT_VALUE B
|
||||
WHERE A.NAME = B.VARIABLE_NAME;
|
||||
""".replace("\n", " "),
|
||||
)
|
||||
# 28212: GV$OB_ACTIVE_SESSION_HISTORY
|
||||
# 28213: V$OB_ACTIVE_SESSION_HISTORY
|
||||
|
||||
|
@ -1062,6 +1062,7 @@
|
||||
# 12439: __all_virtual_checkpoint_diagnose_info
|
||||
# 12447: __all_virtual_aux_stat
|
||||
# 12447: __all_aux_stat # BASE_TABLE_NAME
|
||||
# 12450: __all_virtual_sys_variable_default_value
|
||||
# 12451: __all_virtual_transfer_partition_task
|
||||
# 12451: __all_transfer_partition_task # BASE_TABLE_NAME
|
||||
# 12452: __all_virtual_transfer_partition_task_history
|
||||
@ -1649,6 +1650,10 @@
|
||||
# 15418: __all_virtual_cgroup_config # BASE_TABLE_NAME
|
||||
# 15427: ALL_VIRTUAL_AUX_STAT_REAL_AGENT
|
||||
# 15427: __all_aux_stat # BASE_TABLE_NAME
|
||||
# 15428: ALL_VIRTUAL_SYS_VARIABLE_REAL_AGENT
|
||||
# 15428: __all_sys_variable # BASE_TABLE_NAME
|
||||
# 15429: ALL_VIRTUAL_SYS_VARIABLE_DEFAULT_VALUE
|
||||
# 15429: __all_virtual_sys_variable_default_value # BASE_TABLE_NAME
|
||||
# 15430: ALL_VIRTUAL_TRANSFER_PARTITION_TASK_REAL_AGENT
|
||||
# 15430: __all_transfer_partition_task # BASE_TABLE_NAME
|
||||
# 15431: ALL_VIRTUAL_TRANSFER_PARTITION_TASK_HISTORY_REAL_AGENT
|
||||
@ -2034,6 +2039,7 @@
|
||||
# 21497: DBA_OB_AUX_STATISTICS
|
||||
# 21498: CDB_OB_AUX_STATISTICS
|
||||
# 21499: DBA_INDEX_USAGE
|
||||
# 21500: DBA_OB_SYS_VARIABLES
|
||||
# 21501: DBA_OB_TRANSFER_PARTITION_TASKS
|
||||
# 21502: CDB_OB_TRANSFER_PARTITION_TASKS
|
||||
# 21503: DBA_OB_TRANSFER_PARTITION_TASK_HISTORY
|
||||
@ -2509,6 +2515,7 @@
|
||||
# 28200: GV$OB_CGROUP_CONFIG
|
||||
# 28201: V$OB_CGROUP_CONFIG
|
||||
# 28210: DBA_OB_AUX_STATISTICS
|
||||
# 28211: DBA_OB_SYS_VARIABLES
|
||||
# 28214: DBA_INDEX_USAGE
|
||||
# 28215: GV$OB_LS_SNAPSHOTS
|
||||
# 28216: V$OB_LS_SNAPSHOTS
|
||||
|
@ -57,14 +57,14 @@ access_specifier:
|
||||
} \
|
||||
TO_STRING_KV(K_(value_str)) \
|
||||
protected: \
|
||||
const char *value_default_str_ = def; \
|
||||
const char *get_default_ptr() const override \
|
||||
const char *value_default_ptr() const override \
|
||||
{ \
|
||||
return value_default_str_; \
|
||||
} \
|
||||
static constexpr const char* value_default_str_ = def; \
|
||||
} name;
|
||||
|
||||
#define _DEF_PARAMETER_RANGE_EASY(access_specifier, param, scope, name, def, args...) \
|
||||
#define _DEF_PARAMETER_RANGE_EASY(access_specifier, param, scope, name, def, args...) \
|
||||
access_specifier: \
|
||||
class ObConfig ## param ## Item ## _ ## name \
|
||||
: public common::ObConfig ## param ## Item \
|
||||
@ -80,11 +80,11 @@ access_specifier:
|
||||
return *this; \
|
||||
} \
|
||||
protected: \
|
||||
const char *value_default_str_ = def; \
|
||||
const char *get_default_ptr() const override \
|
||||
const char *value_default_ptr() const override \
|
||||
{ \
|
||||
return value_default_str_; \
|
||||
} \
|
||||
static constexpr const char* value_default_str_ = def; \
|
||||
} name;
|
||||
|
||||
#define _DEF_PARAMETER_CHECKER_EASY(access_specifier, param, scope, name, def, checker, args...) \
|
||||
@ -106,13 +106,12 @@ access_specifier:
|
||||
return *this; \
|
||||
} \
|
||||
protected: \
|
||||
const char *value_default_str_ = def; \
|
||||
const char *get_default_ptr() const override \
|
||||
const char *value_default_ptr() const override \
|
||||
{ \
|
||||
return value_default_str_; \
|
||||
} \
|
||||
static constexpr const char* value_default_str_ = def; \
|
||||
} name;
|
||||
|
||||
#define _DEF_PARAMETER_PARSER_EASY(access_specifier, param, scope, name, def, parser, args...) \
|
||||
access_specifier: \
|
||||
class ObConfig ## param ## Item ## _ ## name \
|
||||
@ -122,13 +121,13 @@ access_specifier:
|
||||
ObConfig ## param ## Item ## _ ## name() \
|
||||
: common::ObConfig ## param ## Item( \
|
||||
local_container(), scope, #name, def, \
|
||||
new (std::nothrow) parser(), args) {} \
|
||||
protected: \
|
||||
const char *value_default_str_ = def; \
|
||||
const char *get_default_ptr() const override \
|
||||
new (std::nothrow) parser(), args) {} \
|
||||
protected: \
|
||||
const char *value_default_ptr() const override \
|
||||
{ \
|
||||
return value_default_str_; \
|
||||
} \
|
||||
static constexpr const char* value_default_str_ = def; \
|
||||
} name;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -207,6 +207,7 @@ def make_head_file(pdir, head_file_name, sorted_list):
|
||||
head_file.write(" static const common::ObObj &get_default_value(int64_t i);\n")
|
||||
head_file.write(" static const common::ObObj &get_base_value(int64_t i);\n")
|
||||
head_file.write(" static int64_t get_amount();\n");
|
||||
head_file.write(" static ObCollationType get_default_sysvar_collation();\n");
|
||||
head_file.write(" static int set_value(const char *name, const char * new_value);\n");
|
||||
head_file.write(" static int set_value(const common::ObString &name, const common::ObString &new_value);\n");
|
||||
head_file.write(" static int set_base_value(const char *name, const char * new_value);\n");
|
||||
@ -336,6 +337,7 @@ def make_cpp_file(pdir, cpp_file_name, sorted_list):
|
||||
cpp_file.write("const ObObj &ObSysVariables::get_default_value(int64_t i){ return ObSysVarDefaultValues[i];}\n")
|
||||
cpp_file.write("const ObObj &ObSysVariables::get_base_value(int64_t i){ return ObSysVarBaseValues[i];}\n")
|
||||
cpp_file.write("int64_t ObSysVariables::get_amount(){ return var_amount;}\n")
|
||||
cpp_file.write("ObCollationType ObSysVariables::get_default_sysvar_collation() { return CS_TYPE_UTF8MB4_GENERAL_CI;}\n")
|
||||
cpp_file.write("\n")
|
||||
cpp_file.write("int ObSysVariables::set_value(const char *name, const char * new_value)\n")
|
||||
cpp_file.write("{\n")
|
||||
@ -400,11 +402,11 @@ int ObSysVariables::init_default_values()
|
||||
ObObj in_obj;
|
||||
ObObj out_obj;
|
||||
in_obj.set_varchar(sys_var_val_str);
|
||||
in_obj.set_collation_type(CS_TYPE_UTF8MB4_GENERAL_CI);
|
||||
in_obj.set_collation_type(ObSysVariables::get_default_sysvar_collation());
|
||||
ObObj base_in_obj;
|
||||
ObObj base_out_obj;
|
||||
base_in_obj.set_varchar(base_sys_var_val_str);
|
||||
base_in_obj.set_collation_type(CS_TYPE_UTF8MB4_GENERAL_CI);
|
||||
base_in_obj.set_collation_type(ObSysVariables::get_default_sysvar_collation());
|
||||
//varchar to others. so, no need to get collation from session
|
||||
ObCastCtx cast_ctx(&ObSysVarAllocator,
|
||||
NULL,
|
||||
|
@ -35,6 +35,7 @@
|
||||
#include "sql/engine/expr/ob_expr_plsql_variable.h"
|
||||
#include "share/resource_manager/ob_resource_manager_proxy.h"
|
||||
#include "sql/engine/expr/ob_expr_uuid.h"
|
||||
#include "lib/locale/ob_locale_type.h"
|
||||
#ifdef OB_BUILD_ORACLE_PL
|
||||
#include "pl/ob_pl_warning.h"
|
||||
#endif
|
||||
@ -2437,18 +2438,6 @@ int ObSysVarOnCheckFuncs::check_session_readonly(ObExecContext &ctx,
|
||||
return ret;
|
||||
}
|
||||
|
||||
int ObSysVarOnCheckFuncs::check_locale_type_is_valid(
|
||||
sql::ObExecContext &ctx,
|
||||
const ObSetVar &set_var,
|
||||
const ObBasicSysVar &sys_var,
|
||||
const common::ObObj &in_val,
|
||||
common::ObObj &out_val)
|
||||
{
|
||||
int ret = OB_NOT_SUPPORTED;
|
||||
LOG_USER_ERROR(OB_NOT_SUPPORTED, "lc_time_names");
|
||||
return ret;
|
||||
}
|
||||
|
||||
int ObSysVarOnCheckFuncs::check_and_convert_plsql_warnings(sql::ObExecContext &ctx,
|
||||
const ObSetVar &set_var,
|
||||
const ObBasicSysVar &sys_var,
|
||||
@ -2520,6 +2509,28 @@ int ObSysVarOnCheckFuncs::check_runtime_filter_type_is_valid(
|
||||
return ret;
|
||||
}
|
||||
|
||||
int ObSysVarOnCheckFuncs::check_locale_type_is_valid(
|
||||
sql::ObExecContext &ctx,
|
||||
const ObSetVar &set_var,
|
||||
const ObBasicSysVar &sys_var,
|
||||
const common::ObObj &in_val,
|
||||
common::ObObj &out_val)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
const ObString &locale_val = in_val.get_string();
|
||||
ObString valid_locale = in_val.get_string();
|
||||
if (true == set_var.is_set_default_) {
|
||||
//do nothing
|
||||
} else if (!is_valid_ob_locale(locale_val, valid_locale)) { //check if the variable is valid
|
||||
ret = OB_ERR_WRONG_VALUE_FOR_VAR;
|
||||
LOG_USER_ERROR(OB_ERR_WRONG_VALUE_FOR_VAR, sys_var.get_name().length(), sys_var.get_name().ptr(),
|
||||
locale_val.length(), locale_val.ptr());
|
||||
} else {
|
||||
OX(out_val.set_string(in_val.get_type(), valid_locale));
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
int ObSysVarOnUpdateFuncs::update_tx_isolation(ObExecContext &ctx,
|
||||
const ObSetVar &set_var,
|
||||
const ObBasicSysVar &sys_var,
|
||||
|
@ -3447,7 +3447,7 @@ static struct VarsInit{
|
||||
ObSysVars[244].info_ = "The locale indicated by the lc_time_names system variable controls the language used to display day and month names and abbreviations" ;
|
||||
ObSysVars[244].name_ = "lc_time_names" ;
|
||||
ObSysVars[244].data_type_ = ObVarcharType ;
|
||||
ObSysVars[244].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ;
|
||||
ObSysVars[244].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::NEED_SERIALIZE ;
|
||||
ObSysVars[244].on_check_and_convert_func_ = "ObSysVarOnCheckFuncs::check_locale_type_is_valid" ;
|
||||
ObSysVars[244].id_ = SYS_VAR_LC_TIME_NAMES ;
|
||||
cur_max_var_id = MAX(cur_max_var_id, static_cast<int64_t>(SYS_VAR_LC_TIME_NAMES)) ;
|
||||
@ -4806,6 +4806,7 @@ ObString ObSysVariables::get_alias(int64_t i){ return ObSysVars[i].alias_;}
|
||||
const ObObj &ObSysVariables::get_default_value(int64_t i){ return ObSysVarDefaultValues[i];}
|
||||
const ObObj &ObSysVariables::get_base_value(int64_t i){ return ObSysVarBaseValues[i];}
|
||||
int64_t ObSysVariables::get_amount(){ return var_amount;}
|
||||
ObCollationType ObSysVariables::get_default_sysvar_collation() { return CS_TYPE_UTF8MB4_GENERAL_CI;}
|
||||
|
||||
int ObSysVariables::set_value(const char *name, const char * new_value)
|
||||
{
|
||||
@ -4870,11 +4871,11 @@ int ObSysVariables::init_default_values()
|
||||
ObObj in_obj;
|
||||
ObObj out_obj;
|
||||
in_obj.set_varchar(sys_var_val_str);
|
||||
in_obj.set_collation_type(CS_TYPE_UTF8MB4_GENERAL_CI);
|
||||
in_obj.set_collation_type(ObSysVariables::get_default_sysvar_collation());
|
||||
ObObj base_in_obj;
|
||||
ObObj base_out_obj;
|
||||
base_in_obj.set_varchar(base_sys_var_val_str);
|
||||
base_in_obj.set_collation_type(CS_TYPE_UTF8MB4_GENERAL_CI);
|
||||
base_in_obj.set_collation_type(ObSysVariables::get_default_sysvar_collation());
|
||||
//varchar to others. so, no need to get collation from session
|
||||
ObCastCtx cast_ctx(&ObSysVarAllocator,
|
||||
NULL,
|
||||
|
@ -80,6 +80,7 @@ public:
|
||||
static const common::ObObj &get_default_value(int64_t i);
|
||||
static const common::ObObj &get_base_value(int64_t i);
|
||||
static int64_t get_amount();
|
||||
static ObCollationType get_default_sysvar_collation();
|
||||
static int set_value(const char *name, const char * new_value);
|
||||
static int set_value(const common::ObString &name, const common::ObString &new_value);
|
||||
static int set_base_value(const char *name, const char * new_value);
|
||||
|
@ -3483,7 +3483,7 @@
|
||||
"base_value": "en_US",
|
||||
"data_type": "varchar",
|
||||
"info": "The locale indicated by the lc_time_names system variable controls the language used to display day and month names and abbreviations",
|
||||
"flags": "GLOBAL | SESSION | MYSQL_ONLY",
|
||||
"flags": "GLOBAL | SESSION | MYSQL_ONLY | NEED_SERIALIZE",
|
||||
"on_check_and_convert_func": "ObSysVarOnCheckFuncs::check_locale_type_is_valid",
|
||||
"publish_version": "422",
|
||||
"info_cn": "",
|
||||
|
@ -83,6 +83,7 @@ int ObExprDateFormat::calc_date_format(const ObExpr &expr, ObEvalCtx &ctx, ObDat
|
||||
ObSolidifiedVarsGetter helper(expr, ctx, ctx.exec_ctx_.get_my_session());
|
||||
ObSQLMode sql_mode = 0;
|
||||
const common::ObTimeZoneInfo *tz_info = NULL;
|
||||
ObString locale_name;
|
||||
if (OB_ISNULL(session = ctx.exec_ctx_.get_my_session())) {
|
||||
ret = OB_NOT_INIT;
|
||||
LOG_WARN("session is null", K(ret), K(session));
|
||||
@ -117,13 +118,16 @@ int ObExprDateFormat::calc_date_format(const ObExpr &expr, ObEvalCtx &ctx, ObDat
|
||||
}
|
||||
} else if (OB_UNLIKELY(format->get_string().empty())) {
|
||||
expr_datum.set_null();
|
||||
} else if (OB_FAIL(session->get_locale_name(locale_name))) {
|
||||
LOG_WARN("failed to get locale time name", K(expr), K(expr_datum));
|
||||
} else if (OB_FAIL(ObTimeConverter::ob_time_to_str_format(ob_time,
|
||||
format->get_string(),
|
||||
buf,
|
||||
buf_len,
|
||||
pos,
|
||||
res_null))) {
|
||||
LOG_WARN("failed to convert ob time to str with format");
|
||||
res_null,
|
||||
locale_name))) {
|
||||
LOG_WARN("failed to convert ob time to str with format");
|
||||
} else if (res_null) {
|
||||
expr_datum.set_null();
|
||||
} else {
|
||||
|
@ -203,6 +203,7 @@ int ObExprFromUnixTime::eval_fromtime_normal(const ObExpr &expr,
|
||||
ObSolidifiedVarsGetter helper(expr, ctx, ctx.exec_ctx_.get_my_session());
|
||||
ObSQLMode sql_mode = 0;
|
||||
const common::ObTimeZoneInfo *tz_info = NULL;
|
||||
ObString locale_name;
|
||||
if (OB_ISNULL(session)) {
|
||||
ret = OB_INVALID_ARGUMENT;
|
||||
LOG_WARN("session is null", K(ret));
|
||||
@ -260,11 +261,16 @@ int ObExprFromUnixTime::eval_fromtime_normal(const ObExpr &expr,
|
||||
ob_time,
|
||||
get_cur_time(ctx.exec_ctx_.get_physical_plan_ctx()), 0, false))) {
|
||||
LOG_WARN("failed to cast datum to obtime with date", K(ret));
|
||||
} else if (OB_FAIL(ObTimeConverter::ob_time_to_str_format(
|
||||
ob_time,
|
||||
param2->get_string(),
|
||||
buf, BUF_LEN, pos, res_null))) {
|
||||
LOG_WARN("failed to convert str", K(ret));
|
||||
} else if (OB_FAIL(session->get_locale_name(locale_name))) {
|
||||
LOG_WARN("failed to get locale time name", K(expr), K(expr_datum));
|
||||
} else if (OB_FAIL(ObTimeConverter::ob_time_to_str_format(ob_time,
|
||||
param2->get_string(),
|
||||
buf,
|
||||
BUF_LEN,
|
||||
pos,
|
||||
res_null,
|
||||
locale_name))) {
|
||||
LOG_WARN("failed to convert ob time to str with format");
|
||||
} else if (res_null) {
|
||||
expr_datum.set_null();
|
||||
} else {
|
||||
|
@ -17,6 +17,7 @@
|
||||
#include "sql/engine/expr/ob_datum_cast.h"
|
||||
#include "sql/engine/expr/ob_expr_day_of_func.h"
|
||||
#include "sql/engine/expr/ob_expr_util.h"
|
||||
#include "lib/locale/ob_locale_type.h"
|
||||
|
||||
using namespace oceanbase::common;
|
||||
using namespace oceanbase::sql;
|
||||
@ -210,6 +211,7 @@ int ObExprTimeBase::calc(const ObExpr &expr, ObEvalCtx &ctx, ObDatum &expr_datum
|
||||
expr_datum.set_null();
|
||||
} else {
|
||||
ObTime ot;
|
||||
ObString locale_name;
|
||||
if (OB_FAIL(ob_expr_convert_to_time(*param_datum, expr.args_[0]->datum_meta_.type_,
|
||||
expr.args_[0]->datum_meta_.scale_, with_date, is_allow_incomplete_dates,
|
||||
ctx, ot, expr.args_[0]->obj_meta_.has_lob_header(),
|
||||
@ -230,11 +232,18 @@ int ObExprTimeBase::calc(const ObExpr &expr, ObEvalCtx &ctx, ObDatum &expr_datum
|
||||
expr_datum.set_null();
|
||||
} else {
|
||||
int idx = ot.parts_[type] - 1;
|
||||
if(0 <= idx && idx < 7) {
|
||||
const ObString &name = daynames[idx];
|
||||
if (OB_FAIL(ObExprUtil::set_expr_ascii_result(expr, ctx, expr_datum, name))) {
|
||||
LOG_WARN("failed to exec set_expr_ascii_result", K(expr), K(ctx), K(expr_datum), K(name));
|
||||
}
|
||||
if (0 <= idx && idx < 7) {
|
||||
if (OB_FAIL(session->get_locale_name(locale_name))) {
|
||||
LOG_WARN("failed to get locale time name", K(expr), K(expr_datum));
|
||||
} else {
|
||||
OB_LOCALE *ob_cur_locale = ob_locale_by_name(locale_name);
|
||||
OB_LOCALE_TYPE *locale_type = ob_cur_locale->day_names_;
|
||||
const char ** locale_daynames = locale_type->type_names_;
|
||||
const ObString &name = locale_daynames[idx];
|
||||
if (OB_FAIL(ObExprUtil::set_expr_ascii_result(expr, ctx, expr_datum, name))) {
|
||||
LOG_WARN("failed to exec set_expr_ascii_result", K(expr), K(ctx), K(expr_datum), K(name));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("the parameter idx should be within a reasonable range", K(idx));
|
||||
@ -246,9 +255,16 @@ int ObExprTimeBase::calc(const ObExpr &expr, ObEvalCtx &ctx, ObDatum &expr_datum
|
||||
} else {
|
||||
int idx = ot.parts_[type] - 1;
|
||||
if(0 <= idx && idx < 12) {
|
||||
const ObString &month_name = monthnames[idx];
|
||||
if (OB_FAIL(ObExprUtil::set_expr_ascii_result(expr, ctx, expr_datum, month_name))) {
|
||||
LOG_WARN("failed to exec set_expr_ascii_result", K(expr), K(ctx), K(expr_datum), K(month_name));
|
||||
if (OB_FAIL(session->get_locale_name(locale_name))) {
|
||||
LOG_WARN("failed to get locale time name", K(expr), K(expr_datum));
|
||||
} else {
|
||||
OB_LOCALE *ob_cur_locale = ob_locale_by_name(locale_name);
|
||||
OB_LOCALE_TYPE *locale_type = ob_cur_locale->month_names_;
|
||||
const char ** locale_monthnames = locale_type->type_names_;
|
||||
const ObString &month_name = locale_monthnames[idx];
|
||||
if (OB_FAIL(ObExprUtil::set_expr_ascii_result(expr, ctx, expr_datum, month_name))) {
|
||||
LOG_WARN("failed to exec set_expr_ascii_result", K(expr), K(ctx), K(expr_datum), K(month_name));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
|
@ -28,6 +28,19 @@ namespace oceanbase
|
||||
namespace sql
|
||||
{
|
||||
|
||||
inline static bool valid_default_parameter_version(int64_t tenant_id)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
bool bret = false;
|
||||
uint64_t data_version = 0;
|
||||
if(OB_SUCC(GET_MIN_DATA_VERSION(tenant_id, data_version)))
|
||||
{
|
||||
bret = ((data_version >= DATA_VERSION_4_2_2_0 &&
|
||||
data_version < DATA_VERSION_4_3_0_0) ||
|
||||
data_version >= DATA_VERSION_4_3_1_0);
|
||||
}
|
||||
return bret;
|
||||
}
|
||||
ObShowResolver::ObShowResolver(ObResolverParams ¶ms)
|
||||
: ObSelectResolver(params)
|
||||
{
|
||||
@ -1094,9 +1107,9 @@ int ObShowResolver::resolve(const ParseNode &parse_tree)
|
||||
GEN_SQL_STEP_2(ObShowSqlSet::SHOW_PARAMETERS_SEED, REAL_NAME(OB_SYS_DATABASE_NAME, OB_ORA_SYS_SCHEMA_NAME), REAL_NAME(OB_ALL_VIRTUAL_TENANT_PARAMETER_STAT_TNAME, OB_ALL_VIRTUAL_TENANT_PARAMETER_STAT_ORA_TNAME),
|
||||
local_ip, GCONF.self_addr_.get_port());
|
||||
}
|
||||
} else if (OB_SYS_TENANT_ID == show_tenant_id) {
|
||||
GEN_SQL_STEP_1(ObShowSqlSet::SHOW_PARAMETERS);
|
||||
GEN_SQL_STEP_2(ObShowSqlSet::SHOW_PARAMETERS,
|
||||
} else if (valid_default_parameter_version(show_tenant_id)) {
|
||||
GEN_SQL_STEP_1(ObShowSqlSet::SHOW_PARAMETERS_WITH_DEFAULT_VALUE);
|
||||
GEN_SQL_STEP_2(ObShowSqlSet::SHOW_PARAMETERS_WITH_DEFAULT_VALUE,
|
||||
REAL_NAME(OB_SYS_DATABASE_NAME, OB_ORA_SYS_SCHEMA_NAME),
|
||||
REAL_NAME(OB_ALL_VIRTUAL_TENANT_PARAMETER_STAT_TNAME, OB_ALL_VIRTUAL_TENANT_PARAMETER_STAT_ORA_TNAME),
|
||||
show_tenant_id);
|
||||
@ -2868,6 +2881,11 @@ DEFINE_SHOW_CLAUSE_SET(SHOW_PARAMETERS,
|
||||
"SELECT zone, svr_type, svr_ip, svr_port, name, data_type, value, info, section, scope, source, edit_level from %s.%s where name not like '\\_%%' and (tenant_id = %ld or tenant_id is null)",
|
||||
R"(SELECT "ZONE", "SVR_TYPE", "SVR_IP", "SVR_PORT", "NAME", "DATA_TYPE", "VALUE", "INFO", "SECTION", "SCOPE", "SOURCE", "EDIT_LEVEL" FROM %s.%s WHERE NAME NOT LIKE '\_%%' ESCAPE '\' and (tenant_id = %ld or tenant_id is null))",
|
||||
"name");
|
||||
DEFINE_SHOW_CLAUSE_SET(SHOW_PARAMETERS_WITH_DEFAULT_VALUE,
|
||||
NULL,
|
||||
"SELECT zone, svr_type, svr_ip, svr_port, name, data_type, value, info, section,scope, source, edit_level, default_value, isdefault from %s.%s where (name not like '\\_%%' or isdefault=0) and (tenant_id = %ld or tenant_id is null)",
|
||||
R"(SELECT "ZONE", "SVR_TYPE", "SVR_IP", "SVR_PORT", "NAME", "DATA_TYPE", "VALUE", "INFO", "SECTION", "SCOPE", "SOURCE", "EDIT_LEVEL", "DEFAULT_VALUE", "ISDEFAULT" FROM %s.%s WHERE (NAME NOT LIKE '\_%%' ESCAPE '\' or ISDEFAULT=0) and (tenant_id = %ld or tenant_id is null))",
|
||||
"name");
|
||||
DEFINE_SHOW_CLAUSE_SET(SHOW_PARAMETERS_UNSYS,
|
||||
NULL,
|
||||
"SELECT 1 `gmt_create`, 1 `gmt_modified`, 1 `zone`, 1 `svr_type`, 1 `svr_ip`, 1 `svr_port`, 1 `name`, 1 `data_type`, 1 `value`, 1 `info`, 1 `section`, 1 `scope`, 1 `source`, 1 `edit_level` FROM (SELECT 1 FROM DUAL) tmp_table WHERE 1 != 1",
|
||||
|
@ -127,6 +127,7 @@ struct ObShowResolver::ObShowSqlSet
|
||||
DECLARE_SHOW_CLAUSE_SET(SHOW_ERRORS);
|
||||
DECLARE_SHOW_CLAUSE_SET(SHOW_COUNT_ERRORS);
|
||||
DECLARE_SHOW_CLAUSE_SET(SHOW_PARAMETERS);
|
||||
DECLARE_SHOW_CLAUSE_SET(SHOW_PARAMETERS_WITH_DEFAULT_VALUE);
|
||||
DECLARE_SHOW_CLAUSE_SET(SHOW_PARAMETERS_UNSYS);
|
||||
DECLARE_SHOW_CLAUSE_SET(SHOW_PARAMETERS_COMPAT);
|
||||
DECLARE_SHOW_CLAUSE_SET(SHOW_PARAMETERS_SEED);
|
||||
|
@ -3520,6 +3520,21 @@ int ObBasicSessionInfo::get_init_connect(ObString &str) const
|
||||
return get_string_sys_var(SYS_VAR_INIT_CONNECT, str);
|
||||
}
|
||||
|
||||
int ObBasicSessionInfo::get_locale_name(common::ObString &str) const
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
if (lib::is_mysql_mode()) {
|
||||
if(OB_FAIL(get_string_sys_var(SYS_VAR_LC_TIME_NAMES, str))) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("failed to load sys variables", "var_name",SYS_VAR_LC_TIME_NAMES, K(ret));
|
||||
}
|
||||
} else {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("oracle mode does not support lc_time_names", K(lib::is_oracle_mode()), K(ret));
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
int ObBasicSessionInfo::is_transformation_enabled(bool &transformation_enabled) const
|
||||
{
|
||||
return get_bool_sys_var(SYS_VAR_OB_ENABLE_TRANSFORMATION, transformation_enabled);
|
||||
|
@ -1021,6 +1021,7 @@ public:
|
||||
int is_select_index_enabled(bool &select_index_enabled) const;
|
||||
int get_name_case_mode(common::ObNameCaseMode &case_mode) const;
|
||||
int get_init_connect(common::ObString &str) const;
|
||||
int get_locale_name(common::ObString &str) const;
|
||||
/// @}
|
||||
|
||||
///@{ user variables related:
|
||||
|
@ -297,6 +297,7 @@ select * from information_schema.tables where table_schema in ('oceanbase', 'mys
|
||||
| def | oceanbase | DBA_OB_RESTORE_PROGRESS | SYSTEM VIEW | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
|
||||
| def | oceanbase | DBA_OB_RSRC_IO_DIRECTIVES | SYSTEM VIEW | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
|
||||
| def | oceanbase | DBA_OB_SEQUENCE_OBJECTS | SYSTEM VIEW | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
|
||||
| def | oceanbase | DBA_OB_SYS_VARIABLES | SYSTEM VIEW | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
|
||||
| def | oceanbase | DBA_OB_TABLEGROUPS | SYSTEM VIEW | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
|
||||
| def | oceanbase | DBA_OB_TABLEGROUP_PARTITIONS | SYSTEM VIEW | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
|
||||
| def | oceanbase | DBA_OB_TABLEGROUP_SUBPARTITIONS | SYSTEM VIEW | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
|
||||
@ -797,6 +798,7 @@ select * from information_schema.tables where table_schema in ('oceanbase', 'mys
|
||||
| def | oceanbase | __all_virtual_sql_workarea_histogram | SYSTEM TABLE | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
|
||||
| def | oceanbase | __all_virtual_sql_workarea_history_stat | SYSTEM TABLE | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
|
||||
| def | oceanbase | __all_virtual_sql_workarea_memory_info | SYSTEM TABLE | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
|
||||
| def | oceanbase | __all_virtual_sys_variable_default_value | SYSTEM TABLE | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
|
||||
| def | oceanbase | __all_virtual_sysstat | SYSTEM TABLE | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
|
||||
| def | oceanbase | __all_virtual_system_event | SYSTEM TABLE | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
|
||||
| def | oceanbase | __all_virtual_table | SYSTEM TABLE | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
|
||||
@ -1675,6 +1677,7 @@ select * from information_schema.tables where table_schema in ('oceanbase', 'mys
|
||||
| def | oceanbase | DBA_OB_RESTORE_PROGRESS | SYSTEM VIEW | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
|
||||
| def | oceanbase | DBA_OB_RSRC_IO_DIRECTIVES | SYSTEM VIEW | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
|
||||
| def | oceanbase | DBA_OB_SEQUENCE_OBJECTS | SYSTEM VIEW | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
|
||||
| def | oceanbase | DBA_OB_SYS_VARIABLES | SYSTEM VIEW | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
|
||||
| def | oceanbase | DBA_OB_TABLEGROUPS | SYSTEM VIEW | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
|
||||
| def | oceanbase | DBA_OB_TABLEGROUP_PARTITIONS | SYSTEM VIEW | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
|
||||
| def | oceanbase | DBA_OB_TABLEGROUP_SUBPARTITIONS | SYSTEM VIEW | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
|
||||
@ -2177,6 +2180,7 @@ select * from information_schema.tables where table_schema in ('oceanbase', 'mys
|
||||
| def | oceanbase | __all_virtual_sql_workarea_memory_info | SYSTEM TABLE | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
|
||||
| def | oceanbase | __all_virtual_sysstat | SYSTEM TABLE | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
|
||||
| def | oceanbase | __all_virtual_system_event | SYSTEM TABLE | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
|
||||
| def | oceanbase | __all_virtual_sys_variable_default_value | SYSTEM TABLE | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
|
||||
| def | oceanbase | __all_virtual_table | SYSTEM TABLE | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
|
||||
| def | oceanbase | __all_virtual_tablet_compaction_history | SYSTEM TABLE | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
|
||||
| def | oceanbase | __all_virtual_tablet_compaction_info | SYSTEM TABLE | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
|
||||
|
@ -2537,6 +2537,8 @@ VALUE varchar(65536) NO NULL
|
||||
INFO varchar(4096) NO NULL
|
||||
SECTION varchar(128) NO NULL
|
||||
EDIT_LEVEL varchar(128) NO NULL
|
||||
DEFAULT_VALUE varchar(65536) NO NULL
|
||||
ISDEFAULT varchar(3) NO
|
||||
select /*+QUERY_TIMEOUT(60000000)*/ count(*) as cnt from (select * from oceanbase.GV$OB_PARAMETERS limit 1);
|
||||
cnt
|
||||
1
|
||||
@ -2553,6 +2555,8 @@ VALUE varchar(65536) NO
|
||||
INFO varchar(4096) NO
|
||||
SECTION varchar(128) NO
|
||||
EDIT_LEVEL varchar(128) NO
|
||||
DEFAULT_VALUE varchar(65536) NO
|
||||
ISDEFAULT varchar(3) NO
|
||||
select /*+QUERY_TIMEOUT(60000000)*/ count(*) as cnt from (select * from oceanbase.V$OB_PARAMETERS limit 1);
|
||||
cnt
|
||||
1
|
||||
@ -5732,6 +5736,21 @@ LAST_USED varchar(128) NO NULL
|
||||
select /*+QUERY_TIMEOUT(60000000)*/ count(*) as cnt from (select * from oceanbase.DBA_INDEX_USAGE limit 1);
|
||||
cnt
|
||||
1
|
||||
desc oceanbase.DBA_OB_SYS_VARIABLES;
|
||||
Field Type Null Key Default Extra
|
||||
CREATE_TIME timestamp(6) YES
|
||||
MODIFY_TIME timestamp(6) YES
|
||||
NAME varchar(128) NO
|
||||
VALUE varchar(65536) YES NULL
|
||||
MIN_VALUE varchar(65536) NO
|
||||
MAX_VALUE varchar(65536) NO
|
||||
SCOPE varchar(16) NO
|
||||
INFO varchar(4096) NO NULL
|
||||
DEFAULT_VALUE varchar(65536) YES NULL
|
||||
ISDEFAULT varchar(3) NO
|
||||
select /*+QUERY_TIMEOUT(60000000)*/ count(*) as cnt from (select * from oceanbase.DBA_OB_SYS_VARIABLES limit 1);
|
||||
cnt
|
||||
1
|
||||
desc oceanbase.DBA_OB_TRANSFER_PARTITION_TASKS;
|
||||
Field Type Null Key Default Extra
|
||||
TASK_ID bigint(20) NO NULL
|
||||
|
@ -3807,6 +3807,8 @@ VALUE varchar(65536) NO NULL
|
||||
INFO varchar(4096) NO NULL
|
||||
SECTION varchar(128) NO NULL
|
||||
EDIT_LEVEL varchar(128) NO NULL
|
||||
DEFAULT_VALUE varchar(65536) NO NULL
|
||||
ISDEFAULT varchar(3) NO
|
||||
select /*+QUERY_TIMEOUT(60000000)*/ count(*) as cnt from (select * from oceanbase.GV$OB_PARAMETERS limit 1);
|
||||
cnt
|
||||
1
|
||||
@ -3823,6 +3825,8 @@ VALUE varchar(65536) NO
|
||||
INFO varchar(4096) NO
|
||||
SECTION varchar(128) NO
|
||||
EDIT_LEVEL varchar(128) NO
|
||||
DEFAULT_VALUE varchar(65536) NO
|
||||
ISDEFAULT varchar(3) NO
|
||||
select /*+QUERY_TIMEOUT(60000000)*/ count(*) as cnt from (select * from oceanbase.V$OB_PARAMETERS limit 1);
|
||||
cnt
|
||||
1
|
||||
@ -5516,6 +5520,8 @@ MIN_VALUE varchar(65536) NO
|
||||
MAX_VALUE varchar(65536) NO
|
||||
SCOPE varchar(16) NO
|
||||
INFO varchar(4096) NO NULL
|
||||
DEFAULT_VALUE varchar(65536) YES NULL
|
||||
ISDEFAULT varchar(3) NO
|
||||
select /*+QUERY_TIMEOUT(60000000)*/ count(*) as cnt from (select * from oceanbase.CDB_OB_SYS_VARIABLES limit 1);
|
||||
cnt
|
||||
1
|
||||
@ -8194,6 +8200,21 @@ LAST_USED varchar(128) NO NULL
|
||||
select /*+QUERY_TIMEOUT(60000000)*/ count(*) as cnt from (select * from oceanbase.DBA_INDEX_USAGE limit 1);
|
||||
cnt
|
||||
1
|
||||
desc oceanbase.DBA_OB_SYS_VARIABLES;
|
||||
Field Type Null Key Default Extra
|
||||
CREATE_TIME timestamp(6) YES
|
||||
MODIFY_TIME timestamp(6) YES
|
||||
NAME varchar(128) NO
|
||||
VALUE varchar(65536) YES NULL
|
||||
MIN_VALUE varchar(65536) NO
|
||||
MAX_VALUE varchar(65536) NO
|
||||
SCOPE varchar(16) NO
|
||||
INFO varchar(4096) NO NULL
|
||||
DEFAULT_VALUE varchar(65536) YES NULL
|
||||
ISDEFAULT varchar(3) NO
|
||||
select /*+QUERY_TIMEOUT(60000000)*/ count(*) as cnt from (select * from oceanbase.DBA_OB_SYS_VARIABLES limit 1);
|
||||
cnt
|
||||
1
|
||||
desc oceanbase.DBA_OB_TRANSFER_PARTITION_TASKS;
|
||||
Field Type Null Key Default Extra
|
||||
TASK_ID bigint(20) NO NULL
|
||||
|
@ -4716,6 +4716,13 @@ IF(count(*) >= 0, 1, 0)
|
||||
"oceanbase.__all_virtual_checkpoint_diagnose_info runs in single server"
|
||||
IF(count(*) >= 0, 1, 0)
|
||||
1
|
||||
desc oceanbase.__all_virtual_sys_variable_default_value;
|
||||
Field Type Null Key Default Extra
|
||||
variable_name varchar(128) NO
|
||||
default_value varchar(65536) YES NULL
|
||||
select /*+QUERY_TIMEOUT(60000000)*/ IF(count(*) >= 0, 1, 0) from oceanbase.__all_virtual_sys_variable_default_value;
|
||||
IF(count(*) >= 0, 1, 0)
|
||||
1
|
||||
desc oceanbase.__all_virtual_tenant_snapshot_job;
|
||||
Field Type Null Key Default Extra
|
||||
tenant_id bigint(20) NO PRI NULL
|
||||
|
@ -9175,6 +9175,13 @@ network_speed bigint(20) YES NULL
|
||||
select /*+QUERY_TIMEOUT(60000000)*/ IF(count(*) >= 0, 1, 0) from oceanbase.__all_virtual_aux_stat;
|
||||
IF(count(*) >= 0, 1, 0)
|
||||
1
|
||||
desc oceanbase.__all_virtual_sys_variable_default_value;
|
||||
Field Type Null Key Default Extra
|
||||
variable_name varchar(128) NO
|
||||
default_value varchar(65536) YES NULL
|
||||
select /*+QUERY_TIMEOUT(60000000)*/ IF(count(*) >= 0, 1, 0) from oceanbase.__all_virtual_sys_variable_default_value;
|
||||
IF(count(*) >= 0, 1, 0)
|
||||
1
|
||||
desc oceanbase.__all_virtual_transfer_partition_task;
|
||||
Field Type Null Key Default Extra
|
||||
tenant_id bigint(20) NO PRI NULL
|
||||
|
@ -714,6 +714,7 @@ select 0xffffffffff & table_id, table_name, table_type, database_id, part_num fr
|
||||
12438 __all_virtual_checkpoint_diagnose_checkpoint_unit_info 2 201001 1
|
||||
12439 __all_virtual_checkpoint_diagnose_info 2 201001 1
|
||||
12447 __all_virtual_aux_stat 2 201001 1
|
||||
12450 __all_virtual_sys_variable_default_value 2 201001 1
|
||||
12451 __all_virtual_transfer_partition_task 2 201001 1
|
||||
12452 __all_virtual_transfer_partition_task_history 2 201001 1
|
||||
12453 __all_virtual_tenant_snapshot_job 2 201001 1
|
||||
@ -1095,6 +1096,7 @@ select 0xffffffffff & table_id, table_name, table_type, database_id, part_num fr
|
||||
21497 DBA_OB_AUX_STATISTICS 1 201001 1
|
||||
21498 CDB_OB_AUX_STATISTICS 1 201001 1
|
||||
21499 DBA_INDEX_USAGE 1 201001 1
|
||||
21500 DBA_OB_SYS_VARIABLES 1 201001 1
|
||||
21501 DBA_OB_TRANSFER_PARTITION_TASKS 1 201001 1
|
||||
21502 CDB_OB_TRANSFER_PARTITION_TASKS 1 201001 1
|
||||
21503 DBA_OB_TRANSFER_PARTITION_TASK_HISTORY 1 201001 1
|
||||
|
@ -1,7 +1,7 @@
|
||||
=========================== case1: under sys tenant ===========================
|
||||
===================== [1] prevent data_type UNKNOWN ======================
|
||||
show parameters where data_type = 'UNKNOWN';
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level default_value isdefault
|
||||
select * from __all_sys_parameter where data_type = 'UNKNOWN';
|
||||
gmt_create gmt_modified zone svr_type svr_ip svr_port name data_type value value_strict info need_reboot section visible_level config_version scope source edit_level
|
||||
select * from __tenant_parameter where data_type = 'UNKNOWN';
|
||||
@ -15,9 +15,9 @@ tenant_id zone svr_type svr_ip svr_port name data_type value info section scope
|
||||
select * from __all_virtual_tenant_parameter where data_type = 'UNKNOWN';
|
||||
tenant_id zone svr_type svr_ip svr_port name gmt_create gmt_modified data_type value info section scope source edit_level config_version
|
||||
select * from GV$OB_PARAMETERS where data_type = 'UNKNOWN';
|
||||
SVR_IP SVR_PORT ZONE SCOPE TENANT_ID NAME DATA_TYPE VALUE INFO SECTION EDIT_LEVEL
|
||||
SVR_IP SVR_PORT ZONE SCOPE TENANT_ID NAME DATA_TYPE VALUE INFO SECTION EDIT_LEVEL DEFAULT_VALUE ISDEFAULT
|
||||
select * from V$OB_PARAMETERS where data_type = 'UNKNOWN';
|
||||
SVR_IP SVR_PORT ZONE SCOPE TENANT_ID NAME DATA_TYPE VALUE INFO SECTION EDIT_LEVEL
|
||||
SVR_IP SVR_PORT ZONE SCOPE TENANT_ID NAME DATA_TYPE VALUE INFO SECTION EDIT_LEVEL DEFAULT_VALUE ISDEFAULT
|
||||
=============== [2] check data_tpye for __all_sys_parameter ===============
|
||||
select name, data_type from __all_sys_parameter where name = 'enable_sql_audit';
|
||||
name data_type
|
||||
@ -308,62 +308,62 @@ name data_type
|
||||
compatible VERSION
|
||||
================ [10] check data_tpye for show parameters =================
|
||||
show parameters where svr_ip = host_ip() and svr_port = rpc_port() and name = 'enable_sql_audit';
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level
|
||||
zone1 observer server_ip server_port enable_sql_audit BOOL value info OBSERVER CLUSTER DEFAULT DYNAMIC_EFFECTIVE
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level default_value isdefault
|
||||
zone1 observer server_ip server_port enable_sql_audit BOOL value info OBSERVER CLUSTER DEFAULT DYNAMIC_EFFECTIVE true 1
|
||||
show parameters where svr_ip = host_ip() and svr_port = rpc_port() and name = 'max_string_print_length';
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level
|
||||
zone1 observer server_ip server_port max_string_print_length INT value info OBSERVER CLUSTER DEFAULT DYNAMIC_EFFECTIVE
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level default_value isdefault
|
||||
zone1 observer server_ip server_port max_string_print_length INT value info OBSERVER CLUSTER DEFAULT DYNAMIC_EFFECTIVE 500 1
|
||||
show parameters where svr_ip = host_ip() and svr_port = rpc_port() and name = 'location_cache_cpu_quota';
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level
|
||||
zone1 observer server_ip server_port location_cache_cpu_quota DOUBLE value info TENANT CLUSTER DEFAULT DYNAMIC_EFFECTIVE
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level default_value isdefault
|
||||
zone1 observer server_ip server_port location_cache_cpu_quota DOUBLE value info TENANT CLUSTER DEFAULT DYNAMIC_EFFECTIVE 5 1
|
||||
show parameters where svr_ip = host_ip() and svr_port = rpc_port() and name = 'default_row_format';
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level
|
||||
zone1 observer server_ip server_port default_row_format STRING value info OBSERVER CLUSTER DEFAULT DYNAMIC_EFFECTIVE
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level default_value isdefault
|
||||
zone1 observer server_ip server_port default_row_format STRING value info OBSERVER CLUSTER DEFAULT DYNAMIC_EFFECTIVE dynamic 1
|
||||
show parameters where svr_ip = host_ip() and svr_port = rpc_port() and name = 'log_disk_size';
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level
|
||||
zone1 observer server_ip server_port log_disk_size CAPACITY value info LOGSERVICE CLUSTER DEFAULT DYNAMIC_EFFECTIVE
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level default_value isdefault
|
||||
zone1 observer server_ip server_port log_disk_size CAPACITY value info LOGSERVICE CLUSTER DEFAULT DYNAMIC_EFFECTIVE 0M 0
|
||||
show parameters where svr_ip = host_ip() and svr_port = rpc_port() and name = 'rpc_timeout';
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level
|
||||
zone1 observer server_ip server_port rpc_timeout TIME value info RPC CLUSTER DEFAULT DYNAMIC_EFFECTIVE
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level default_value isdefault
|
||||
zone1 observer server_ip server_port rpc_timeout TIME value info RPC CLUSTER DEFAULT DYNAMIC_EFFECTIVE 2s 1
|
||||
show parameters where svr_ip = host_ip() and svr_port = rpc_port() and name = 'config_additional_dir';
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level
|
||||
zone1 observer server_ip server_port config_additional_dir STR_LIST value info OBSERVER CLUSTER DEFAULT DYNAMIC_EFFECTIVE
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level default_value isdefault
|
||||
zone1 observer server_ip server_port config_additional_dir STR_LIST value info OBSERVER CLUSTER DEFAULT DYNAMIC_EFFECTIVE etc2;etc3 1
|
||||
show parameters where svr_ip = host_ip() and svr_port = rpc_port() and name = 'plsql_debug' tenant = sys;
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level
|
||||
zone1 observer server_ip server_port plsql_debug BOOL value info OBSERVER TENANT DEFAULT DYNAMIC_EFFECTIVE
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level default_value isdefault
|
||||
zone1 observer server_ip server_port plsql_debug BOOL value info OBSERVER TENANT DEFAULT DYNAMIC_EFFECTIVE False 1
|
||||
show parameters where svr_ip = host_ip() and svr_port = rpc_port() and name = 'open_cursors' tenant = sys;
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level
|
||||
zone1 observer server_ip server_port open_cursors INT value info OBSERVER TENANT DEFAULT DYNAMIC_EFFECTIVE
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level default_value isdefault
|
||||
zone1 observer server_ip server_port open_cursors INT value info OBSERVER TENANT DEFAULT DYNAMIC_EFFECTIVE 50 1
|
||||
show parameters where svr_ip = host_ip() and svr_port = rpc_port() and name = 'cpu_quota_concurrency' tenant = sys;
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level
|
||||
zone1 observer server_ip server_port cpu_quota_concurrency DOUBLE value info TENANT TENANT DEFAULT DYNAMIC_EFFECTIVE
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level default_value isdefault
|
||||
zone1 observer server_ip server_port cpu_quota_concurrency DOUBLE value info TENANT TENANT DEFAULT DYNAMIC_EFFECTIVE 4 0
|
||||
show parameters where svr_ip = host_ip() and svr_port = rpc_port() and name = 'plsql_code_type' tenant = sys;
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level
|
||||
zone1 observer server_ip server_port plsql_code_type STRING value info OBSERVER TENANT DEFAULT DYNAMIC_EFFECTIVE
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level default_value isdefault
|
||||
zone1 observer server_ip server_port plsql_code_type STRING value info OBSERVER TENANT DEFAULT DYNAMIC_EFFECTIVE native 1
|
||||
show parameters where svr_ip = host_ip() and svr_port = rpc_port() and name = 'range_optimizer_max_mem_size' tenant = sys;
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level
|
||||
zone1 observer server_ip server_port range_optimizer_max_mem_size CAPACITY value info TENANT TENANT DEFAULT DYNAMIC_EFFECTIVE
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level default_value isdefault
|
||||
zone1 observer server_ip server_port range_optimizer_max_mem_size CAPACITY value info TENANT TENANT DEFAULT DYNAMIC_EFFECTIVE 128M 1
|
||||
show parameters where svr_ip = host_ip() and svr_port = rpc_port() and name = 'merger_check_interval' tenant = sys;
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level
|
||||
zone1 observer server_ip server_port merger_check_interval TIME value info DAILY_MERGE TENANT DEFAULT DYNAMIC_EFFECTIVE
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level default_value isdefault
|
||||
zone1 observer server_ip server_port merger_check_interval TIME value info DAILY_MERGE TENANT DEFAULT DYNAMIC_EFFECTIVE 10m 0
|
||||
show parameters where svr_ip = host_ip() and svr_port = rpc_port() and name = 'major_freeze_duty_time' tenant = sys;
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level
|
||||
zone1 observer server_ip server_port major_freeze_duty_time MOMENT value info DAILY_MERGE TENANT DEFAULT DYNAMIC_EFFECTIVE
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level default_value isdefault
|
||||
zone1 observer server_ip server_port major_freeze_duty_time MOMENT value info DAILY_MERGE TENANT DEFAULT DYNAMIC_EFFECTIVE 02:00 1
|
||||
show parameters where svr_ip = host_ip() and svr_port = rpc_port() and name = 'compatible' tenant = sys;
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level
|
||||
zone1 observer server_ip server_port compatible VERSION value info ROOT_SERVICE TENANT DEFAULT DYNAMIC_EFFECTIVE
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level default_value isdefault
|
||||
zone1 observer server_ip server_port compatible VERSION value info ROOT_SERVICE TENANT DEFAULT DYNAMIC_EFFECTIVE 4.3.1.0 1
|
||||
========================== case2: under mysql tenant ==========================
|
||||
===================== [1] prevent data_type UNKNOWN ======================
|
||||
show parameters where data_type = 'UNKNOWN';
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level default_value isdefault
|
||||
select * from __all_virtual_tenant_parameter_stat where data_type = 'UNKNOWN';
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level tenant_id default_value isdefault
|
||||
select * from __all_virtual_tenant_parameter where data_type = 'UNKNOWN';
|
||||
tenant_id zone svr_type svr_ip svr_port name gmt_create gmt_modified data_type value info section scope source edit_level config_version
|
||||
select * from GV$OB_PARAMETERS where data_type = 'UNKNOWN';
|
||||
SVR_IP SVR_PORT ZONE SCOPE TENANT_ID NAME DATA_TYPE VALUE INFO SECTION EDIT_LEVEL
|
||||
SVR_IP SVR_PORT ZONE SCOPE TENANT_ID NAME DATA_TYPE VALUE INFO SECTION EDIT_LEVEL DEFAULT_VALUE ISDEFAULT
|
||||
select * from V$OB_PARAMETERS where data_type = 'UNKNOWN';
|
||||
SVR_IP SVR_PORT ZONE SCOPE TENANT_ID NAME DATA_TYPE VALUE INFO SECTION EDIT_LEVEL
|
||||
SVR_IP SVR_PORT ZONE SCOPE TENANT_ID NAME DATA_TYPE VALUE INFO SECTION EDIT_LEVEL DEFAULT_VALUE ISDEFAULT
|
||||
======= [2] check data_tpye for __all_virtual_tenant_parameter_stat =======
|
||||
select name, data_type from __all_virtual_tenant_parameter_stat where svr_ip = host_ip() and svr_port = rpc_port() and name = 'enable_sql_audit';
|
||||
name data_type
|
||||
@ -530,47 +530,47 @@ name data_type
|
||||
compatible VERSION
|
||||
================= [6] check data_tpye for show parameters =================
|
||||
show parameters where svr_ip = host_ip() and svr_port = rpc_port() and name = 'enable_sql_audit';
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level
|
||||
zone1 observer server_ip server_port enable_sql_audit BOOL value info OBSERVER CLUSTER DEFAULT DYNAMIC_EFFECTIVE
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level default_value isdefault
|
||||
zone1 observer server_ip server_port enable_sql_audit BOOL value info OBSERVER CLUSTER DEFAULT DYNAMIC_EFFECTIVE true 1
|
||||
show parameters where svr_ip = host_ip() and svr_port = rpc_port() and name = 'max_string_print_length';
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level
|
||||
zone1 observer server_ip server_port max_string_print_length INT value info OBSERVER CLUSTER DEFAULT DYNAMIC_EFFECTIVE
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level default_value isdefault
|
||||
zone1 observer server_ip server_port max_string_print_length INT value info OBSERVER CLUSTER DEFAULT DYNAMIC_EFFECTIVE 500 1
|
||||
show parameters where svr_ip = host_ip() and svr_port = rpc_port() and name = 'location_cache_cpu_quota';
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level
|
||||
zone1 observer server_ip server_port location_cache_cpu_quota DOUBLE value info TENANT CLUSTER DEFAULT DYNAMIC_EFFECTIVE
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level default_value isdefault
|
||||
zone1 observer server_ip server_port location_cache_cpu_quota DOUBLE value info TENANT CLUSTER DEFAULT DYNAMIC_EFFECTIVE 5 1
|
||||
show parameters where svr_ip = host_ip() and svr_port = rpc_port() and name = 'default_row_format';
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level
|
||||
zone1 observer server_ip server_port default_row_format STRING value info OBSERVER CLUSTER DEFAULT DYNAMIC_EFFECTIVE
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level default_value isdefault
|
||||
zone1 observer server_ip server_port default_row_format STRING value info OBSERVER CLUSTER DEFAULT DYNAMIC_EFFECTIVE dynamic 1
|
||||
show parameters where svr_ip = host_ip() and svr_port = rpc_port() and name = 'log_disk_size';
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level
|
||||
zone1 observer server_ip server_port log_disk_size CAPACITY value info LOGSERVICE CLUSTER DEFAULT DYNAMIC_EFFECTIVE
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level default_value isdefault
|
||||
zone1 observer server_ip server_port log_disk_size CAPACITY value info LOGSERVICE CLUSTER DEFAULT DYNAMIC_EFFECTIVE 0M 0
|
||||
show parameters where svr_ip = host_ip() and svr_port = rpc_port() and name = 'rpc_timeout';
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level
|
||||
zone1 observer server_ip server_port rpc_timeout TIME value info RPC CLUSTER DEFAULT DYNAMIC_EFFECTIVE
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level default_value isdefault
|
||||
zone1 observer server_ip server_port rpc_timeout TIME value info RPC CLUSTER DEFAULT DYNAMIC_EFFECTIVE 2s 1
|
||||
show parameters where svr_ip = host_ip() and svr_port = rpc_port() and name = 'config_additional_dir';
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level
|
||||
zone1 observer server_ip server_port config_additional_dir STR_LIST value info OBSERVER CLUSTER DEFAULT DYNAMIC_EFFECTIVE
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level default_value isdefault
|
||||
zone1 observer server_ip server_port config_additional_dir STR_LIST value info OBSERVER CLUSTER DEFAULT DYNAMIC_EFFECTIVE etc2;etc3 1
|
||||
show parameters where svr_ip = host_ip() and svr_port = rpc_port() and name = 'plsql_debug';
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level
|
||||
zone1 observer server_ip server_port plsql_debug BOOL value info OBSERVER TENANT DEFAULT DYNAMIC_EFFECTIVE
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level default_value isdefault
|
||||
zone1 observer server_ip server_port plsql_debug BOOL value info OBSERVER TENANT DEFAULT DYNAMIC_EFFECTIVE False 1
|
||||
show parameters where svr_ip = host_ip() and svr_port = rpc_port() and name = 'open_cursors';
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level
|
||||
zone1 observer server_ip server_port open_cursors INT value info OBSERVER TENANT DEFAULT DYNAMIC_EFFECTIVE
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level default_value isdefault
|
||||
zone1 observer server_ip server_port open_cursors INT value info OBSERVER TENANT DEFAULT DYNAMIC_EFFECTIVE 50 1
|
||||
show parameters where svr_ip = host_ip() and svr_port = rpc_port() and name = 'cpu_quota_concurrency';
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level
|
||||
zone1 observer server_ip server_port cpu_quota_concurrency DOUBLE value info TENANT TENANT DEFAULT DYNAMIC_EFFECTIVE
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level default_value isdefault
|
||||
zone1 observer server_ip server_port cpu_quota_concurrency DOUBLE value info TENANT TENANT DEFAULT DYNAMIC_EFFECTIVE 4 1
|
||||
show parameters where svr_ip = host_ip() and svr_port = rpc_port() and name = 'plsql_code_type';
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level
|
||||
zone1 observer server_ip server_port plsql_code_type STRING value info OBSERVER TENANT DEFAULT DYNAMIC_EFFECTIVE
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level default_value isdefault
|
||||
zone1 observer server_ip server_port plsql_code_type STRING value info OBSERVER TENANT DEFAULT DYNAMIC_EFFECTIVE native 1
|
||||
show parameters where svr_ip = host_ip() and svr_port = rpc_port() and name = 'range_optimizer_max_mem_size';
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level
|
||||
zone1 observer server_ip server_port range_optimizer_max_mem_size CAPACITY value info TENANT TENANT DEFAULT DYNAMIC_EFFECTIVE
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level default_value isdefault
|
||||
zone1 observer server_ip server_port range_optimizer_max_mem_size CAPACITY value info TENANT TENANT DEFAULT DYNAMIC_EFFECTIVE 128M 1
|
||||
show parameters where svr_ip = host_ip() and svr_port = rpc_port() and name = 'merger_check_interval';
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level
|
||||
zone1 observer server_ip server_port merger_check_interval TIME value info DAILY_MERGE TENANT DEFAULT DYNAMIC_EFFECTIVE
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level default_value isdefault
|
||||
zone1 observer server_ip server_port merger_check_interval TIME value info DAILY_MERGE TENANT DEFAULT DYNAMIC_EFFECTIVE 10m 0
|
||||
show parameters where svr_ip = host_ip() and svr_port = rpc_port() and name = 'major_freeze_duty_time';
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level
|
||||
zone1 observer server_ip server_port major_freeze_duty_time MOMENT value info DAILY_MERGE TENANT DEFAULT DYNAMIC_EFFECTIVE
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level default_value isdefault
|
||||
zone1 observer server_ip server_port major_freeze_duty_time MOMENT value info DAILY_MERGE TENANT DEFAULT DYNAMIC_EFFECTIVE 02:00 1
|
||||
show parameters where svr_ip = host_ip() and svr_port = rpc_port() and name = 'compatible';
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level
|
||||
zone1 observer server_ip server_port compatible VERSION value info ROOT_SERVICE TENANT DEFAULT DYNAMIC_EFFECTIVE
|
||||
zone svr_type svr_ip svr_port name data_type value info section scope source edit_level default_value isdefault
|
||||
zone1 observer server_ip server_port compatible VERSION value info ROOT_SERVICE TENANT DEFAULT DYNAMIC_EFFECTIVE 4.3.1.0 1
|
||||
|
@ -12,7 +12,6 @@ storage_unittest(test_log_file_handler redolog/test_log_file_handler.cpp)
|
||||
storage_unittest(test_obj_cast)
|
||||
storage_unittest(test_datum_cmp)
|
||||
#ob_unittest(test_national_encrypt_algorithm)
|
||||
storage_unittest(test_ob_log_archive_config)
|
||||
storage_unittest(test_ob_tg_mgr)
|
||||
storage_unittest(test_storage_file)
|
||||
storage_unittest(test_cluster_id_hash_conflict)
|
||||
|
@ -1,115 +0,0 @@
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#define USING_LOG_PREFIX SHARE
|
||||
#include "lib/utility/ob_print_utils.h"
|
||||
#include <gtest/gtest.h>
|
||||
#include "share/config/ob_config.h"
|
||||
#include "share/config/ob_common_config.h"
|
||||
#include "share/ob_define.h"
|
||||
|
||||
using namespace oceanbase::common;
|
||||
using namespace oceanbase::share;
|
||||
using namespace oceanbase;
|
||||
/* using namespace oceanbase::common::hash; */
|
||||
/* */
|
||||
class TestLogArchiveConfig : public ::testing::Test
|
||||
{
|
||||
|
||||
};
|
||||
|
||||
TEST_F(TestLogArchiveConfig, log_archive)
|
||||
{
|
||||
ObConfigLogArchiveOptionsItem log_archive_item;
|
||||
bool ret = log_archive_item.set_value("MANDATORY COMPRESSION=lz4_1.0");
|
||||
ASSERT_EQ(true, log_archive_item.value_.valid_);
|
||||
ASSERT_EQ(true, log_archive_item.value_.is_mandatory_);
|
||||
ASSERT_EQ(true, log_archive_item.value_.is_compress_enabled_);
|
||||
ASSERT_EQ(LZ4_COMPRESSOR, log_archive_item.value_.compressor_type_);
|
||||
|
||||
ret = log_archive_item.set_value("MANDATORY COMPRESSION=lz4_1.0 yyy");
|
||||
ASSERT_EQ(false, log_archive_item.value_.valid_);
|
||||
|
||||
ret = log_archive_item.set_value("COMPRESSION=lz4_1.0");
|
||||
ASSERT_EQ(true, log_archive_item.value_.valid_);
|
||||
ASSERT_EQ(true, log_archive_item.value_.is_mandatory_);
|
||||
ASSERT_EQ(true, log_archive_item.value_.is_compress_enabled_);
|
||||
ASSERT_EQ(share::ObBackupEncryptionMode::NONE, log_archive_item.value_.encryption_mode_);
|
||||
ASSERT_EQ(LZ4_COMPRESSOR, log_archive_item.value_.compressor_type_);
|
||||
|
||||
ret = log_archive_item.set_value("COMPRESSION=lz4_1.0 OPTIONAL ");
|
||||
ASSERT_EQ(true, log_archive_item.value_.valid_);
|
||||
ASSERT_EQ(false, log_archive_item.value_.is_mandatory_);
|
||||
ASSERT_EQ(true, log_archive_item.value_.is_compress_enabled_);
|
||||
ASSERT_EQ(LZ4_COMPRESSOR, log_archive_item.value_.compressor_type_);
|
||||
|
||||
ret = log_archive_item.set_value("COMPRESSION=disable OPTIONAL ");
|
||||
ASSERT_EQ(true, log_archive_item.value_.valid_);
|
||||
ret = log_archive_item.set_value("COMPRESSION=enable OPTIONAL ");
|
||||
ASSERT_EQ(true, log_archive_item.value_.valid_);
|
||||
ret = log_archive_item.set_value("COMPRESSION=lz4_1.0 OPTIONAL ");
|
||||
ASSERT_EQ(true, log_archive_item.value_.valid_);
|
||||
ret = log_archive_item.set_value("COMPRESSION=zstd_1.3.8 OPTIONAL ");
|
||||
ASSERT_EQ(true, log_archive_item.value_.valid_);
|
||||
ret = log_archive_item.set_value("COMPRESSION=snappy_1.0 OPTIONAL ");
|
||||
ASSERT_EQ(false, log_archive_item.value_.valid_);
|
||||
|
||||
ret = log_archive_item.set_value("");
|
||||
ASSERT_EQ(false, log_archive_item.value_.valid_);
|
||||
|
||||
ret = log_archive_item.set_value(" optional COMPRESSION=disable");
|
||||
ASSERT_EQ(true, log_archive_item.value_.valid_);
|
||||
|
||||
ret = log_archive_item.set_value("MANDATORY encryption_mode= transparent_encryption ENCRYPTION_ALGORITHM = aes-128");
|
||||
ASSERT_EQ(false, log_archive_item.value_.valid_);
|
||||
|
||||
// ret = log_archive_item.set_value("MANDATORY encryption_mode= transparent_encryption ENCRYPTION_ALGORITHM = aes-128");
|
||||
// ASSERT_EQ(true, log_archive_item.value_.valid_);
|
||||
// ASSERT_EQ(true, log_archive_item.value_.is_mandatory_);
|
||||
// ASSERT_EQ(false, log_archive_item.value_.is_compress_enabled_);
|
||||
// ASSERT_EQ(ObBackupEncryptionMode::TRANSPARENT_ENCRYPTION, log_archive_item.value_.encryption_mode_);
|
||||
// ASSERT_EQ(share::ObCipherOpMode::ob_aes_128_ecb, log_archive_item.value_.encryption_algorithm_);
|
||||
//
|
||||
// ret = log_archive_item.set_value("MANDATORY encryption_mode= none ENCRYPTION_ALGORITHM = aes-128");
|
||||
// ASSERT_EQ(true, log_archive_item.value_.valid_);
|
||||
// ASSERT_EQ(true, log_archive_item.value_.is_mandatory_);
|
||||
// ASSERT_EQ(false, log_archive_item.value_.is_compress_enabled_);
|
||||
// ASSERT_EQ(ObBackupEncryptionMode::NONE, log_archive_item.value_.encryption_mode_);
|
||||
// ASSERT_EQ(share::ObCipherOpMode::ob_aes_128_ecb, log_archive_item.value_.encryption_algorithm_);
|
||||
//
|
||||
// ret = log_archive_item.set_value("MANDATORY encryption_mode= none ENCRYPTION_ALGORITHM = aes-192");
|
||||
// ASSERT_EQ(true, log_archive_item.value_.valid_);
|
||||
// ASSERT_EQ(ObBackupEncryptionMode::NONE, log_archive_item.value_.encryption_mode_);
|
||||
// ASSERT_EQ(share::ObCipherOpMode::ob_aes_192_ecb, log_archive_item.value_.encryption_algorithm_);
|
||||
//
|
||||
// ret = log_archive_item.set_value("MANDATORY encryption_mode= none ENCRYPTION_ALGORITHM = aes-256");
|
||||
// ASSERT_EQ(true, log_archive_item.value_.valid_);
|
||||
// ASSERT_EQ(ObBackupEncryptionMode::NONE, log_archive_item.value_.encryption_mode_);
|
||||
// ASSERT_EQ(share::ObCipherOpMode::ob_aes_256_ecb, log_archive_item.value_.encryption_algorithm_);
|
||||
//
|
||||
// ret = log_archive_item.set_value("MANDATORY encryption_mode= none ENCRYPTION_ALGORITHM = sm4");
|
||||
// ASSERT_EQ(true, log_archive_item.value_.valid_);
|
||||
// ASSERT_EQ(ObBackupEncryptionMode::NONE, log_archive_item.value_.encryption_mode_);
|
||||
// ASSERT_EQ(share::ObCipherOpMode::ob_sm4_mode, log_archive_item.value_.encryption_algorithm_);
|
||||
//
|
||||
// ret = log_archive_item.set_value("encryption_mode= none ENCRYPTION_ALGORITHM = aes-120");
|
||||
// ASSERT_EQ(false, ret);
|
||||
// ASSERT_EQ(false, log_archive_item.value_.valid_);
|
||||
|
||||
}
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
OB_LOGGER.set_file_name("test_config.log", true);
|
||||
OB_LOGGER.set_log_level("INFO");
|
||||
testing::InitGoogleTest(&argc, argv);
|
||||
return RUN_ALL_TESTS();
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user