106 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			106 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/**
 | 
						|
 * 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 <gtest/gtest.h>
 | 
						|
 | 
						|
#include "lib/ob_define.h"
 | 
						|
#include "lib/trace/ob_trace.h"
 | 
						|
#include "lib/profile/ob_trace_id.h"
 | 
						|
#include "share/ob_truncated_string.h"
 | 
						|
 | 
						|
using namespace oceanbase;
 | 
						|
using namespace common;
 | 
						|
 | 
						|
#define OK(value) ASSERT_EQ(OB_SUCCESS, (value))
 | 
						|
 | 
						|
TEST(TestTrace, basic_test)
 | 
						|
{
 | 
						|
  INIT_TRACE();
 | 
						|
  SET_TRACE_LEVEL(ObTraceLevel(2));
 | 
						|
  SET_TRACE_STAT(true);
 | 
						|
  OB_TRACE.set_file_name("sqltrace.log");
 | 
						|
  ObString stmt = ObString::make_string("select * from t1");
 | 
						|
  int64_t sql_id = 100;
 | 
						|
  int64_t t1 = ::oceanbase::common::ObTimeUtility::current_time();
 | 
						|
  // FILL_TRACE_STD(T_PARSE_START, T_KV(K_STMT, S(ObTruncatedString(stmt))));
 | 
						|
  FILL_TRACE_STD(T_PARSE_END);
 | 
						|
  FILL_TRACE_STD(T_CACHE_GET_PLAN_START);
 | 
						|
  FILL_TRACE_STD(T_CACHE_GET_PLAN_END);
 | 
						|
  // FILL_TRACE_STD(T_PLAN_CACHE_HIT, T_KV(K_SQL_ID, sql_id));
 | 
						|
  FILL_TRACE_STD(T_CACHE_ADD_PLAN_START);
 | 
						|
  FILL_TRACE_STD(T_CACHE_ADD_PLAN_END);
 | 
						|
  FILL_TRACE_STD(T_RESOLVER_START);
 | 
						|
  FILL_TRACE_STD(T_RESOLVER_END);
 | 
						|
  FILL_TRACE_STD(T_TRANSFORM_START);
 | 
						|
  FILL_TRACE_STD(T_TRANSFORM_END);
 | 
						|
  FILL_TRACE_STD(T_OPTIMIZER_START);
 | 
						|
  FILL_TRACE_STD(T_OPTIMIZER_END);
 | 
						|
  FILL_TRACE_STD(T_CG_START);
 | 
						|
  FILL_TRACE_STD(T_CG_END);
 | 
						|
  // FILL_TRACE_STD(T_PARSE_START, T_KV(K_STMT, S(ObTruncatedString(stmt))));
 | 
						|
  FILL_TRACE_STD(T_PARSE_END);
 | 
						|
  FILL_TRACE_STD(T_CACHE_GET_PLAN_START);
 | 
						|
  FILL_TRACE_STD(T_CACHE_GET_PLAN_END);
 | 
						|
  // FILL_TRACE_STD(T_PLAN_CACHE_HIT, T_KV(K_SQL_ID, sql_id));
 | 
						|
  FILL_TRACE_STD(T_CACHE_ADD_PLAN_START);
 | 
						|
  FILL_TRACE_STD(T_CACHE_ADD_PLAN_END);
 | 
						|
  FILL_TRACE_STD(T_RESOLVER_START);
 | 
						|
  FILL_TRACE_STD(T_RESOLVER_END);
 | 
						|
  FILL_TRACE_STD(T_TRANSFORM_START);
 | 
						|
  FILL_TRACE_STD(T_TRANSFORM_END);
 | 
						|
  FILL_TRACE_STD(T_OPTIMIZER_START);
 | 
						|
  FILL_TRACE_STD(T_OPTIMIZER_END);
 | 
						|
  FILL_TRACE_STD(T_CG_START);
 | 
						|
  FILL_TRACE_STD(T_CG_END);
 | 
						|
  // FILL_TRACE_STD(T_PARSE_START, T_KV(K_STMT, S(ObTruncatedString(stmt))));
 | 
						|
  FILL_TRACE_STD(T_PARSE_END);
 | 
						|
  FILL_TRACE_STD(T_CACHE_GET_PLAN_START);
 | 
						|
  FILL_TRACE_STD(T_CACHE_GET_PLAN_END);
 | 
						|
  // FILL_TRACE_STD(T_PLAN_CACHE_HIT, T_KV(K_SQL_ID, sql_id));
 | 
						|
  FILL_TRACE_STD(T_CACHE_ADD_PLAN_START);
 | 
						|
  FILL_TRACE_STD(T_CACHE_ADD_PLAN_END);
 | 
						|
  FILL_TRACE_STD(T_RESOLVER_START);
 | 
						|
  FILL_TRACE_STD(T_RESOLVER_END);
 | 
						|
  FILL_TRACE_STD(T_TRANSFORM_START);
 | 
						|
  FILL_TRACE_STD(T_TRANSFORM_END);
 | 
						|
  FILL_TRACE_STD(T_OPTIMIZER_START);
 | 
						|
  FILL_TRACE_STD(T_OPTIMIZER_END);
 | 
						|
  FILL_TRACE_STD(T_CG_START);
 | 
						|
  FILL_TRACE_STD(T_CG_END);
 | 
						|
  // FILL_TRACE_STD(T_PARSE_START, T_KV(K_STMT, S(ObTruncatedString(stmt))));
 | 
						|
  FILL_TRACE_STD(T_PARSE_END);
 | 
						|
  FILL_TRACE_STD(T_CACHE_GET_PLAN_START);
 | 
						|
  FILL_TRACE_STD(T_CACHE_GET_PLAN_END);
 | 
						|
  // FILL_TRACE_STD(T_PLAN_CACHE_HIT, T_KV(K_SQL_ID, sql_id));
 | 
						|
  FILL_TRACE_STD(T_CACHE_ADD_PLAN_START);
 | 
						|
  FILL_TRACE_STD(T_CACHE_ADD_PLAN_END);
 | 
						|
  FILL_TRACE_STD(T_RESOLVER_START);
 | 
						|
  FILL_TRACE_STD(T_RESOLVER_END);
 | 
						|
  FILL_TRACE_STD(T_TRANSFORM_START);
 | 
						|
  FILL_TRACE_STD(T_TRANSFORM_END);
 | 
						|
  FILL_TRACE_STD(T_OPTIMIZER_START);
 | 
						|
  FILL_TRACE_STD(T_OPTIMIZER_END);
 | 
						|
  FILL_TRACE_STD(T_CG_START);
 | 
						|
  FILL_TRACE_STD(T_CG_END);
 | 
						|
  int64_t t2 = ::oceanbase::common::ObTimeUtility::current_time();
 | 
						|
  LIB_LOG(INFO, "===========");
 | 
						|
  LIB_LOG(INFO, "time", "time", t2 - t1);
 | 
						|
  LIB_LOG(INFO, "===========");
 | 
						|
  FLUSH_TRACE();
 | 
						|
}
 | 
						|
 | 
						|
int main(int argc, char** argv)
 | 
						|
{
 | 
						|
  ::testing::InitGoogleTest(&argc, argv);
 | 
						|
  return RUN_ALL_TESTS();
 | 
						|
}
 |