/** * 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 "common/ob_range.h" #include "common/ob_store_range.h" #include "lib/hash_func/ob_hash_func.h" #include "share/ob_i_tablet_scan.h" #include "sql/engine/expr/ob_expr.h" namespace oceanbase { namespace common { OB_SERIALIZE_MEMBER(ObLimitParam, offset_, limit_); OB_SERIALIZE_MEMBER(SampleInfo, table_id_, method_, scope_, percent_, seed_, force_block_); OB_SERIALIZE_MEMBER(ObEstRowCountRecord, table_id_, table_type_, version_range_, logical_row_count_, physical_row_count_); uint64_t SampleInfo::hash(uint64_t seed) const { seed = do_hash(table_id_, seed); seed = do_hash(method_, seed); seed = do_hash(scope_, seed); seed = do_hash(percent_, seed); seed = do_hash(force_block_, seed); seed = do_hash(seed_, seed); return seed; } DEF_TO_STRING(ObVTableScanParam) { int64_t pos = 0; J_OBJ_START(); J_KV(K_(tablet_id), K_(ls_id), N_COLUMN_IDS, column_ids_, N_INDEX_ID, index_id_, N_KEY_RANGES, key_ranges_, K_(range_array_pos), N_TIMEOUT, timeout_, N_SCAN_FLAG, scan_flag_, N_SQL_MODE, sql_mode_, N_RESERVED_CELL_COUNT, reserved_cell_count_, N_SCHEMA_VERSION, schema_version_, N_QUERY_BEGIN_SCHEMA_VERSION, tenant_schema_version_, N_LIMIT_OFFSET, limit_param_, N_FOR_UPDATE, for_update_, N_WAIT, for_update_wait_timeout_, N_FROZEN_VERSION, frozen_version_, K_(is_get), KPC_(output_exprs), KPC_(op_filters), K_(external_file_format), K_(external_file_location)); J_OBJ_END(); return pos; } } }