Line | Count | Source |
1 | | // Licensed to the Apache Software Foundation (ASF) under one |
2 | | // or more contributor license agreements. See the NOTICE file |
3 | | // distributed with this work for additional information |
4 | | // regarding copyright ownership. The ASF licenses this file |
5 | | // to you under the Apache License, Version 2.0 (the |
6 | | // "License"); you may not use this file except in compliance |
7 | | // with the License. You may obtain a copy of the License at |
8 | | // |
9 | | // http://www.apache.org/licenses/LICENSE-2.0 |
10 | | // |
11 | | // Unless required by applicable law or agreed to in writing, |
12 | | // software distributed under the License is distributed on an |
13 | | // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
14 | | // KIND, either express or implied. See the License for the |
15 | | // specific language governing permissions and limitations |
16 | | // under the License. |
17 | | |
18 | | #pragma once |
19 | | |
20 | | #include <butil/macros.h> |
21 | | #include <jni.h> |
22 | | #include <limits.h> |
23 | | #include <stddef.h> |
24 | | #include <stdint.h> |
25 | | |
26 | | #include <atomic> |
27 | | #include <cstdlib> |
28 | | #include <optional> |
29 | | #include <string> |
30 | | #include <string_view> |
31 | | |
32 | | #include "common/status.h" |
33 | | #include "jni_md.h" |
34 | | #include "util/defer_op.h" |
35 | | #include "util/thrift_util.h" |
36 | | |
37 | | // defined in hadoop/hadoop-hdfs-project/hadoop-hdfs/src/main/native/libhdfs/jni_helper.c |
38 | | extern "C" JNIEnv* getJNIEnv(void); |
39 | | |
40 | | namespace doris { |
41 | | |
42 | | #define RETURN_ERROR_IF_EXC(env) \ |
43 | 9 | do { \ |
44 | 9 | if (env->ExceptionCheck()) [[unlikely]] \ |
45 | 0 | return Jni::Env::GetJniExceptionMsg(env); \ |
46 | 9 | } while (false) |
47 | | |
48 | | //In order to reduce the potential risks caused by not handling exceptions, |
49 | | // you need to refer to https://docs.oracle.com/javase/8/docs/technotes/guides/jni/spec/functions.html |
50 | | // to confirm whether the jni method will throw an exception. |
51 | | |
52 | | namespace Jni { |
53 | | class JvmLauncher; |
54 | | |
55 | | class Env { |
56 | | public: |
57 | 3 | static Status Get(JNIEnv** env) { |
58 | 3 | if (tls_env_) { |
59 | 3 | *env = tls_env_; |
60 | 3 | } else { |
61 | 0 | Status status = GetJNIEnvSlowPath(env); |
62 | 0 | if (!status.ok()) { |
63 | 0 | return status; |
64 | 0 | } |
65 | 0 | } |
66 | 3 | if (*env == nullptr) [[unlikely]] { |
67 | 0 | return Status::JniError("Failed to get JNIEnv: it is nullptr."); |
68 | 0 | } |
69 | 3 | return Status::OK(); |
70 | 3 | } |
71 | | |
72 | 0 | static Status Init() { return init_throw_exception(); } |
73 | | |
74 | | static Status GetJniExceptionMsg(JNIEnv* env, bool log_stack = true, |
75 | | const std::string& prefix = "") WARN_UNUSED_RESULT; |
76 | | |
77 | | private: |
78 | | static Status GetJNIEnvSlowPath(JNIEnv** env); |
79 | | // What the JVM of this process was created from, for the one error message that has to |
80 | | // report a deployment problem rather than a programming one. Says so explicitly when the |
81 | | // variable is unset, which is what a BE not started by bin/start_be.sh looks like. |
82 | 0 | static std::string class_path_of_this_process() { |
83 | 0 | const char* class_path = getenv("CLASSPATH"); |
84 | 0 | return class_path == nullptr ? std::string("<CLASSPATH unset>") : std::string(class_path); |
85 | 0 | } |
86 | 0 | static Status init_throw_exception() { |
87 | 0 | JNIEnv* env = nullptr; |
88 | 0 | RETURN_IF_ERROR(Jni::Env::Get(&env)); |
89 | | |
90 | | // Find JniUtil class and create a global ref. |
91 | 0 | jclass local_jni_util_cl = env->FindClass("org/apache/doris/jni/spi/utils/JniUtil"); |
92 | 0 | if (local_jni_util_cl == nullptr) { |
93 | 0 | if (env->ExceptionOccurred()) { |
94 | 0 | env->ExceptionDescribe(); |
95 | 0 | } |
96 | | // Named rather than left as a bare FindClass failure: this is the first class BE |
97 | | // resolves out of the shared layer, so a deployment whose lib/jni/spi is missing or |
98 | | // was not put on the class path fails exactly here, and the answer is a directory |
99 | | // name and a jar name. The failure is then cached for the life of the process, so |
100 | | // this is also the only chance to say it. |
101 | 0 | return Status::JniError( |
102 | 0 | "Failed to find the JniUtil class of the Java plugin SPI. It ships in " |
103 | 0 | "doris-jni-spi.jar under DORIS_HOME/lib/jni/spi, which bin/start_be.sh puts " |
104 | 0 | "on the class path; check that the directory exists and holds " |
105 | 0 | "doris-jni-spi.jar and doris-jni-bootstrap.jar. Class path: {}", |
106 | 0 | class_path_of_this_process()); |
107 | 0 | } |
108 | 0 | jni_util_cl_ = reinterpret_cast<jclass>(env->NewGlobalRef(local_jni_util_cl)); |
109 | 0 | env->DeleteLocalRef(local_jni_util_cl); |
110 | 0 | if (jni_util_cl_ == nullptr) { |
111 | 0 | if (env->ExceptionOccurred()) { |
112 | 0 | env->ExceptionDescribe(); |
113 | 0 | } |
114 | 0 | return Status::JniError("Failed to create global reference to JniUtil class."); |
115 | 0 | } |
116 | 0 | if (env->ExceptionOccurred()) { |
117 | 0 | return Status::JniError("Failed to delete local reference to JniUtil class."); |
118 | 0 | } |
119 | | |
120 | | // Throwable toString() |
121 | 0 | throwable_to_string_id_ = env->GetStaticMethodID( |
122 | 0 | jni_util_cl_, "throwableToString", "(Ljava/lang/Throwable;)Ljava/lang/String;"); |
123 | 0 | if (throwable_to_string_id_ == nullptr) { |
124 | 0 | if (env->ExceptionOccurred()) { |
125 | 0 | env->ExceptionDescribe(); |
126 | 0 | } |
127 | 0 | return Status::JniError("Failed to find JniUtil.throwableToString method."); |
128 | 0 | } |
129 | | |
130 | | // throwableToStackTrace() |
131 | 0 | throwable_to_stack_trace_id_ = env->GetStaticMethodID( |
132 | 0 | jni_util_cl_, "throwableToStackTrace", "(Ljava/lang/Throwable;)Ljava/lang/String;"); |
133 | 0 | if (throwable_to_stack_trace_id_ == nullptr) { |
134 | 0 | if (env->ExceptionOccurred()) { |
135 | 0 | env->ExceptionDescribe(); |
136 | 0 | } |
137 | 0 | return Status::JniError("Failed to find JniUtil.throwableToFullStackTrace method."); |
138 | 0 | } |
139 | 0 | return Status::OK(); |
140 | 0 | } |
141 | | |
142 | | // Drops the cached JNIEnv of the calling thread. Only the thread exit hook and the JVM |
143 | | // bootstrap may call this: the env it caches is gone the moment the thread is detached, |
144 | | // and anything reading it afterwards - another thread exit hook, say - would read freed |
145 | | // memory. |
146 | 0 | static void reset_tls_env() { tls_env_ = nullptr; } |
147 | | // Caches an env the bootstrap attached by itself, so that resolving the JNI base right |
148 | | // after the JVM comes up stays on Get()'s fast path instead of re-entering ensure_jvm(). |
149 | 0 | static void set_tls_env(JNIEnv* env) { tls_env_ = env; } |
150 | | // What Get() would hand out on this thread without asking anyone, nullptr when nothing is |
151 | | // cached. For JvmLauncher::ScopedVmEnv, which primes the cache for one scope and has to put |
152 | | // back what it found rather than assume there was nothing: on the bootstrap thread there is. |
153 | 0 | static JNIEnv* tls_env() { return tls_env_; } |
154 | | friend class JvmLauncher; |
155 | | |
156 | | private: |
157 | | // Thread-local cache of the JNIEnv for this thread. |
158 | | static __thread JNIEnv* tls_env_; |
159 | | |
160 | | //for exception |
161 | | static jclass jni_util_cl_; |
162 | | static jmethodID throwable_to_string_id_; |
163 | | static jmethodID throwable_to_stack_trace_id_; |
164 | | }; |
165 | | |
166 | | enum RefType { Local, Global }; |
167 | | |
168 | | enum BufferType { Chars, ByteArray }; |
169 | | |
170 | | template <RefType Ref> |
171 | | struct RefHelper {}; |
172 | | |
173 | | template <> |
174 | | struct RefHelper<Local> { |
175 | 0 | static jobject create(JNIEnv* env, jobject obj) { return env->NewLocalRef(obj); } |
176 | | |
177 | 3 | static void destroy(JNIEnv* env, jobject obj) { env->DeleteLocalRef(obj); } |
178 | | |
179 | 3 | static Status get_env(JNIEnv** env) { |
180 | | // Get the JNIEnv* corresponding to current thread. |
181 | 3 | return Jni::Env::Get(env); |
182 | 3 | } |
183 | | }; |
184 | | |
185 | | template <> |
186 | | struct RefHelper<Global> { |
187 | 2 | static jobject create(JNIEnv* env, jobject obj) { return env->NewGlobalRef(obj); } |
188 | | |
189 | 0 | static void destroy(JNIEnv* env, jobject obj) { env->DeleteGlobalRef(obj); } |
190 | | |
191 | 0 | static Status get_env(JNIEnv** env) { return Jni::Env::Get(env); } |
192 | | }; |
193 | | |
194 | | template <RefType Ref> |
195 | | class Object; |
196 | | |
197 | | template <RefType Ref> |
198 | | class Class; |
199 | | |
200 | | class MethodId { |
201 | | public: |
202 | 25 | MethodId() = default; |
203 | 0 | bool uninitialized() const { return _id == nullptr; } |
204 | | |
205 | | template <RefType U> |
206 | | friend class Object; |
207 | | |
208 | | template <RefType U> |
209 | | friend class Class; |
210 | | |
211 | | private: |
212 | | jmethodID _id = nullptr; |
213 | | }; |
214 | | |
215 | | class FieldId { |
216 | | public: |
217 | 0 | FieldId() = default; |
218 | 0 | bool uninitialized() const { return _id == nullptr; } |
219 | | |
220 | | template <RefType U> |
221 | | friend class Object; |
222 | | |
223 | | template <RefType U> |
224 | | friend class Class; |
225 | | |
226 | | private: |
227 | | jfieldID _id = nullptr; |
228 | | }; |
229 | | |
230 | | enum CallTag { |
231 | | ObjectMethod, |
232 | | IntMethod, |
233 | | LongMethod, |
234 | | VoidMethod, |
235 | | BooleanMethod, |
236 | | |
237 | | StaticObjectMethod, |
238 | | StaticIntMethod, |
239 | | StaticLongMethod, |
240 | | StaticVoidMethod, |
241 | | |
242 | | NewObject, |
243 | | |
244 | | NonvirtualVoidMethod, |
245 | | NonvirtualObjectMethod, |
246 | | NonvirtualIntMethod, |
247 | | NonvirtualBooleanMethod, |
248 | | }; |
249 | | |
250 | | template <CallTag Tag> |
251 | | struct CallHelper {}; |
252 | | |
253 | | template <> |
254 | | struct CallHelper<ObjectMethod> { |
255 | 0 | static jobject call_impl(JNIEnv* env, jobject obj, jmethodID methodID, const jvalue* args) { |
256 | 0 | return env->CallObjectMethodA(obj, methodID, args); |
257 | 0 | } |
258 | | using BASE_TYPE = jobject; |
259 | | using RETURN_TYPE = jobject; |
260 | | }; |
261 | | |
262 | | template <> |
263 | | struct CallHelper<IntMethod> { |
264 | 0 | static jint call_impl(JNIEnv* env, jobject obj, jmethodID methodID, const jvalue* args) { |
265 | 0 | return env->CallIntMethodA(obj, methodID, args); |
266 | 0 | } |
267 | | using BASE_TYPE = jobject; |
268 | | using RETURN_TYPE = jint; |
269 | | }; |
270 | | |
271 | | template <> |
272 | | struct CallHelper<LongMethod> { |
273 | 0 | static jlong call_impl(JNIEnv* env, jobject obj, jmethodID methodID, const jvalue* args) { |
274 | 0 | return env->CallLongMethodA(obj, methodID, args); |
275 | 0 | } |
276 | | using BASE_TYPE = jobject; |
277 | | using RETURN_TYPE = jlong; |
278 | | }; |
279 | | |
280 | | template <> |
281 | | struct CallHelper<VoidMethod> { |
282 | 0 | static void call_impl(JNIEnv* env, jobject obj, jmethodID methodID, const jvalue* args) { |
283 | 0 | env->CallVoidMethodA(obj, methodID, args); |
284 | 0 | } |
285 | | using BASE_TYPE = jobject; |
286 | | using RETURN_TYPE = void; |
287 | | }; |
288 | | |
289 | | template <> |
290 | | struct CallHelper<BooleanMethod> { |
291 | 0 | static jboolean call_impl(JNIEnv* env, jobject obj, jmethodID methodID, const jvalue* args) { |
292 | 0 | return env->CallBooleanMethodA(obj, methodID, args); |
293 | 0 | } |
294 | | using BASE_TYPE = jobject; |
295 | | using RETURN_TYPE = jboolean; |
296 | | }; |
297 | | |
298 | | template <> |
299 | | struct CallHelper<StaticObjectMethod> { |
300 | 0 | static jobject call_impl(JNIEnv* env, jclass cls, jmethodID methodID, const jvalue* args) { |
301 | 0 | return env->CallStaticObjectMethodA(cls, methodID, args); |
302 | 0 | } |
303 | | using BASE_TYPE = jclass; |
304 | | using RETURN_TYPE = jobject; |
305 | | }; |
306 | | |
307 | | template <> |
308 | | struct CallHelper<StaticIntMethod> { |
309 | 0 | static jint call_impl(JNIEnv* env, jclass cls, jmethodID methodID, const jvalue* args) { |
310 | 0 | return env->CallStaticIntMethodA(cls, methodID, args); |
311 | 0 | } |
312 | | using BASE_TYPE = jclass; |
313 | | using RETURN_TYPE = jint; |
314 | | }; |
315 | | |
316 | | template <> |
317 | | struct CallHelper<StaticLongMethod> { |
318 | 0 | static jlong call_impl(JNIEnv* env, jclass cls, jmethodID methodID, const jvalue* args) { |
319 | 0 | return env->CallStaticLongMethodA(cls, methodID, args); |
320 | 0 | } |
321 | | using BASE_TYPE = jclass; |
322 | | using RETURN_TYPE = jlong; |
323 | | }; |
324 | | |
325 | | template <> |
326 | | struct CallHelper<StaticVoidMethod> { |
327 | 0 | static void call_impl(JNIEnv* env, jclass cls, jmethodID methodID, const jvalue* args) { |
328 | 0 | return env->CallStaticVoidMethodA(cls, methodID, args); |
329 | 0 | } |
330 | | |
331 | | using BASE_TYPE = jclass; |
332 | | using RETURN_TYPE = void; |
333 | | }; |
334 | | |
335 | | template <> |
336 | | struct CallHelper<NewObject> { |
337 | 0 | static jobject call_impl(JNIEnv* env, jclass cls, jmethodID methodID, const jvalue* args) { |
338 | 0 | return env->NewObjectA(cls, methodID, args); |
339 | 0 | } |
340 | | |
341 | | using BASE_TYPE = jclass; |
342 | | using RETURN_TYPE = jobject; |
343 | | }; |
344 | | |
345 | | template <> |
346 | | struct CallHelper<NonvirtualVoidMethod> { |
347 | | static void call_impl(JNIEnv* env, jobject obj, jclass clazz, jmethodID methodID, |
348 | 0 | const jvalue* args) { |
349 | 0 | return env->CallNonvirtualVoidMethodA(obj, clazz, methodID, args); |
350 | 0 | } |
351 | | |
352 | | using BASE_TYPE = jobject; |
353 | | using RETURN_TYPE = void; |
354 | | }; |
355 | | |
356 | | template <> |
357 | | struct CallHelper<NonvirtualObjectMethod> { |
358 | | static jobject call_impl(JNIEnv* env, jobject obj, jclass clazz, jmethodID methodID, |
359 | 0 | const jvalue* args) { |
360 | 0 | return env->CallNonvirtualObjectMethodA(obj, clazz, methodID, args); |
361 | 0 | } |
362 | | |
363 | | using BASE_TYPE = jobject; |
364 | | using RETURN_TYPE = jobject; |
365 | | }; |
366 | | |
367 | | template <> |
368 | | struct CallHelper<NonvirtualIntMethod> { |
369 | | static jint call_impl(JNIEnv* env, jobject obj, jclass clazz, jmethodID methodID, |
370 | 0 | const jvalue* args) { |
371 | 0 | return env->CallNonvirtualIntMethodA(obj, clazz, methodID, args); |
372 | 0 | } |
373 | | |
374 | | using BASE_TYPE = jobject; |
375 | | using RETURN_TYPE = jint; |
376 | | }; |
377 | | |
378 | | template <> |
379 | | struct CallHelper<NonvirtualBooleanMethod> { |
380 | | static jboolean call_impl(JNIEnv* env, jobject obj, jclass clazz, jmethodID methodID, |
381 | 0 | const jvalue* args) { |
382 | 0 | return env->CallNonvirtualBooleanMethodA(obj, clazz, methodID, args); |
383 | 0 | } |
384 | | |
385 | | using BASE_TYPE = jobject; |
386 | | using RETURN_TYPE = jboolean; |
387 | | }; |
388 | | |
389 | | template <CallTag tag> |
390 | | class FunctionCall { |
391 | | public: |
392 | | FunctionCall(FunctionCall&& other) noexcept = default; |
393 | | |
394 | | static FunctionCall instance(JNIEnv* env, typename CallHelper<tag>::BASE_TYPE base, |
395 | 0 | jmethodID method_id) { |
396 | 0 | return FunctionCall(env, base, method_id); |
397 | 0 | } Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE9EE8instanceEP7JNIEnv_P7_jclassP10_jmethodID Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE0EE8instanceEP7JNIEnv_P8_jobjectP10_jmethodID Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE4EE8instanceEP7JNIEnv_P8_jobjectP10_jmethodID Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE8EE8instanceEP7JNIEnv_P7_jclassP10_jmethodID Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE5EE8instanceEP7JNIEnv_P7_jclassP10_jmethodID Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE2EE8instanceEP7JNIEnv_P8_jobjectP10_jmethodID Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE1EE8instanceEP7JNIEnv_P8_jobjectP10_jmethodID Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE3EE8instanceEP7JNIEnv_P8_jobjectP10_jmethodID |
398 | | |
399 | | /// Pass a primitive arg (eg an integer). |
400 | | /// Multiple arguments may be passed by repeated calls. |
401 | | template <class T> |
402 | | requires std::disjunction_v<std::is_same<T, jboolean>, std::is_same<T, jbyte>, |
403 | | std::is_same<T, jchar>, std::is_same<T, jshort>, |
404 | | std::is_same<T, jint>, std::is_same<T, jlong>, |
405 | | std::is_same<T, jfloat>, std::is_same<T, jdouble>> |
406 | 0 | FunctionCall& with_arg(T arg) { |
407 | 0 | jvalue v; |
408 | 0 | std::memset(&v, 0, sizeof(v)); |
409 | 0 | if constexpr (std::is_same_v<T, jboolean>) { |
410 | 0 | v.z = arg; |
411 | | } else if constexpr (std::is_same_v<T, jbyte>) { |
412 | | v.b = arg; |
413 | | } else if constexpr (std::is_same_v<T, jchar>) { |
414 | | v.c = arg; |
415 | | } else if constexpr (std::is_same_v<T, jshort>) { |
416 | | v.s = arg; |
417 | 0 | } else if constexpr (std::is_same_v<T, jint>) { |
418 | 0 | v.i = arg; |
419 | 0 | } else if constexpr (std::is_same_v<T, jlong>) { |
420 | 0 | v.j = arg; |
421 | | } else if constexpr (std::is_same_v<T, jfloat>) { |
422 | | v.f = arg; |
423 | | } else if constexpr (std::is_same_v<T, jdouble>) { |
424 | | v.d = arg; |
425 | | } else { |
426 | | static_assert(false); |
427 | | } |
428 | 0 | _args.push_back(v); |
429 | 0 | return *this; |
430 | 0 | } Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE9EE8with_argIiQsr3stdE13disjunction_vISt7is_sameITL0__hES5_IS6_aES5_IS6_tES5_IS6_sES5_IS6_iES5_IS6_lES5_IS6_fES5_IS6_dEEEERS3_T_ Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE5EE8with_argIiQsr3stdE13disjunction_vISt7is_sameITL0__hES5_IS6_aES5_IS6_tES5_IS6_sES5_IS6_iES5_IS6_lES5_IS6_fES5_IS6_dEEEERS3_T_ Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE0EE8with_argIiQsr3stdE13disjunction_vISt7is_sameITL0__hES5_IS6_aES5_IS6_tES5_IS6_sES5_IS6_iES5_IS6_lES5_IS6_fES5_IS6_dEEEERS3_T_ Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE9EE8with_argIlQsr3stdE13disjunction_vISt7is_sameITL0__hES5_IS6_aES5_IS6_tES5_IS6_sES5_IS6_iES5_IS6_lES5_IS6_fES5_IS6_dEEEERS3_T_ Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE8EE8with_argIiQsr3stdE13disjunction_vISt7is_sameITL0__hES5_IS6_aES5_IS6_tES5_IS6_sES5_IS6_iES5_IS6_lES5_IS6_fES5_IS6_dEEEERS3_T_ Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE3EE8with_argIhQsr3stdE13disjunction_vISt7is_sameITL0__hES5_IS6_aES5_IS6_tES5_IS6_sES5_IS6_iES5_IS6_lES5_IS6_fES5_IS6_dEEEERS3_T_ Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE3EE8with_argIiQsr3stdE13disjunction_vISt7is_sameITL0__hES5_IS6_aES5_IS6_tES5_IS6_sES5_IS6_iES5_IS6_lES5_IS6_fES5_IS6_dEEEERS3_T_ Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE3EE8with_argIlQsr3stdE13disjunction_vISt7is_sameITL0__hES5_IS6_aES5_IS6_tES5_IS6_sES5_IS6_iES5_IS6_lES5_IS6_fES5_IS6_dEEEERS3_T_ Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE2EE8with_argIlQsr3stdE13disjunction_vISt7is_sameITL0__hES5_IS6_aES5_IS6_tES5_IS6_sES5_IS6_iES5_IS6_lES5_IS6_fES5_IS6_dEEEERS3_T_ Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE8EE8with_argIlQsr3stdE13disjunction_vISt7is_sameITL0__hES5_IS6_aES5_IS6_tES5_IS6_sES5_IS6_iES5_IS6_lES5_IS6_fES5_IS6_dEEEERS3_T_ |
431 | | |
432 | | template <RefType Ref> |
433 | | FunctionCall& with_arg(const Object<Ref>& obj) WARN_UNUSED_RESULT; |
434 | | |
435 | | template <typename ReturnType> |
436 | | requires(std::is_same_v<typename CallHelper<tag>::RETURN_TYPE, ReturnType>) |
437 | 0 | Status call(ReturnType* result) { |
438 | 0 | *result = CallHelper<tag>::call_impl(_env, _base, _method, _args.data()); |
439 | 0 | RETURN_ERROR_IF_EXC(_env); |
440 | 0 | return Status::OK(); |
441 | 0 | } Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE4EE4callIhQsr3stdE9is_same_vINS0_10CallHelperIXT_EE11RETURN_TYPEETL0__EEENS_6StatusEPT_ Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE2EE4callIlQsr3stdE9is_same_vINS0_10CallHelperIXT_EE11RETURN_TYPEETL0__EEENS_6StatusEPT_ Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE1EE4callIiQsr3stdE9is_same_vINS0_10CallHelperIXT_EE11RETURN_TYPEETL0__EEENS_6StatusEPT_ |
442 | | |
443 | | Status call(Object<Local>* result); |
444 | | |
445 | | Status call(Object<Global>* result); |
446 | | |
447 | 0 | Status call() { |
448 | 0 | using return_type = typename CallHelper<tag>::RETURN_TYPE; |
449 | | if constexpr (std::disjunction_v< |
450 | | std::is_same<return_type, jboolean>, std::is_same<return_type, jbyte>, |
451 | | std::is_same<return_type, jchar>, std::is_same<return_type, jshort>, |
452 | | std::is_same<return_type, jint>, std::is_same<return_type, jlong>, |
453 | | std::is_same<return_type, jfloat>, std::is_same<return_type, jdouble>, |
454 | 0 | std::is_same<return_type, void>>) { |
455 | 0 | CallHelper<tag>::call_impl(_env, _base, _method, _args.data()); |
456 | 0 | RETURN_ERROR_IF_EXC(_env); |
457 | 0 | } else if constexpr (std::is_same_v<return_type, jobject>) { |
458 | 0 | jobject tmp = CallHelper<tag>::call_impl(_env, _base, _method, _args.data()); |
459 | 0 | _env->DeleteLocalRef(tmp); |
460 | 0 | RETURN_ERROR_IF_EXC(_env); |
461 | | } else { |
462 | | static_assert(false); |
463 | | } |
464 | 0 | return Status::OK(); |
465 | 0 | } Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE0EE4callEv Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE8EE4callEv Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE1EE4callEv Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE3EE4callEv |
466 | | |
467 | | protected: |
468 | | explicit FunctionCall(JNIEnv* env, typename CallHelper<tag>::BASE_TYPE base, |
469 | | jmethodID method_id) |
470 | 0 | : _env(env), _base(base), _method(method_id) {}Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE9EEC2EP7JNIEnv_P7_jclassP10_jmethodID Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE0EEC2EP7JNIEnv_P8_jobjectP10_jmethodID Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE4EEC2EP7JNIEnv_P8_jobjectP10_jmethodID Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE8EEC2EP7JNIEnv_P7_jclassP10_jmethodID Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE5EEC2EP7JNIEnv_P7_jclassP10_jmethodID Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE2EEC2EP7JNIEnv_P8_jobjectP10_jmethodID Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE1EEC2EP7JNIEnv_P8_jobjectP10_jmethodID Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE3EEC2EP7JNIEnv_P8_jobjectP10_jmethodID Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE10EEC2EP7JNIEnv_P8_jobjectP10_jmethodID Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE11EEC2EP7JNIEnv_P8_jobjectP10_jmethodID |
471 | | |
472 | | JNIEnv* _env = nullptr; |
473 | | CallHelper<tag>::BASE_TYPE _base; // is jobject/jclass not need new/delete local/global ref. |
474 | | const jmethodID _method = nullptr; |
475 | | std::vector<jvalue> _args; |
476 | | Status _st = Status::OK(); |
477 | | DISALLOW_COPY_AND_ASSIGN(FunctionCall); |
478 | | }; |
479 | | |
480 | | template <CallTag tag> |
481 | | class NonvirtualFunctionCall : public FunctionCall<tag> { |
482 | | public: |
483 | | NonvirtualFunctionCall(NonvirtualFunctionCall&& other) noexcept = default; |
484 | | |
485 | | static NonvirtualFunctionCall instance(JNIEnv* env, typename CallHelper<tag>::BASE_TYPE base, |
486 | 0 | jclass cls, jmethodID method_id) { |
487 | 0 | return NonvirtualFunctionCall(env, base, cls, method_id); |
488 | 0 | } Unexecuted instantiation: _ZN5doris3Jni22NonvirtualFunctionCallILNS0_7CallTagE10EE8instanceEP7JNIEnv_P8_jobjectP7_jclassP10_jmethodID Unexecuted instantiation: _ZN5doris3Jni22NonvirtualFunctionCallILNS0_7CallTagE11EE8instanceEP7JNIEnv_P8_jobjectP7_jclassP10_jmethodID |
489 | | |
490 | | // no override |
491 | | template <class T> |
492 | | requires std::disjunction_v<std::is_same<T, jboolean>, std::is_same<T, jbyte>, |
493 | | std::is_same<T, jchar>, std::is_same<T, jshort>, |
494 | | std::is_same<T, jint>, std::is_same<T, jlong>, |
495 | | std::is_same<T, jfloat>, std::is_same<T, jdouble>> |
496 | 0 | NonvirtualFunctionCall& with_arg(T arg) { |
497 | 0 | jvalue v; |
498 | 0 | std::memset(&v, 0, sizeof(v)); |
499 | | if constexpr (std::is_same_v<T, jboolean>) { |
500 | | v.z = arg; |
501 | | } else if constexpr (std::is_same_v<T, jbyte>) { |
502 | | v.b = arg; |
503 | | } else if constexpr (std::is_same_v<T, jchar>) { |
504 | | v.c = arg; |
505 | | } else if constexpr (std::is_same_v<T, jshort>) { |
506 | | v.s = arg; |
507 | | } else if constexpr (std::is_same_v<T, jint>) { |
508 | | v.i = arg; |
509 | 0 | } else if constexpr (std::is_same_v<T, jlong>) { |
510 | 0 | v.j = arg; |
511 | | } else if constexpr (std::is_same_v<T, jfloat>) { |
512 | | v.f = arg; |
513 | | } else if constexpr (std::is_same_v<T, jdouble>) { |
514 | | v.d = arg; |
515 | | } else { |
516 | | static_assert(false); |
517 | | } |
518 | 0 | this->_args.push_back(v); |
519 | 0 | return *this; |
520 | 0 | } Unexecuted instantiation: _ZN5doris3Jni22NonvirtualFunctionCallILNS0_7CallTagE10EE8with_argIlQsr3stdE13disjunction_vISt7is_sameITL0__hES5_IS6_aES5_IS6_tES5_IS6_sES5_IS6_iES5_IS6_lES5_IS6_fES5_IS6_dEEEERS3_T_ Unexecuted instantiation: _ZN5doris3Jni22NonvirtualFunctionCallILNS0_7CallTagE11EE8with_argIlQsr3stdE13disjunction_vISt7is_sameITL0__hES5_IS6_aES5_IS6_tES5_IS6_sES5_IS6_iES5_IS6_lES5_IS6_fES5_IS6_dEEEERS3_T_ |
521 | | |
522 | | template <RefType Ref> |
523 | | NonvirtualFunctionCall& with_arg(const Object<Ref>& obj) WARN_UNUSED_RESULT; |
524 | | |
525 | | // no override |
526 | 0 | Status call() { |
527 | 0 | using return_type = typename CallHelper<tag>::RETURN_TYPE; |
528 | | if constexpr (std::disjunction_v< |
529 | | std::is_same<return_type, jboolean>, std::is_same<return_type, jbyte>, |
530 | | std::is_same<return_type, jchar>, std::is_same<return_type, jshort>, |
531 | | std::is_same<return_type, jint>, std::is_same<return_type, jlong>, |
532 | | std::is_same<return_type, jfloat>, std::is_same<return_type, jdouble>, |
533 | 0 | std::is_same<return_type, void>>) { |
534 | 0 | CallHelper<tag>::call_impl(this->_env, this->_base, _cls, this->_method, |
535 | 0 | this->_args.data()); |
536 | 0 | RETURN_ERROR_IF_EXC(this->_env); |
537 | | } else if constexpr (std::is_same_v<return_type, jobject>) { |
538 | | jobject tmp = CallHelper<tag>::call_impl(this->_env, this->_base, _cls, this->_method, |
539 | | this->_args.data()); |
540 | | RETURN_ERROR_IF_EXC(this->_env); |
541 | | this->_env->DeleteLocalRef(tmp); |
542 | | } else { |
543 | | static_assert(false); |
544 | | } |
545 | 0 | return Status::OK(); |
546 | 0 | } |
547 | | |
548 | | Status call(Object<Local>* result); |
549 | | |
550 | | template <typename ReturnType> |
551 | | requires(std::is_same_v<typename CallHelper<tag>::RETURN_TYPE, ReturnType>) |
552 | | Status call(ReturnType* result) { |
553 | | *result = CallHelper<tag>::call_impl(this->_env, this->_base, _cls, this->_method, |
554 | | this->_args.data()); |
555 | | RETURN_ERROR_IF_EXC(this->_env); |
556 | | return Status::OK(); |
557 | | } |
558 | | |
559 | | private: |
560 | | explicit NonvirtualFunctionCall(JNIEnv* env, typename CallHelper<tag>::BASE_TYPE base, |
561 | | jclass cls, jmethodID method_id) |
562 | 0 | : FunctionCall<tag>(env, base, method_id), _cls(cls) {}Unexecuted instantiation: _ZN5doris3Jni22NonvirtualFunctionCallILNS0_7CallTagE10EEC2EP7JNIEnv_P8_jobjectP7_jclassP10_jmethodID Unexecuted instantiation: _ZN5doris3Jni22NonvirtualFunctionCallILNS0_7CallTagE11EEC2EP7JNIEnv_P8_jobjectP7_jclassP10_jmethodID |
563 | | jclass _cls; |
564 | | DISALLOW_COPY_AND_ASSIGN(NonvirtualFunctionCall); |
565 | | }; |
566 | | |
567 | | /** |
568 | | * When writing JNI code, developers usually need to pay extra attention to several error-prone aspects, including: |
569 | | * 1. The reference type of jobject (local vs. global) |
570 | | * 2. The lifetime and scope of JNI references |
571 | | * 3. Proper release of references after use |
572 | | * 4. Explicit exception checking after JNI calls |
573 | | * Because these concerns are verbose and easy to overlook, they often lead to bugs or inconsistent code. To simplify this, |
574 | | * we provide a wrapper framework around raw JNI APIs. The following describes how to use it (assuming the user already |
575 | | * understands the basic JNI programming model). |
576 | | * |
577 | | * 0. Get JNIEnv* env: `Status st = Jni::Env::Get(&env)` |
578 | | * 1. Choose the reference type |
579 | | * First, determine whether the JNI object should be a local or global reference. Based on this, create the corresponding C++ wrapper object: |
580 | | * LocalObject / GlobalObject. If the exact JNI type is known, use specialized wrappers such as <Local/Global><Array/String/Class>. |
581 | | * 2. Initialize the object |
582 | | * For `jclass`, typically use: `Status st = Jni::Util::find_class(xxx);` |
583 | | * For other object types, they are usually initialized via: `Status st = clazz.new_object(xxx).with_arg(xxx).call(&object) or by calling methods on existing objects. |
584 | | * 3. Call methods and retrieve results |
585 | | * To invoke a method and obtain a return value, use: `Status st = object.call_<return_type>_method(xxx).call(&result);` |
586 | | * |
587 | | * Notes |
588 | | * 1. All JNI references are automatically released in the wrapper’s destructor, ensuring safe and deterministic cleanup. |
589 | | * 2. All framework method invocations return a Status. |
590 | | * The actual JNI return value is written to the address passed to call(). |
591 | | * |
592 | | * Example: be/test/util/jni_util_test.cpp |
593 | | */ |
594 | | template <RefType Ref> |
595 | | class Object { |
596 | | // env->GetObjectRefType |
597 | | public: |
598 | 56 | Object() = default; _ZN5doris3Jni6ObjectILNS0_7RefTypeE0EEC2Ev Line | Count | Source | 598 | 6 | Object() = default; |
_ZN5doris3Jni6ObjectILNS0_7RefTypeE1EEC2Ev Line | Count | Source | 598 | 50 | Object() = default; |
|
599 | | |
600 | | template <RefType U> |
601 | | friend class Object; |
602 | | |
603 | | template <RefType U> |
604 | | friend class Class; |
605 | | |
606 | | template <RefType U> |
607 | | friend class String; |
608 | | |
609 | | template <RefType U> |
610 | | friend class Array; |
611 | | |
612 | | template <BufferType bufferfType, RefType U> |
613 | | friend class BufferGuard; |
614 | | |
615 | | template <CallTag tag> |
616 | | friend class FunctionCall; |
617 | | |
618 | | template <CallTag tag> |
619 | | friend class NonvirtualFunctionCall; |
620 | | |
621 | 56 | virtual ~Object() { |
622 | 56 | if (_obj != nullptr) [[likely]] { |
623 | 3 | JNIEnv* env = nullptr; |
624 | 3 | if (Status st = RefHelper<Ref>::get_env(&env); !st.ok()) [[unlikely]] { |
625 | 0 | LOG(WARNING) << "Can't destroy Jni Ref : " << st.msg(); |
626 | 0 | return; |
627 | 0 | } |
628 | 3 | RefHelper<Ref>::destroy(env, _obj); |
629 | 3 | } |
630 | 56 | } _ZN5doris3Jni6ObjectILNS0_7RefTypeE0EED2Ev Line | Count | Source | 621 | 6 | virtual ~Object() { | 622 | 6 | if (_obj != nullptr) [[likely]] { | 623 | 3 | JNIEnv* env = nullptr; | 624 | 3 | if (Status st = RefHelper<Ref>::get_env(&env); !st.ok()) [[unlikely]] { | 625 | 0 | LOG(WARNING) << "Can't destroy Jni Ref : " << st.msg(); | 626 | 0 | return; | 627 | 0 | } | 628 | 3 | RefHelper<Ref>::destroy(env, _obj); | 629 | 3 | } | 630 | 6 | } |
_ZN5doris3Jni6ObjectILNS0_7RefTypeE1EED2Ev Line | Count | Source | 621 | 50 | virtual ~Object() { | 622 | 50 | if (_obj != nullptr) [[likely]] { | 623 | 0 | JNIEnv* env = nullptr; | 624 | 0 | if (Status st = RefHelper<Ref>::get_env(&env); !st.ok()) [[unlikely]] { | 625 | 0 | LOG(WARNING) << "Can't destroy Jni Ref : " << st.msg(); | 626 | 0 | return; | 627 | 0 | } | 628 | 0 | RefHelper<Ref>::destroy(env, _obj); | 629 | 0 | } | 630 | 50 | } |
|
631 | | |
632 | | template <RefType R> |
633 | 2 | static Status create(JNIEnv* env, const Object<R>& other, Object<Ref>* result) { |
634 | 2 | DCHECK(!other.uninitialized()); |
635 | 2 | DCHECK(result->uninitialized()); |
636 | | |
637 | 2 | result->_obj = RefHelper<Ref>::create(env, other._obj); |
638 | 2 | RETURN_ERROR_IF_EXC(env); |
639 | 2 | return Status::OK(); |
640 | 2 | } _ZN5doris3Jni6ObjectILNS0_7RefTypeE1EE6createILS2_0EEENS_6StatusEP7JNIEnv_RKNS1_IXT_EEEPS3_ Line | Count | Source | 633 | 2 | static Status create(JNIEnv* env, const Object<R>& other, Object<Ref>* result) { | 634 | 2 | DCHECK(!other.uninitialized()); | 635 | 2 | DCHECK(result->uninitialized()); | 636 | | | 637 | 2 | result->_obj = RefHelper<Ref>::create(env, other._obj); | 638 | 2 | RETURN_ERROR_IF_EXC(env); | 639 | 2 | return Status::OK(); | 640 | 2 | } |
Unexecuted instantiation: _ZN5doris3Jni6ObjectILNS0_7RefTypeE0EE6createILS2_0EEENS_6StatusEP7JNIEnv_RKNS1_IXT_EEEPS3_ Unexecuted instantiation: _ZN5doris3Jni6ObjectILNS0_7RefTypeE1EE6createILS2_1EEENS_6StatusEP7JNIEnv_RKNS1_IXT_EEEPS3_ |
641 | | |
642 | 27 | bool uninitialized() const { return _obj == nullptr; }_ZNK5doris3Jni6ObjectILNS0_7RefTypeE0EE13uninitializedEv Line | Count | Source | 642 | 16 | bool uninitialized() const { return _obj == nullptr; } |
_ZNK5doris3Jni6ObjectILNS0_7RefTypeE1EE13uninitializedEv Line | Count | Source | 642 | 11 | bool uninitialized() const { return _obj == nullptr; } |
|
643 | | |
644 | | // Access the JNI handle without changing ownership. |
645 | 1 | jobject get() const { return _obj; }_ZNK5doris3Jni6ObjectILNS0_7RefTypeE0EE3getEv Line | Count | Source | 645 | 1 | jobject get() const { return _obj; } |
Unexecuted instantiation: _ZNK5doris3Jni6ObjectILNS0_7RefTypeE1EE3getEv |
646 | | |
647 | 0 | void reset(JNIEnv* env) { |
648 | 0 | if (_obj == nullptr) { |
649 | 0 | return; |
650 | 0 | } |
651 | 0 | RefHelper<Ref>::destroy(env, _obj); |
652 | 0 | _obj = nullptr; |
653 | 0 | } |
654 | | |
655 | | template <RefType T> |
656 | 0 | bool equal(JNIEnv* env, const Object<T>& other) { |
657 | 0 | DCHECK(!uninitialized()); |
658 | 0 | DCHECK(!other.uninitialized()); |
659 | 0 | return env->IsSameObject(this->_obj, other._obj); //assume not throw exception. |
660 | 0 | } |
661 | | |
662 | 0 | FunctionCall<ObjectMethod> call_object_method(JNIEnv* env, MethodId method_id) const { |
663 | 0 | DCHECK(!this->uninitialized()); |
664 | 0 | DCHECK(!method_id.uninitialized()); |
665 | 0 | return FunctionCall<ObjectMethod>::instance(env, _obj, method_id._id); |
666 | 0 | } Unexecuted instantiation: _ZNK5doris3Jni6ObjectILNS0_7RefTypeE0EE18call_object_methodEP7JNIEnv_NS0_8MethodIdE Unexecuted instantiation: _ZNK5doris3Jni6ObjectILNS0_7RefTypeE1EE18call_object_methodEP7JNIEnv_NS0_8MethodIdE |
667 | | |
668 | 0 | FunctionCall<IntMethod> call_int_method(JNIEnv* env, MethodId method_id) const { |
669 | 0 | DCHECK(!this->uninitialized()); |
670 | 0 | DCHECK(!method_id.uninitialized()); |
671 | 0 | return FunctionCall<IntMethod>::instance(env, _obj, method_id._id); |
672 | 0 | } |
673 | | |
674 | 0 | FunctionCall<LongMethod> call_long_method(JNIEnv* env, MethodId method_id) const { |
675 | 0 | DCHECK(!this->uninitialized()); |
676 | 0 | DCHECK(!method_id.uninitialized()); |
677 | 0 | return FunctionCall<LongMethod>::instance(env, _obj, method_id._id); |
678 | 0 | } Unexecuted instantiation: _ZNK5doris3Jni6ObjectILNS0_7RefTypeE0EE16call_long_methodEP7JNIEnv_NS0_8MethodIdE Unexecuted instantiation: _ZNK5doris3Jni6ObjectILNS0_7RefTypeE1EE16call_long_methodEP7JNIEnv_NS0_8MethodIdE |
679 | | |
680 | 0 | FunctionCall<VoidMethod> call_void_method(JNIEnv* env, MethodId method_id) const { |
681 | 0 | DCHECK(!this->uninitialized()); |
682 | 0 | DCHECK(!method_id.uninitialized()); |
683 | 0 | return FunctionCall<VoidMethod>::instance(env, _obj, method_id._id); |
684 | 0 | } |
685 | | |
686 | 0 | FunctionCall<BooleanMethod> call_boolean_method(JNIEnv* env, MethodId method_id) const { |
687 | 0 | DCHECK(!this->uninitialized()); |
688 | 0 | DCHECK(!method_id.uninitialized()); |
689 | 0 | return FunctionCall<BooleanMethod>::instance(env, _obj, method_id._id); |
690 | 0 | } |
691 | | |
692 | | template <RefType R> |
693 | | NonvirtualFunctionCall<NonvirtualVoidMethod> call_nonvirtual_void_method( |
694 | | JNIEnv* env, const Class<R>& clazz, MethodId method_id) const; |
695 | | |
696 | | template <RefType R> |
697 | | NonvirtualFunctionCall<NonvirtualObjectMethod> call_nonvirtual_object_method( |
698 | | JNIEnv* env, const Class<R>& clazz, MethodId method_id) const; |
699 | | |
700 | | template <RefType R> |
701 | | NonvirtualFunctionCall<NonvirtualIntMethod> call_nonvirtual_int_method( |
702 | | JNIEnv* env, const Class<R>& clazz, MethodId method_id) const; |
703 | | |
704 | | template <RefType R> |
705 | | NonvirtualFunctionCall<NonvirtualBooleanMethod> call_nonvirtual_boolean_method( |
706 | | JNIEnv* env, const Class<R>& clazz, MethodId method_id) const; |
707 | | |
708 | | protected: |
709 | | jobject _obj = nullptr; |
710 | | DISALLOW_COPY_AND_ASSIGN(Object); |
711 | | }; |
712 | | |
713 | | using LocalObject = Object<Local>; |
714 | | using GlobalObject = Object<Global>; |
715 | | |
716 | | static inline Status local_to_global_ref(JNIEnv* env, const LocalObject& local_ref, |
717 | 2 | GlobalObject* global_ref) { |
718 | 2 | return Object<Global>::create(env, local_ref, global_ref); |
719 | 2 | } Unexecuted instantiation: heartbeat_server_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: task_worker_pool_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: aggregate_function_ai_agg_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: ai_adapter_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: ai_function_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: ai_request_executor_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: embed_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cloud_cluster_info_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cloud_committed_rs_mgr_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cloud_compaction_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cloud_cumulative_compaction_policy_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cloud_empty_rowset_compaction_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cloud_internal_service_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cloud_meta_mgr_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cloud_schema_change_job_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cloud_snapshot_mgr_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cloud_tablet_mgr_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cloud_tablet_query_prefer_cache_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cloud_tablet_query_with_tolerance_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cloud_tablet_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cloud_warm_up_manager_filter_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cloud_warm_up_manager_peer_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cloud_warm_up_manager_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: delete_bitmap_file_reader_writer_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: column_array_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: column_decimal_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: column_dictionary_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: column_ip_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: column_string_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: column_vector_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: data_type_agg_state_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: data_type_array_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: data_type_bitmap_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: data_type_decimal_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: data_type_fixed_length_object_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: data_type_hll_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: data_type_insert_default_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: data_type_ip_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: data_type_jsonb_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: data_type_map_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: data_type_number_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: data_type_quantile_state_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: data_type_string_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: data_type_struct_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: data_type_timestamptz_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: data_type_uuid_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: data_type_varbinary_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: datetime_round_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: from_string_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: data_type_from_string_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: data_type_jsonb_serde_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: data_type_serde_agg_state_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: data_type_serde_arrow_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: data_type_serde_csv_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: data_type_serde_map_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: data_type_serde_mysql_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: data_type_serde_string_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: data_type_serde_struct_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: data_type_serde_text_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: data_type_to_string_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: data_type_variant_v2_serde_binary_roundtrip_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: serialize_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: arrow_column_to_doris_column_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: merge_partitioner_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: sort_merger_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: agg_fn_evaluator_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: column_type_convert_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: schema_util_rowset_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: schema_util_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: dictionary_get_nullable_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: dictionary_status_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: dictionary_version_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: exchange_sink_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: exchange_writer_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: hash_table_method_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: agg_operator_group_by_limit_opt_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: agg_operator_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: agg_shared_state_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: analytic_sink_operator_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: assert_nums_rows_operator.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: broadcast_protobuf_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: datagen_operator_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: distinct_streaming_aggregation_operator_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: empty_set_operator_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: exchange_sink_operator_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: exchange_source_operator_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: file_scan_operator_adbc_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: file_scan_operator_fluss_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: hash_join_test_helper.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: hashjoin_build_sink_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: hashjoin_probe_operator_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: iceberg_table_sink_operator_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: join_test_helper.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: local_merge_sort_source_operator_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: materialization_shared_state_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: nested_loop_join_build_operator_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: olap_scan_operator_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: operator_projection_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: partition_sort_sink_operator_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: partitioned_aggregation_sink_operator_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: partitioned_aggregation_source_operator_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: partitioned_aggregation_test_helper.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: partitioned_hash_join_probe_operator_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: partitioned_hash_join_sink_operator_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: partitioned_hash_join_test_helper.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: query_cache_operator_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: repeat_operator_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: scan_normalize_predicate_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: set_operator_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: sort_operator_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: spill_sort_sink_operator_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: spill_sort_source_operator_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: spill_sort_test_helper.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: spillable_operator_test_helper.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: streaming_agg_operator_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: table_function_operator_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: union_operator_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: external_partition_function_factory_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: external_table_sink_hash_partitioner_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: bucketed_agg_shared_state_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: agg_utils_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: distinct_agg_utils_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: set_utils_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: data_queue_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: local_exchanger_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: multi_cast_data_streamer_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: partitioned_agg_shared_state_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: pipeline_task_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: pipeline_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: query_cache_fragment_context_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: query_cache_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: vdata_stream_recvr_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: rowid_fetcher_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: runtime_filter_bucket_pruner_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: runtime_filter_consumer_helper_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: runtime_filter_consumer_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: runtime_filter_expr_sampling_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: runtime_filter_merger_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: runtime_filter_mgr_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: runtime_filter_partition_pruner_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: runtime_filter_producer_helper_cross_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: runtime_filter_producer_helper_set_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: runtime_filter_producer_helper_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: runtime_filter_producer_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: sync_size_callback_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: utils_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: access_path_parser_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: file_load_scanner_v2_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: file_scanner_v2_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: olap_scanner_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: scan_operator_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: scanner_context_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: scanner_late_arrival_rf_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: vfile_scanner_exception_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: vgeneric_iterators_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: schema_extensions_scanner_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: schema_table_stream_consumption_scanner_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: schema_tso_status_scanner_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: arrow_result_block_buffer_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: paimon_jni_memory_manager_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: result_block_buffer_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: tablet_sink_hash_partitioner_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: viceberg_merge_sink_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: vrow_distribution_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: vtablet_writer_v2_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: async_result_writer_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: external_table_writer_partition_limit_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: iceberg_partition_writer_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: iceberg_table_writer_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: partition_transformers_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: viceberg_table_writer_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: jni_paimon_utf8_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: paimon_write_backend_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: vhive_partition_writer_report_lifecycle_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: vjdbc_table_writer_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: full_sort_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: heap_sorter_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: merge_sorter_state.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: partition_sorter_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: sort_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: topn_sort_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: agg_count_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: agg_map_agg_v2_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: agg_state_combine_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: agg_state_union_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: bloom_filter_func_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: expr_zonemap_filter_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_jsonb_null_mask_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_timestamp_ns_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_array_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_boolean_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_date_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_datetime_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal128_from_decimal128.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal128_from_decimal128_overflow.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal128_from_decimal256.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal128_from_decimal256_overflow.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal128_from_decimal32.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal128_from_decimal32_overflow.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal128_from_decimal64.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal128_from_decimal64_overflow.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal128_from_double.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal128_from_double_overflow.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal128_from_float.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal128_from_float_overflow.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal128_from_int.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal128_from_int_overflow.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal128_from_string.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal128_from_string_overflow.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal128_perf.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal256_from_decimal128.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal256_from_decimal128_overflow.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal256_from_decimal256.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal256_from_decimal256_overflow.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal256_from_decimal32.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal256_from_decimal32_overflow.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal256_from_decimal64.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal256_from_decimal64_overflow.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal256_from_double.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal256_from_double_overflow.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal256_from_float.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal256_from_float_overflow.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal256_from_int.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal256_from_int_overflow.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal256_from_string.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal256_from_string_overflow.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal32_from_decimal128.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal32_from_decimal128_overflow.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal32_from_decimal256.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal32_from_decimal256_overflow.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal32_from_decimal32.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal32_from_decimal32_overflow.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal32_from_decimal64.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal32_from_decimal64_overflow.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal32_from_double.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal32_from_double_overflow.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal32_from_float.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal32_from_float_overflow.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal32_from_int.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal32_from_int_overflow.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal32_from_string.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal32_from_string_overflow.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal64_from_decimal128.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal64_from_decimal128_overflow.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal64_from_decimal256.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal64_from_decimal256_overflow.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal64_from_decimal32.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal64_from_decimal32_overflow.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal64_from_decimal64.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal64_from_decimal64_overflow.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal64_from_double.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal64_from_double_overflow.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal64_from_float.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal64_from_float_overflow.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal64_from_int.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal64_from_int_overflow.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal64_from_string.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_decimal64_from_string_overflow.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_float_double.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_integer.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_ip_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_map_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_string.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_struct_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_time_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_to_timestamptz_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_agg_state_finalize_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_arithmetic_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_array_aggregation_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_array_cosine_similarity_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_array_cross_product_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_array_cum_sum_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_array_element_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_array_except_all_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_array_flatten_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_array_index_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_array_range_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_array_remove_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_array_shuffle_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_array_size_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_array_split_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_array_trim_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_array_zip_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_arrays_overlap_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_bitmap_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_character_encoding_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_comparison_evaluate_inverted_index_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_complex_hash_map_dict_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_constant_argument_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_datasketches_hll_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_dict_get_many_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_dict_get_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_eq_for_null_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_fmod_fast_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_format_round_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_geo_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_h3_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_hash_map_dict_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_hash_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_hll_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_if_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_ip_dict_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_ip_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_is_null_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_jsonb_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_like_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_map_inner_product_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_map_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_match_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_math_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_money_format_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_multi_match_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_nullif_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_quantile_state_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_round_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_string_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_test_template.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_test_util.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_time_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_timestamp_ns_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_tokenize_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_url_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_uuid_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_varbinary_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_variant_parse_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_variant_type_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: functions_logical_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: functions_geo_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: like_gram_binding_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: like_gram_index_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_search_nested_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_search_null_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_search_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: simple_function_factory_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: table_function_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: hybrid_set_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: index_exec_context_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: array_map_function_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: minmax_predicate_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: score_runtime_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: short_circuit_util_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: try_cast_expr_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: variant_v2_execution_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: vcase_expr_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: vcolumn_ref_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: vcompound_pred_score_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: vcondition_expr_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: vexpr_evalute_inverted_index_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: vexpr_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: vexpr_unaligned_int128_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: virtual_slot_ref_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: vliteral_digest_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: vmatch_predicate_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: vsearch_expr_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: arrow_block_convertor_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: arrow_flight_variant_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: arrow_row_batch_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: condition_cache_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: count_reader_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: csv_reader_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: file_meta_cache_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: json_reader_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: orc_convert_dict_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: orc_convert_to_orc_literal_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: orc_read_lines.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: orc_reader_fill_data_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: orc_reader_init_column_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: orc_reader_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: parquet_column_chunk_reader_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: parquet_column_convert_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: parquet_expr_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: parquet_page_cache_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: parquet_read_lines.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: parquet_reader_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: parquet_statistics_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: parquet_thrift_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: es_http_reader_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: hive_reader_create_column_ids_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: hive_reader_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: arrow_schema_util_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: iceberg_delete_file_reader_helper_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: iceberg_position_delete_sys_table_reader_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: iceberg_reader_create_column_ids_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: iceberg_reader_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: index_disk_usage_reader_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: paimon_jni_reader_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: paimon_reader_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: table_format_reader_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: table_schema_change_helper_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: hive_text_field_splitter_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: vorc_transformer_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: vparquet_writer_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: wal_manager_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: column_mapper_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: hive_csv_reader_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: text_reader_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cast_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: delete_predicate_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: equality_delete_predicate_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: evolution_cast_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: fluss_jni_reader_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: jdbc_reader_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: jni_table_reader_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: native_decoder_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: parquet_page_cache_range_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: parquet_reader_control_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: parquet_scan_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: parquet_schema_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: adbc_reader_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: es_reader_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: fluss_hybrid_reader_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: fluss_union_lake_reader_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: hudi_reader_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: load_reader_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: paimon_rust_predicate_converter_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: paimon_rust_table_reader_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: paimon_variant_reader_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: remote_doris_reader_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: table_reader_request_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: table_reader_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: async_cache_write_manager_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: block_file_cache_downloader_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: block_file_cache_probe_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: block_file_cache_profile_reporter_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: block_file_cache_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: block_file_cache_test_lru_dump.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: block_file_cache_test_meta_store.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: block_file_cache_ttl_mgr_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cached_remote_file_reader_peer_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cached_remote_file_reader_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: fs_file_cache_storage_leak_cleaner_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: partial_block_writeback_manager_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: range_cache_writeback_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: stream_sink_file_writer_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: load_channel_eos_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: load_channel_mgr_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: load_stream_stub_map_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: delta_writer_cancel_integration_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: delta_writer_cancel_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: delta_writer_cluster_key_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: delta_writer_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: delta_writer_v2_pool_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: memtable_flush_executor_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: memtable_memory_limiter_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: memtable_memory_tracking_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: memtable_sort_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cloud_group_rowset_builder_writer_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: group_rowset_builder_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: group_rowset_writer_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: external_scan_context_mgr_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: fragment_mgr_cross_cluster_cancel_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: fragment_mgr_log_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: load_stream_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: memory_reclamation_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cloud_plugin_downloader_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: query_context_read_ahead_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: runtime_predicate_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: runtime_state_block_budget_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: runtime_state_local_state_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: snapshot_loader_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: stream_load_parquet_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: workload_group_manager_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: query_task_controller_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: resource_context_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: workload_sched_policy_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: check_encryption_action_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: compaction_action_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: stream_load_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: point_query_exector_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: ann_index_ivf_list_cache_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: lru_cache_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: page_cache_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: changelog_ttl_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: changelog_vmerge_compaction_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cloud_file_cache_write_index_only_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: base_compaction_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cloud_index_change_compaction_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cloud_index_change_task_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: compaction_delete_bitmap_calculator_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: compaction_file_cache_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: compaction_metrics_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: compaction_sample_info_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: compaction_score_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: compaction_task_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cumulative_compaction_changelog_policy_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cumulative_compaction_policy_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cumulative_compaction_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cumulative_compaction_time_series_policy_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: ordered_data_compaction_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: segcompaction_mow_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: segcompaction_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: stale_at_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: vertical_compaction_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: calc_delete_bitmap_executor_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: delete_bitmap_calculator_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: delete_handler_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: engine_checksum_task_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: file_header_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: id_manager_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: date_bloom_filter_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: index_builder_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: index_compound_reader_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: index_disk_usage_aggregate_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: index_disk_usage_rowset_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: index_disk_usage_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: index_compaction_performance_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: index_compaction_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: inverted_index_gc_binlogs_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: inverted_index_profile_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: empty_index_file_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: inverted_index_reader_analysis_purpose_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: boolean_postings_bench_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: listed_terms_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: boolean_truth_contract_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: multi_segment_collector_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: prefix_query_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: regex_gram_recall_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: collection_statistics_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: phrase_candidate_pushdown_bench_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: search_tree_bench_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: snii_vs_v3_benchmark_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: snii_compaction_eligibility_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: snii_index_compaction_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: snii_streamed_session_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: crc32c_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: gram_index_section_sizes_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: boolean_query_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: byte_skip_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: chained_conjunction_io_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: count_query_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: gram_boolean_query_e2e_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: pattern_query_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: phrase_candidate_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: phrase_prefix_query_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: phrase_skip_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: phrase_streaming_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: posting_grouping_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: query_term_resolution_batch_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: snii_end_to_end_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: snii_ann_container_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: snii_b2_or_read_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: snii_b2_t07_dict_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: snii_b2_t08_wildcard_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: snii_b2_t10_cover_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: snii_bkd_adapter_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: snii_bkd_adapter_types_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: snii_doris_adapter_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: snii_frq_prelude_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: snii_golden_corpus_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: snii_gram_cache_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: snii_index_reader_analyzed_query_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: snii_index_reader_candidate_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: snii_index_reader_count_fallback_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: snii_query_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: snii_variant_routing_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: snii_writer_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: gram_density_calibration_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: phase_a_readback_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: posting_interleave_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: snii_compound_writer_inherit_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: snii_compound_writer_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: snii_gram_inherit_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: snii_no_bigram_writer_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: snii_prx_tier_writer_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: snii_writer_golden_bytes_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: spimi_spill_writer_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: primary_key_index_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: index_storage_lifecycle_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: index_storage_schema_patch_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: block_reader_agg_flush_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: block_reader_batch_max_rows_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: block_reader_change_next_block_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: block_reader_changelog_vcollect_merge_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: block_reader_row_ttl_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: vcollect_iterator_collected_enough_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: vertical_block_reader_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: vertical_merge_iterator_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: row_key_encoder_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: metadata_adder_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: historical_row_fetcher_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: key_probe_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: olap_type_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: partial_update_info_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: path_gc_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: accept_null_predicate_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: block_column_predicate_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: predicate_creator_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: read_schema_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: row_cursor_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: row_ttl_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: rowid_conversion_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: beta_rowset_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: rowset_meta_manager_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: rowset_meta_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: segment_creator_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: segment_flusher_format_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: block_changer_string_length_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: engine_storage_migration_task_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: analyzer_key_matcher_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: binary_column_extract_iterator_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: binary_dict_page_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: binary_plain_page_v2_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: binary_plain_page_v3_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: binary_prefix_page_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: bitshuffle_page_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: bloom_filter_fpp_writer_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: bloom_filter_index_reader_writer_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: column_meta_accessor_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: column_reader_cache_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: column_reader_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: column_writer_storage_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: constant_column_iterator_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: encoding_info_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: external_col_meta_util_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: hierarchical_data_iterator_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: historical_row_retriever_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: index_reader_helper_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: inverted_index_array_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: inverted_index_file_reader_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: inverted_index_file_writer_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: inverted_index_iterator_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: inverted_index_reader_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: inverted_index_searcher_cache_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: inverted_index_writer_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: nested_group_path_filter_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: nested_group_provider_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: page_builder_column_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: page_format_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: plain_page_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: rle_page_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: search_function_query_cache_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: segment_cache_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: segment_column_raw_data_bytes_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: segment_corruption_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: segment_footer_cache_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: segment_iterator_apply_index_expr_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: segment_iterator_candidate_pushdown_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: segment_iterator_conjunct_short_circuit_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: segment_iterator_count_emit_shortcut_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: segment_iterator_expr_zonemap_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: segment_iterator_lazy_pruned_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: segment_iterator_limit_opt_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: segment_iterator_no_need_read_data_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: segment_iterator_read_ahead_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: segment_iterator_runtime_common_expr_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: segment_iterator_score_common_expr_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: segment_iterator_virtual_column_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: segment_primary_key_cache_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: segment_read_ahead_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: segment_writer_mow_check_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: segment_writer_write_paths_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: segments_key_bounds_truncation_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: zone_map_index_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: snapshot_manager_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: storage_engine_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: storage_resource_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: storage_types_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: tablet_column_object_pool_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: tablet_cooldown_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: tablet_index_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: tablet_meta_manager_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: tablet_meta_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: tablet_mgr_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: tablet_schema_cache_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: tablet_schema_helper.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: tablet_schema_index_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: tablet_schema_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: tablet_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: uuid_partial_update_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: tablet_reader_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: timestamped_version_tracker_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: changelog_derive_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: fixed_partial_update_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: flexible_partial_update_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: validate_stage_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: variant_rowstore_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: txn_manager_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: index_storage_variant_compaction_read_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: index_storage_variant_compaction_schema_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: index_storage_variant_debug_point_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: index_storage_variant_dynamic_path_pruning_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: index_storage_variant_expr_pushdown_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: index_storage_variant_field_pattern_index_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: index_storage_variant_io_context_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: index_storage_variant_path_index_lifecycle_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: index_storage_variant_reader_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: index_storage_variant_schema_evolution_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: index_storage_variant_schema_patch_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: index_storage_variant_sparse_stats_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: variant_column_writer_reader_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: variant_compaction_paths_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: variant_doc_mode_compaction_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: variant_stats_calculator_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_utils.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: index_storage_test_util.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: mock_agg_fn_evaluator.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: mock_fn_call.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: mock_in_expr.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: mock_literal_expr.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: mock_slot_ref.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: run_all_tests.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: python_udf_meta_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: doris_metrics_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: jni_plugin_registry_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE jni_utf8_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Line | Count | Source | 717 | 1 | GlobalObject* global_ref) { | 718 | 1 | return Object<Global>::create(env, local_ref, global_ref); | 719 | 1 | } |
Unexecuted instantiation: jni_util_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: profile_spec_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: spill_file_s3_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: spill_file_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: spill_repartitioner_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: unity_0_cxx.cxx:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: config.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: doris_metrics.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: jvm_metrics.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: unity_5_cxx.cxx:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: unity_3_cxx.cxx:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: unity_2_cxx.cxx:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: unity_15_cxx.cxx:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: unity_14_cxx.cxx:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: unity_13_cxx.cxx:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: unity_12_cxx.cxx:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: unity_11_cxx.cxx:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: unity_10_cxx.cxx:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: unity_9_cxx.cxx:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: unity_8_cxx.cxx:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: unity_7_cxx.cxx:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: unity_6_cxx.cxx:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: unity_4_cxx.cxx:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE unity_1_cxx.cxx:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Line | Count | Source | 717 | 1 | GlobalObject* global_ref) { | 718 | 1 | return Object<Global>::create(env, local_ref, global_ref); | 719 | 1 | } |
Unexecuted instantiation: hashjoin_build_sink.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: join_build_sink_operator.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: operator.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: partitioned_aggregation_sink_operator.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: scan_operator.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: vfile_result_writer.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: unity_32_cxx.cxx:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: unity_31_cxx.cxx:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: unity_30_cxx.cxx:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: unity_29_cxx.cxx:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: unity_28_cxx.cxx:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: unity_27_cxx.cxx:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: unity_26_cxx.cxx:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: unity_25_cxx.cxx:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: unity_24_cxx.cxx:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: unity_22_cxx.cxx:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: unity_21_cxx.cxx:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: unity_20_cxx.cxx:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: unity_19_cxx.cxx:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: unity_18_cxx.cxx:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: unity_17_cxx.cxx:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: unity_16_cxx.cxx:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: ai_functions.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_array_aggregation.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_date_or_datetime_computation.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: function_datetime_floor_ceil.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: in.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: arrow_row_batch.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: arrow_stream_reader.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: column_type_convert.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: csv_reader.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: jni_reader.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: new_json_reader.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: parquet_block_split_bloom_filter.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: parquet_column_convert.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: schema_desc.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: vparquet_column_chunk_reader.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: vparquet_column_reader.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: vparquet_group_reader.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: vparquet_page_reader.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: vparquet_reader.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: vparquet_page_index.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: deletion_vector_reader.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: equality_delete.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: es_http_reader.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: hive_reader.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: hive_orc_nested_column_utils.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: hudi_jni_reader.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: hudi_reader.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: iceberg_delete_file_reader_helper.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: iceberg_position_delete_sys_table_reader.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: iceberg_reader.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: iceberg_orc_nested_column_utils.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: iceberg_sys_table_jni_reader.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: index_disk_usage_reader.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: jdbc_jni_reader.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: max_compute_jni_reader.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: paimon_jni_reader.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: paimon_reader.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: parquet_metadata_reader.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: parquet_utils.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: remote_doris_reader.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: table_format_reader.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: table_schema_change_helper.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: trino_connector_jni_reader.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: text_reader.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: iceberg_partition_function.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: merge_partitioner.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: vcsv_transformer.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: vfile_format_transformer_factory.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: viceberg_parquet_writer.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: vjni_format_transformer.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: vorc_transformer.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: vparquet_writer.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: adbc_reader.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: hdfs_file_system.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: unity_23_cxx.cxx:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: index_compound_reader.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: index_disk_usage.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: index_fs_directory.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: zone_map_index.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: vcollect_iterator.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: predicate_creator_comparison.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: predicate_creator_in_list_in.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: predicate_creator_in_list_not_in.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: tablet.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: engine_clone_task.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: http_service.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: internal_service.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: point_query_executor.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: be_server_starter_factory.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: arrow_flight_batch_reader.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: thrift_util.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: load_stream.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: routine_load_task_executor.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: backend_service.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: cloud_compaction_action.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: injection_point_action.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: ann_index_edge_case_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: ann_index_iterator_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: ann_index_reader_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: ann_index_result_cache_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: ann_index_smoke_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: ann_index_writer_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: ann_range_search_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: ann_topn_descriptor_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: ann_topn_runtime_negative_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: extract_query_vector_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: faiss_vector_index_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: vector_search_utils.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE Unexecuted instantiation: virtual_column_iterator_test.cpp:_ZN5doris3JniL19local_to_global_refEP7JNIEnv_RKNS0_6ObjectILNS0_7RefTypeE0EEEPNS3_ILS4_1EEE |
720 | | |
721 | | // auto ReleaseStringUTFChars ReleaseByteArrayElements ... |
722 | | template <BufferType bufferfType, RefType Ref> |
723 | | class BufferGuard { |
724 | | public: |
725 | 0 | BufferGuard() = default; Unexecuted instantiation: _ZN5doris3Jni11BufferGuardILNS0_10BufferTypeE0ELNS0_7RefTypeE0EEC2Ev Unexecuted instantiation: _ZN5doris3Jni11BufferGuardILNS0_10BufferTypeE0ELNS0_7RefTypeE1EEC2Ev |
726 | | |
727 | | template <RefType R> |
728 | | static Status create(JNIEnv* env, const Object<R>& object, |
729 | 0 | BufferGuard<bufferfType, Ref>* result, jboolean* isCopy) { |
730 | 0 | DCHECK(result->_buffer == nullptr && result->_object.uninitialized()); |
731 | |
|
732 | 0 | RETURN_IF_ERROR(Object<Ref>::create(env, object, &result->_object)); |
733 | | |
734 | 0 | if constexpr (bufferfType == BufferType::Chars) { |
735 | 0 | result->_buffer = env->GetStringUTFChars((jstring)result->_object._obj, isCopy); |
736 | | } else if constexpr (bufferfType == BufferType::ByteArray) { |
737 | | result->_buffer = |
738 | | (char*)env->GetByteArrayElements((jbyteArray)result->_object._obj, isCopy); |
739 | | } else { |
740 | | static_assert(false); |
741 | | } |
742 | |
|
743 | 0 | RETURN_ERROR_IF_EXC(env); |
744 | 0 | if (result->_buffer == nullptr) [[unlikely]] { |
745 | 0 | return Status::JniError("GetStringUTFChars/GetByteArrayElements fail."); |
746 | 0 | } |
747 | | |
748 | 0 | return Status::OK(); |
749 | 0 | } Unexecuted instantiation: _ZN5doris3Jni11BufferGuardILNS0_10BufferTypeE0ELNS0_7RefTypeE0EE6createILS3_0EEENS_6StatusEP7JNIEnv_RKNS0_6ObjectIXT_EEEPS4_Ph Unexecuted instantiation: _ZN5doris3Jni11BufferGuardILNS0_10BufferTypeE0ELNS0_7RefTypeE1EE6createILS3_1EEENS_6StatusEP7JNIEnv_RKNS0_6ObjectIXT_EEEPS4_Ph |
750 | | |
751 | 0 | ~BufferGuard() { |
752 | 0 | if (_object.uninitialized() || _buffer == nullptr) [[unlikely]] { |
753 | 0 | return; |
754 | 0 | } |
755 | 0 | JNIEnv* env = nullptr; |
756 | |
|
757 | 0 | if (auto st = RefHelper<Ref>::get_env(&env); !st.ok()) [[unlikely]] { |
758 | 0 | LOG(WARNING) << "BufferGuard release fail: " << st; |
759 | 0 | return; |
760 | 0 | } |
761 | | |
762 | 0 | if constexpr (bufferfType == BufferType::Chars) { |
763 | 0 | env->ReleaseStringUTFChars((jstring)_object._obj, _buffer); |
764 | | } else if constexpr (bufferfType == BufferType::ByteArray) { |
765 | | env->ReleaseByteArrayElements((jbyteArray)_object._obj, (jbyte*)_buffer, JNI_ABORT); |
766 | | } |
767 | 0 | } Unexecuted instantiation: _ZN5doris3Jni11BufferGuardILNS0_10BufferTypeE0ELNS0_7RefTypeE0EED2Ev Unexecuted instantiation: _ZN5doris3Jni11BufferGuardILNS0_10BufferTypeE0ELNS0_7RefTypeE1EED2Ev |
768 | | |
769 | 0 | const char* get() const { return _buffer; }Unexecuted instantiation: _ZNK5doris3Jni11BufferGuardILNS0_10BufferTypeE0ELNS0_7RefTypeE0EE3getEv Unexecuted instantiation: _ZNK5doris3Jni11BufferGuardILNS0_10BufferTypeE0ELNS0_7RefTypeE1EE3getEv |
770 | | |
771 | | private: |
772 | | Object<Ref> _object; |
773 | | const char* _buffer = nullptr; |
774 | | |
775 | | DISALLOW_COPY_AND_ASSIGN(BufferGuard); |
776 | | }; |
777 | | |
778 | | template <RefType Ref> |
779 | | using StringBufferGuard = BufferGuard<Chars, Ref>; |
780 | | using LocalStringBufferGuard = BufferGuard<Chars, Local>; |
781 | | using GlobalStringBufferGuard = BufferGuard<Chars, Global>; |
782 | | |
783 | | template <RefType Ref> |
784 | | using ByteArrayBufferGuard = BufferGuard<ByteArray, Ref>; |
785 | | using LocalByteArrayBufferGuard = BufferGuard<ByteArray, Local>; |
786 | | using GlobalByteArrayBufferGuard = BufferGuard<ByteArray, Global>; |
787 | | |
788 | | // Reads a borrowed Java String as standard UTF-8 without taking ownership of the reference. |
789 | | Status get_string_utf8(JNIEnv* env, jstring value, std::string* result); |
790 | | |
791 | | template <RefType Ref> |
792 | | class String : public Object<Ref> { |
793 | | public: |
794 | 6 | String() = default; _ZN5doris3Jni6StringILNS0_7RefTypeE0EEC2Ev Line | Count | Source | 794 | 4 | String() = default; |
_ZN5doris3Jni6StringILNS0_7RefTypeE1EEC2Ev Line | Count | Source | 794 | 2 | String() = default; |
|
795 | | |
796 | | // Accepts JNI modified UTF-8. Use new_string_utf8 for standard UTF-8, e.g. scanner SQL. |
797 | 3 | static Status new_string(JNIEnv* env, const char* utf_chars, String<Ref>* result) { |
798 | 3 | DCHECK(result->uninitialized()); |
799 | | |
800 | 3 | if constexpr (Ref == Local) { |
801 | 2 | result->_obj = env->NewStringUTF(utf_chars); |
802 | 2 | RETURN_ERROR_IF_EXC(env); |
803 | 2 | } else if constexpr (Ref == Global) { |
804 | 1 | String<Local> local_result; |
805 | 1 | RETURN_IF_ERROR(String<Local>::new_string(env, utf_chars, &local_result)); |
806 | 1 | RETURN_IF_ERROR(local_to_global_ref(env, local_result, result)); |
807 | | } else { |
808 | | static_assert(false); |
809 | | } |
810 | | // JNI allocation may return null without a pending exception. |
811 | 3 | if (result->uninitialized()) { |
812 | 2 | return Status::JniError("Failed to allocate modified UTF-8 Java string reference"); |
813 | 2 | } |
814 | 1 | return Status::OK(); |
815 | 3 | } _ZN5doris3Jni6StringILNS0_7RefTypeE0EE10new_stringEP7JNIEnv_PKcPS3_ Line | Count | Source | 797 | 2 | static Status new_string(JNIEnv* env, const char* utf_chars, String<Ref>* result) { | 798 | 2 | DCHECK(result->uninitialized()); | 799 | | | 800 | 2 | if constexpr (Ref == Local) { | 801 | 2 | result->_obj = env->NewStringUTF(utf_chars); | 802 | 2 | RETURN_ERROR_IF_EXC(env); | 803 | | } else if constexpr (Ref == Global) { | 804 | | String<Local> local_result; | 805 | | RETURN_IF_ERROR(String<Local>::new_string(env, utf_chars, &local_result)); | 806 | | RETURN_IF_ERROR(local_to_global_ref(env, local_result, result)); | 807 | | } else { | 808 | | static_assert(false); | 809 | | } | 810 | | // JNI allocation may return null without a pending exception. | 811 | 2 | if (result->uninitialized()) { | 812 | 1 | return Status::JniError("Failed to allocate modified UTF-8 Java string reference"); | 813 | 1 | } | 814 | 1 | return Status::OK(); | 815 | 2 | } |
_ZN5doris3Jni6StringILNS0_7RefTypeE1EE10new_stringEP7JNIEnv_PKcPS3_ Line | Count | Source | 797 | 1 | static Status new_string(JNIEnv* env, const char* utf_chars, String<Ref>* result) { | 798 | 1 | DCHECK(result->uninitialized()); | 799 | | | 800 | | if constexpr (Ref == Local) { | 801 | | result->_obj = env->NewStringUTF(utf_chars); | 802 | | RETURN_ERROR_IF_EXC(env); | 803 | 1 | } else if constexpr (Ref == Global) { | 804 | 1 | String<Local> local_result; | 805 | 1 | RETURN_IF_ERROR(String<Local>::new_string(env, utf_chars, &local_result)); | 806 | 1 | RETURN_IF_ERROR(local_to_global_ref(env, local_result, result)); | 807 | | } else { | 808 | | static_assert(false); | 809 | | } | 810 | | // JNI allocation may return null without a pending exception. | 811 | 1 | if (result->uninitialized()) { | 812 | 1 | return Status::JniError("Failed to allocate modified UTF-8 Java string reference"); | 813 | 1 | } | 814 | 0 | return Status::OK(); | 815 | 1 | } |
|
816 | | |
817 | | // Decodes standard UTF-8, including supplementary characters and embedded NULs. |
818 | | static Status new_string_utf8(JNIEnv* env, std::string_view utf_chars, String<Ref>* result); |
819 | | |
820 | 0 | Status get_string_chars(JNIEnv* env, StringBufferGuard<Ref>* jni_chars) const { |
821 | 0 | return StringBufferGuard<Ref>::create(env, *this, jni_chars, nullptr); |
822 | 0 | } Unexecuted instantiation: _ZNK5doris3Jni6StringILNS0_7RefTypeE0EE16get_string_charsEP7JNIEnv_PNS0_11BufferGuardILNS0_10BufferTypeE0ELS2_0EEE Unexecuted instantiation: _ZNK5doris3Jni6StringILNS0_7RefTypeE1EE16get_string_charsEP7JNIEnv_PNS0_11BufferGuardILNS0_10BufferTypeE0ELS2_1EEE |
823 | | |
824 | | // Unlike get_string_chars (JNI modified UTF-8), preserves standard UTF-8 and embedded NULs. |
825 | | // Rejects unpaired UTF-16 surrogates instead of replacing them. |
826 | 0 | Status get_string_utf8(JNIEnv* env, std::string* result) const { |
827 | 0 | DCHECK(!this->uninitialized()); |
828 | 0 | return Jni::get_string_utf8(env, static_cast<jstring>(this->_obj), result); |
829 | 0 | } Unexecuted instantiation: _ZNK5doris3Jni6StringILNS0_7RefTypeE0EE15get_string_utf8EP7JNIEnv_PNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE Unexecuted instantiation: _ZNK5doris3Jni6StringILNS0_7RefTypeE1EE15get_string_utf8EP7JNIEnv_PNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE |
830 | | |
831 | | private: |
832 | | DISALLOW_COPY_AND_ASSIGN(String); |
833 | | }; |
834 | | |
835 | | extern template Status String<Local>::new_string_utf8(JNIEnv*, std::string_view, String<Local>*); |
836 | | extern template Status String<Global>::new_string_utf8(JNIEnv*, std::string_view, String<Global>*); |
837 | | |
838 | | template <RefType Ref> |
839 | | class Array : public Object<Ref> { |
840 | | public: |
841 | 0 | Array() = default; |
842 | | |
843 | 0 | Status get_length(JNIEnv* env, jsize* result) const { |
844 | 0 | DCHECK(!this->uninitialized()); |
845 | |
|
846 | 0 | *result = env->GetArrayLength((jarray)this->_obj); |
847 | 0 | RETURN_ERROR_IF_EXC(env); |
848 | 0 | return Status::OK(); |
849 | 0 | } |
850 | | |
851 | 0 | Status get_object_array_element(JNIEnv* env, jsize index, Jni::LocalObject* result) { |
852 | 0 | DCHECK(!this->uninitialized()); |
853 | 0 | DCHECK(result->uninitialized()); |
854 | 0 | result->_obj = env->GetObjectArrayElement((jobjectArray)this->_obj, index); |
855 | 0 | RETURN_ERROR_IF_EXC(env); |
856 | 0 | return Status::OK(); |
857 | 0 | } |
858 | | |
859 | | Status get_byte_elements(JNIEnv* env, ByteArrayBufferGuard<Ref>* jni_bytes) const { |
860 | | DCHECK(!this->uninitialized()); |
861 | | return ByteArrayBufferGuard<Ref>::create(env, *this, jni_bytes, nullptr); |
862 | | } |
863 | | |
864 | 0 | Status get_byte_elements(JNIEnv* env, jsize start, jsize len, jbyte* buffer) { |
865 | 0 | DCHECK(!this->uninitialized()); |
866 | 0 | env->GetByteArrayRegion((jbyteArray)this->_obj, start, len, buffer); |
867 | 0 | RETURN_ERROR_IF_EXC(env); |
868 | 0 | return Status::OK(); |
869 | 0 | } |
870 | | |
871 | | static Status WriteBufferToByteArray(JNIEnv* env, const jbyte* buffer, jint size, |
872 | 0 | Array<Local>* serialized_msg) { |
873 | 0 | DCHECK(serialized_msg->uninitialized()); |
874 | | /// create jbyteArray given buffer |
875 | 0 | serialized_msg->_obj = env->NewByteArray(size); |
876 | 0 | RETURN_ERROR_IF_EXC(env); |
877 | 0 | if (serialized_msg->_obj == nullptr) [[unlikely]] { |
878 | 0 | return Status::JniError("couldn't construct jbyteArray"); |
879 | 0 | } |
880 | 0 | env->SetByteArrayRegion((jbyteArray)serialized_msg->_obj, 0, size, buffer); |
881 | 0 | RETURN_ERROR_IF_EXC(env); |
882 | 0 | return Status::OK(); |
883 | 0 | } |
884 | | |
885 | | template <class T> |
886 | 0 | static Status SerializeThriftMsg(JNIEnv* env, T* msg, Array<Local>* serialized_msg) { |
887 | 0 | int buffer_size = 100 * 1024; // start out with 100KB |
888 | 0 | ThriftSerializer serializer(false, buffer_size); |
889 | |
|
890 | 0 | uint8_t* buffer = nullptr; |
891 | 0 | uint32_t size = 0; |
892 | 0 | RETURN_IF_ERROR(serializer.serialize(msg, &size, &buffer)); |
893 | | |
894 | | // Make sure that 'size' is within the limit of INT_MAX as the use of |
895 | | // 'size' below takes int. |
896 | 0 | if (size > INT_MAX) [[unlikely]] { |
897 | 0 | return Status::JniError( |
898 | 0 | "The length of the serialization buffer ({} bytes) exceeds the limit of {} " |
899 | 0 | "bytes", |
900 | 0 | size, INT_MAX); |
901 | 0 | } |
902 | 0 | RETURN_IF_ERROR(WriteBufferToByteArray(env, (jbyte*)buffer, size, serialized_msg)); |
903 | 0 | return Status::OK(); |
904 | 0 | } |
905 | | |
906 | | private: |
907 | | DISALLOW_COPY_AND_ASSIGN(Array); |
908 | | }; |
909 | | |
910 | | template <RefType Ref> |
911 | | class Class : public Object<Ref> { |
912 | | public: |
913 | 12 | Class() = default; _ZN5doris3Jni5ClassILNS0_7RefTypeE0EEC2Ev Line | Count | Source | 913 | 2 | Class() = default; |
_ZN5doris3Jni5ClassILNS0_7RefTypeE1EEC2Ev Line | Count | Source | 913 | 10 | Class() = default; |
|
914 | | |
915 | 2 | static Status find_class(JNIEnv* env, const char* class_str, Class<Ref>* result) { |
916 | 2 | DCHECK(result->uninitialized()); |
917 | 2 | if constexpr (Ref == Local) { |
918 | 2 | result->_obj = env->FindClass(class_str); |
919 | 2 | RETURN_ERROR_IF_EXC(env); |
920 | 2 | return Status::OK(); |
921 | 2 | } else if constexpr (Ref == Global) { |
922 | 0 | Class<Local> local_class; |
923 | 0 | local_class._obj = env->FindClass(class_str); |
924 | 0 | RETURN_ERROR_IF_EXC(env); |
925 | 0 | return local_to_global_ref(env, local_class, result); |
926 | | } else { |
927 | | static_assert(false); |
928 | | } |
929 | 2 | } _ZN5doris3Jni5ClassILNS0_7RefTypeE0EE10find_classEP7JNIEnv_PKcPS3_ Line | Count | Source | 915 | 2 | static Status find_class(JNIEnv* env, const char* class_str, Class<Ref>* result) { | 916 | 2 | DCHECK(result->uninitialized()); | 917 | 2 | if constexpr (Ref == Local) { | 918 | 2 | result->_obj = env->FindClass(class_str); | 919 | 2 | RETURN_ERROR_IF_EXC(env); | 920 | 2 | return Status::OK(); | 921 | | } else if constexpr (Ref == Global) { | 922 | | Class<Local> local_class; | 923 | | local_class._obj = env->FindClass(class_str); | 924 | | RETURN_ERROR_IF_EXC(env); | 925 | | return local_to_global_ref(env, local_class, result); | 926 | | } else { | 927 | | static_assert(false); | 928 | | } | 929 | 2 | } |
Unexecuted instantiation: _ZN5doris3Jni5ClassILNS0_7RefTypeE1EE10find_classEP7JNIEnv_PKcPS3_ |
930 | | |
931 | | /** |
932 | | * The class of an object that is already in hand. |
933 | | * |
934 | | * Needed where a class cannot be named: an object produced by a plugin is an instance of a |
935 | | * class inside that plugin's classloader, which FindClass - searching BE's own loader - |
936 | | * cannot see. Asking the object is the only way to reach it. |
937 | | */ |
938 | | template <RefType R> |
939 | 0 | static Status get_object_class(JNIEnv* env, const Object<R>& object, Class<Ref>* result) { |
940 | 0 | DCHECK(!object.uninitialized()); |
941 | 0 | DCHECK(result->uninitialized()); |
942 | 0 | if constexpr (Ref == Local) { |
943 | 0 | result->_obj = env->GetObjectClass(object._obj); |
944 | 0 | RETURN_ERROR_IF_EXC(env); |
945 | 0 | return Status::OK(); |
946 | 0 | } else if constexpr (Ref == Global) { |
947 | 0 | Class<Local> local_class; |
948 | 0 | local_class._obj = env->GetObjectClass(object._obj); |
949 | 0 | RETURN_ERROR_IF_EXC(env); |
950 | 0 | return local_to_global_ref(env, local_class, result); |
951 | | } else { |
952 | | static_assert(false); |
953 | | } |
954 | 0 | } Unexecuted instantiation: _ZN5doris3Jni5ClassILNS0_7RefTypeE0EE16get_object_classILS2_1EEENS_6StatusEP7JNIEnv_RKNS0_6ObjectIXT_EEEPS3_ Unexecuted instantiation: _ZN5doris3Jni5ClassILNS0_7RefTypeE1EE16get_object_classILS2_1EEENS_6StatusEP7JNIEnv_RKNS0_6ObjectIXT_EEEPS3_ |
955 | | |
956 | | /** |
957 | | * Whether an object is an instance of this class. |
958 | | * |
959 | | * The one way to check the kind of something a plugin handed back: the object's own class is |
960 | | * private to the plugin's classloader, so the only comparable identity is a shared base class |
961 | | * BE resolved itself. IsInstanceOf raises no exception, hence the plain bool. |
962 | | */ |
963 | | template <RefType R> |
964 | 0 | bool is_instance(JNIEnv* env, const Object<R>& object) const { |
965 | 0 | DCHECK(!this->uninitialized()); |
966 | 0 | DCHECK(!object.uninitialized()); |
967 | 0 | return env->IsInstanceOf(object._obj, (jclass)this->_obj) == JNI_TRUE; |
968 | 0 | } |
969 | | |
970 | | Status get_static_method(JNIEnv* env, const char* method_str, const char* method_signature, |
971 | 0 | MethodId* method_id) const { |
972 | 0 | DCHECK(!this->uninitialized()); |
973 | 0 | DCHECK(method_id->uninitialized()); |
974 | 0 | method_id->_id = env->GetStaticMethodID((jclass)this->_obj, method_str, method_signature); |
975 | 0 | RETURN_ERROR_IF_EXC(env); |
976 | 0 | return Status::OK(); |
977 | 0 | } Unexecuted instantiation: _ZNK5doris3Jni5ClassILNS0_7RefTypeE1EE17get_static_methodEP7JNIEnv_PKcS7_PNS0_8MethodIdE Unexecuted instantiation: _ZNK5doris3Jni5ClassILNS0_7RefTypeE0EE17get_static_methodEP7JNIEnv_PKcS7_PNS0_8MethodIdE |
978 | | |
979 | | Status get_method(JNIEnv* env, const char* method_str, const char* method_signature, |
980 | 0 | MethodId* method_id) const { |
981 | 0 | DCHECK(!this->uninitialized()); |
982 | 0 | DCHECK(method_id->uninitialized()); |
983 | 0 | method_id->_id = env->GetMethodID((jclass)this->_obj, method_str, method_signature); |
984 | 0 | RETURN_ERROR_IF_EXC(env); |
985 | 0 | return Status::OK(); |
986 | 0 | } Unexecuted instantiation: _ZNK5doris3Jni5ClassILNS0_7RefTypeE0EE10get_methodEP7JNIEnv_PKcS7_PNS0_8MethodIdE Unexecuted instantiation: _ZNK5doris3Jni5ClassILNS0_7RefTypeE1EE10get_methodEP7JNIEnv_PKcS7_PNS0_8MethodIdE |
987 | | |
988 | | Status get_static_fieldId(JNIEnv* env, const char* name, const char* signature, |
989 | 0 | FieldId* field_id) const { |
990 | 0 | DCHECK(!this->uninitialized()); |
991 | 0 | DCHECK(field_id->uninitialized()); |
992 | 0 | field_id->_id = env->GetStaticFieldID((jclass)this->_obj, name, signature); |
993 | 0 | RETURN_ERROR_IF_EXC(env); |
994 | 0 | return Status::OK(); |
995 | 0 | } |
996 | | |
997 | | Status get_static_object_field(JNIEnv* env, const FieldId& field_id, |
998 | | Object<Local>* result) const { |
999 | | DCHECK(!this->uninitialized()); |
1000 | | DCHECK(!field_id.uninitialized()); |
1001 | | result->_obj = env->GetStaticObjectField((jclass)this->_obj, field_id._id); |
1002 | | RETURN_ERROR_IF_EXC(env); |
1003 | | return Status::OK(); |
1004 | | } |
1005 | | |
1006 | | Status get_static_object_field(JNIEnv* env, const FieldId& field_id, |
1007 | 0 | Object<Global>* global_result) const { |
1008 | 0 | DCHECK(!this->uninitialized()); |
1009 | 0 | DCHECK(!field_id.uninitialized()); |
1010 | 0 | Object<Local> local_result; |
1011 | 0 | local_result._obj = env->GetStaticObjectField((jclass)this->_obj, field_id._id); |
1012 | 0 | RETURN_ERROR_IF_EXC(env); |
1013 | 0 | return local_to_global_ref(env, local_result, global_result); |
1014 | 0 | } |
1015 | | |
1016 | | Status get_static_object_field(JNIEnv* env, const char* name, const char* signature, |
1017 | 0 | Object<Global>* global_result) const { |
1018 | 0 | Jni::FieldId tmpFieldID; |
1019 | 0 | RETURN_IF_ERROR(get_static_fieldId(env, name, signature, &tmpFieldID)); |
1020 | 0 | RETURN_IF_ERROR(get_static_object_field(env, tmpFieldID, global_result)); |
1021 | 0 | return Status::OK(); |
1022 | 0 | } |
1023 | | |
1024 | 0 | FunctionCall<NewObject> new_object(JNIEnv* env, MethodId method_id) const { |
1025 | 0 | DCHECK(!this->uninitialized()); |
1026 | 0 | DCHECK(!method_id.uninitialized()); |
1027 | 0 | return FunctionCall<NewObject>::instance(env, (jclass)this->_obj, method_id._id); |
1028 | 0 | } Unexecuted instantiation: _ZNK5doris3Jni5ClassILNS0_7RefTypeE1EE10new_objectEP7JNIEnv_NS0_8MethodIdE Unexecuted instantiation: _ZNK5doris3Jni5ClassILNS0_7RefTypeE0EE10new_objectEP7JNIEnv_NS0_8MethodIdE |
1029 | | |
1030 | | FunctionCall<StaticObjectMethod> call_static_object_method(JNIEnv* env, |
1031 | 0 | MethodId method_id) const { |
1032 | 0 | DCHECK(!this->uninitialized()); |
1033 | 0 | DCHECK(!method_id.uninitialized()); |
1034 | 0 | return FunctionCall<StaticObjectMethod>::instance(env, (jclass)this->_obj, method_id._id); |
1035 | 0 | } Unexecuted instantiation: _ZNK5doris3Jni5ClassILNS0_7RefTypeE1EE25call_static_object_methodEP7JNIEnv_NS0_8MethodIdE Unexecuted instantiation: _ZNK5doris3Jni5ClassILNS0_7RefTypeE0EE25call_static_object_methodEP7JNIEnv_NS0_8MethodIdE |
1036 | | |
1037 | 0 | FunctionCall<StaticVoidMethod> call_static_void_method(JNIEnv* env, MethodId method_id) const { |
1038 | 0 | DCHECK(!this->uninitialized()); |
1039 | 0 | DCHECK(!method_id.uninitialized()); |
1040 | 0 | return FunctionCall<StaticVoidMethod>::instance(env, (jclass)this->_obj, method_id._id); |
1041 | 0 | } Unexecuted instantiation: _ZNK5doris3Jni5ClassILNS0_7RefTypeE1EE23call_static_void_methodEP7JNIEnv_NS0_8MethodIdE Unexecuted instantiation: _ZNK5doris3Jni5ClassILNS0_7RefTypeE0EE23call_static_void_methodEP7JNIEnv_NS0_8MethodIdE |
1042 | | |
1043 | | private: |
1044 | | DISALLOW_COPY_AND_ASSIGN(Class); |
1045 | | }; |
1046 | | |
1047 | | using LocalClass = Class<Local>; |
1048 | | using GlobalClass = Class<Global>; |
1049 | | |
1050 | | using LocalArray = Array<Local>; |
1051 | | using GlobalArray = Array<Global>; |
1052 | | |
1053 | | using LocalString = String<Local>; |
1054 | | using GlobalString = String<Global>; |
1055 | | |
1056 | | template <CallTag tag> |
1057 | | template <RefType Ref> |
1058 | 0 | FunctionCall<tag>& FunctionCall<tag>::with_arg(const Object<Ref>& obj) { |
1059 | 0 | jvalue v; |
1060 | 0 | std::memset(&v, 0, sizeof(v)); |
1061 | 0 | v.l = obj._obj; |
1062 | 0 | _args.push_back(v); |
1063 | 0 | return *this; |
1064 | 0 | } Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE0EE8with_argILNS0_7RefTypeE0EEERS3_RKNS0_6ObjectIXT_EEE Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE4EE8with_argILNS0_7RefTypeE0EEERS3_RKNS0_6ObjectIXT_EEE Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE5EE8with_argILNS0_7RefTypeE0EEERS3_RKNS0_6ObjectIXT_EEE Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE8EE8with_argILNS0_7RefTypeE0EEERS3_RKNS0_6ObjectIXT_EEE Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE3EE8with_argILNS0_7RefTypeE0EEERS3_RKNS0_6ObjectIXT_EEE Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE2EE8with_argILNS0_7RefTypeE0EEERS3_RKNS0_6ObjectIXT_EEE |
1065 | | |
1066 | | template <CallTag tag> |
1067 | | template <RefType Ref> |
1068 | 0 | NonvirtualFunctionCall<tag>& NonvirtualFunctionCall<tag>::with_arg(const Object<Ref>& obj) { |
1069 | 0 | jvalue v; |
1070 | 0 | std::memset(&v, 0, sizeof(v)); |
1071 | 0 | v.l = obj._obj; |
1072 | 0 | this->_args.push_back(v); |
1073 | 0 | return *this; |
1074 | 0 | } |
1075 | | |
1076 | | template <CallTag tag> |
1077 | 0 | Status FunctionCall<tag>::call(Object<Local>* result) { |
1078 | 0 | DCHECK(result->uninitialized()); |
1079 | 0 | result->_obj = CallHelper<tag>::call_impl(_env, _base, _method, _args.data()); |
1080 | 0 | RETURN_ERROR_IF_EXC(this->_env); |
1081 | 0 | return Status::OK(); |
1082 | 0 | } Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE9EE4callEPNS0_6ObjectILNS0_7RefTypeE0EEE Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE0EE4callEPNS0_6ObjectILNS0_7RefTypeE0EEE Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE5EE4callEPNS0_6ObjectILNS0_7RefTypeE0EEE |
1083 | | |
1084 | | template <CallTag tag> |
1085 | 0 | Status FunctionCall<tag>::call(Object<Global>* result) { |
1086 | 0 | DCHECK(result->uninitialized()); |
1087 | 0 | Object<Local> local_result; |
1088 | 0 | local_result._obj = CallHelper<tag>::call_impl(_env, _base, _method, _args.data()); |
1089 | 0 | RETURN_ERROR_IF_EXC(this->_env); |
1090 | 0 | return local_to_global_ref(_env, local_result, result); |
1091 | 0 | } Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE9EE4callEPNS0_6ObjectILNS0_7RefTypeE1EEE Unexecuted instantiation: _ZN5doris3Jni12FunctionCallILNS0_7CallTagE5EE4callEPNS0_6ObjectILNS0_7RefTypeE1EEE |
1092 | | |
1093 | | template <CallTag tag> |
1094 | 0 | Status NonvirtualFunctionCall<tag>::call(Object<Local>* result) { |
1095 | 0 | DCHECK(result->uninitialized()); |
1096 | 0 | result->_obj = CallHelper<tag>::call_impl(this->_env, this->_base, _cls, this->_method, |
1097 | 0 | this->_args.data()); |
1098 | 0 | RETURN_ERROR_IF_EXC(this->_env); |
1099 | 0 | return Status::OK(); |
1100 | 0 | } |
1101 | | |
1102 | | template <RefType Ref> |
1103 | | template <RefType R> |
1104 | | NonvirtualFunctionCall<NonvirtualObjectMethod> Object<Ref>::call_nonvirtual_object_method( |
1105 | 0 | JNIEnv* env, const Class<R>& clazz, MethodId method_id) const { |
1106 | 0 | DCHECK(!this->uninitialized()); |
1107 | 0 | DCHECK(!method_id.uninitialized()); |
1108 | |
|
1109 | 0 | return NonvirtualFunctionCall<NonvirtualObjectMethod>::instance(env, _obj, (jclass)clazz._obj, |
1110 | 0 | method_id._id); |
1111 | 0 | } |
1112 | | |
1113 | | template <RefType Ref> |
1114 | | template <RefType R> |
1115 | | NonvirtualFunctionCall<NonvirtualVoidMethod> Object<Ref>::call_nonvirtual_void_method( |
1116 | 0 | JNIEnv* env, const Class<R>& clazz, MethodId method_id) const { |
1117 | 0 | DCHECK(!this->uninitialized()); |
1118 | 0 | DCHECK(!method_id.uninitialized()); |
1119 | 0 | return NonvirtualFunctionCall<NonvirtualVoidMethod>::instance(env, _obj, (jclass)clazz._obj, |
1120 | 0 | method_id._id); |
1121 | 0 | } |
1122 | | |
1123 | | template <RefType Ref> |
1124 | | template <RefType R> |
1125 | | NonvirtualFunctionCall<NonvirtualIntMethod> Object<Ref>::call_nonvirtual_int_method( |
1126 | | JNIEnv* env, const Class<R>& clazz, MethodId method_id) const { |
1127 | | DCHECK(!this->uninitialized()); |
1128 | | DCHECK(!method_id.uninitialized()); |
1129 | | return NonvirtualFunctionCall<NonvirtualIntMethod>::instance(env, _obj, (jclass)clazz._obj, |
1130 | | method_id._id); |
1131 | | } |
1132 | | |
1133 | | template <RefType Ref> |
1134 | | template <RefType R> |
1135 | | NonvirtualFunctionCall<NonvirtualBooleanMethod> Object<Ref>::call_nonvirtual_boolean_method( |
1136 | | JNIEnv* env, const Class<R>& clazz, MethodId method_id) const { |
1137 | | DCHECK(!this->uninitialized()); |
1138 | | DCHECK(!method_id.uninitialized()); |
1139 | | return NonvirtualFunctionCall<NonvirtualBooleanMethod>::instance(env, _obj, (jclass)clazz._obj, |
1140 | | method_id._id); |
1141 | | } |
1142 | | |
1143 | | class Util { |
1144 | | public: |
1145 | | static size_t get_max_jni_heap_memory_size(); |
1146 | | |
1147 | | template <RefType Ref> |
1148 | 2 | static Status find_class(JNIEnv* env, const char* class_str, Class<Ref>* result) { |
1149 | 2 | return Class<Ref>::find_class(env, class_str, result); |
1150 | 2 | } _ZN5doris3Jni4Util10find_classILNS0_7RefTypeE0EEENS_6StatusEP7JNIEnv_PKcPNS0_5ClassIXT_EEE Line | Count | Source | 1148 | 2 | static Status find_class(JNIEnv* env, const char* class_str, Class<Ref>* result) { | 1149 | 2 | return Class<Ref>::find_class(env, class_str, result); | 1150 | 2 | } |
Unexecuted instantiation: _ZN5doris3Jni4Util10find_classILNS0_7RefTypeE1EEENS_6StatusEP7JNIEnv_PKcPNS0_5ClassIXT_EEE |
1151 | | |
1152 | | template <RefType Ref, RefType R> |
1153 | 0 | static Status get_object_class(JNIEnv* env, const Object<R>& object, Class<Ref>* result) { |
1154 | 0 | return Class<Ref>::get_object_class(env, object, result); |
1155 | 0 | } Unexecuted instantiation: _ZN5doris3Jni4Util16get_object_classILNS0_7RefTypeE0ELS3_1EEENS_6StatusEP7JNIEnv_RKNS0_6ObjectIXT0_EEEPNS0_5ClassIXT_EEE Unexecuted instantiation: _ZN5doris3Jni4Util16get_object_classILNS0_7RefTypeE1ELS3_1EEENS_6StatusEP7JNIEnv_RKNS0_6ObjectIXT0_EEEPNS0_5ClassIXT_EEE |
1156 | | |
1157 | | template <RefType Ref> |
1158 | | static Status WriteBufferToByteArray(JNIEnv* env, const jbyte* buffer, jint size, |
1159 | 0 | Array<Ref>* serialized_msg) { |
1160 | 0 | if constexpr (Ref == Local) { |
1161 | 0 | return Array<Local>::WriteBufferToByteArray(env, buffer, size, serialized_msg); |
1162 | | } else if constexpr (Ref == Global) { |
1163 | | Array<Local> local_obj; |
1164 | | RETURN_IF_ERROR(Array<Local>::WriteBufferToByteArray(env, buffer, size, &local_obj)); |
1165 | | return local_to_global_ref(env, local_obj, serialized_msg); |
1166 | | } else { |
1167 | | static_assert(false); |
1168 | | } |
1169 | 0 | } |
1170 | | |
1171 | | template <class T, RefType Ref> |
1172 | 0 | static Status SerializeThriftMsg(JNIEnv* env, T* msg, Array<Ref>* serialized_msg) { |
1173 | 0 | if constexpr (Ref == Local) { |
1174 | 0 | return Array<Local>::SerializeThriftMsg(env, msg, serialized_msg); |
1175 | | } else if (Ref == Global) { |
1176 | | Array<Local> local_obj; |
1177 | | RETURN_IF_ERROR(Array<Local>::SerializeThriftMsg(env, msg, local_obj)); |
1178 | | return local_to_global_ref(env, local_obj, serialized_msg); |
1179 | | } else { |
1180 | | static_assert(false); |
1181 | | } |
1182 | 0 | } |
1183 | | |
1184 | | template <RefType Ref> |
1185 | | static Status convert_to_java_map(JNIEnv* env, const std::map<std::string, std::string>& map, |
1186 | 0 | Object<Ref>* hashmap_object) { |
1187 | 0 | RETURN_IF_ERROR(hashmap_class.new_object(env, hashmap_constructor) |
1188 | 0 | .with_arg((jint)map.size()) |
1189 | 0 | .call(hashmap_object)); |
1190 | | |
1191 | 0 | for (const auto& it : map) { |
1192 | 0 | LocalString key; |
1193 | 0 | RETURN_IF_ERROR(String<Local>::new_string_utf8(env, it.first, &key)); |
1194 | | |
1195 | 0 | LocalString value; |
1196 | 0 | RETURN_IF_ERROR(String<Local>::new_string_utf8(env, it.second, &value)); |
1197 | | |
1198 | 0 | LocalObject result; |
1199 | 0 | RETURN_IF_ERROR(hashmap_object->call_object_method(env, hashmap_put) |
1200 | 0 | .with_arg(key) |
1201 | 0 | .with_arg(value) |
1202 | 0 | .call()); |
1203 | 0 | } |
1204 | 0 | return Status::OK(); |
1205 | 0 | } Unexecuted instantiation: _ZN5doris3Jni4Util19convert_to_java_mapILNS0_7RefTypeE0EEENS_6StatusEP7JNIEnv_RKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESD_St4lessISD_ESaISt4pairIKSD_SD_EEEPNS0_6ObjectIXT_EEE Unexecuted instantiation: _ZN5doris3Jni4Util19convert_to_java_mapILNS0_7RefTypeE1EEENS_6StatusEP7JNIEnv_RKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESD_St4lessISD_ESaISt4pairIKSD_SD_EEEPNS0_6ObjectIXT_EEE |
1206 | | |
1207 | | template <RefType Ref> |
1208 | | static Status convert_to_cpp_map(JNIEnv* env, const Object<Ref>& map, |
1209 | 0 | std::map<std::string, std::string>* resultMap) { |
1210 | 0 | LocalObject entrySet; |
1211 | 0 | RETURN_IF_ERROR(map.call_object_method(env, mapEntrySetMethod).call(&entrySet)); |
1212 | | |
1213 | | // Call the iterator method on the set to iterate over the key-value pairs |
1214 | 0 | LocalObject iteratorSet; |
1215 | 0 | RETURN_IF_ERROR(entrySet.call_object_method(env, iteratorSetMethod).call(&iteratorSet)); |
1216 | | |
1217 | 0 | while (true) { |
1218 | 0 | jboolean hasNext = false; |
1219 | 0 | RETURN_IF_ERROR( |
1220 | 0 | iteratorSet.call_boolean_method(env, iteratorHasNextMethod).call(&hasNext)); |
1221 | 0 | if (!hasNext) { |
1222 | 0 | break; |
1223 | 0 | } |
1224 | | |
1225 | 0 | LocalObject entry; |
1226 | 0 | RETURN_IF_ERROR(iteratorSet.call_object_method(env, iteratorNextMethod).call(&entry)); |
1227 | | |
1228 | 0 | LocalString javaKey; |
1229 | 0 | RETURN_IF_ERROR(entry.call_object_method(env, getEntryKeyMethod).call(&javaKey)); |
1230 | | |
1231 | 0 | LocalString javaValue; |
1232 | 0 | RETURN_IF_ERROR(entry.call_object_method(env, getEntryValueMethod).call(&javaValue)); |
1233 | | |
1234 | 0 | std::string key; |
1235 | 0 | RETURN_IF_ERROR(javaKey.get_string_utf8(env, &key)); |
1236 | | |
1237 | 0 | std::string value; |
1238 | 0 | RETURN_IF_ERROR(javaValue.get_string_utf8(env, &value)); |
1239 | | |
1240 | | // Store the key-value pair in the map |
1241 | 0 | (*resultMap)[std::move(key)] = std::move(value); |
1242 | 0 | } |
1243 | 0 | return Status::OK(); |
1244 | 0 | } Unexecuted instantiation: _ZN5doris3Jni4Util18convert_to_cpp_mapILNS0_7RefTypeE0EEENS_6StatusEP7JNIEnv_RKNS0_6ObjectIXT_EEEPSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESH_St4lessISH_ESaISt4pairIKSH_SH_EEE Unexecuted instantiation: _ZN5doris3Jni4Util18convert_to_cpp_mapILNS0_7RefTypeE1EEENS_6StatusEP7JNIEnv_RKNS0_6ObjectIXT_EEEPSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESH_St4lessISH_ESaISt4pairIKSH_SH_EEE |
1245 | | |
1246 | | // The outcome of the one attempt to resolve the JNI base, or nullopt when nothing has |
1247 | | // attempted it yet. Public, unlike ensure_jni_base() below, precisely because it never |
1248 | | // triggers the attempt: this is what a reader that must not create a JVM asks - the |
1249 | | // /api/jni_plugin_status endpoint, which exists to answer "why is Java not working here" |
1250 | | // and would otherwise have to start a JVM to find out. |
1251 | | static std::optional<Status> jni_base_outcome(); |
1252 | | |
1253 | | private: |
1254 | | // Resolves everything the BE needs from the JVM before it can call any Java code: the |
1255 | | // exception helpers, the native methods the Java side links against, and the |
1256 | | // collection classes cached below. Runs once, right after the JVM appears; every |
1257 | | // caller that follows gets the outcome of that one attempt. |
1258 | | // |
1259 | | // Deliberately NOT part of "does this process have a JVM": all of it comes out of |
1260 | | // doris-jni-spi.jar, and a BE whose Java deployment is incomplete still serves HDFS through |
1261 | | // libhdfs. JvmLauncher runs it once at the end of its bootstrap and logs a failure; Env, the |
1262 | | // door every Java caller comes through, refuses to hand out a JNIEnv while it is failing. |
1263 | | // |
1264 | | // Only those two may call it. JvmLauncher calls it from inside its bootstrap, with the |
1265 | | // calling thread already attached and its env cached, because the resolution asks Env::Get() |
1266 | | // for a JNIEnv and an unattached thread there would go back through ensure_jvm() and deadlock |
1267 | | // on the once flag the bootstrap is already holding. |
1268 | | // |
1269 | | // Env::GetJNIEnvSlowPath() calls it from an unattached thread on purpose, and the invariant |
1270 | | // that makes THAT safe is a different one, worth stating because nothing enforces it: by the |
1271 | | // time the slow path gets here, ensure_jvm()'s call_once has already run to completion on |
1272 | | // some thread, so the resolution below is never the one that runs - it is always the cached |
1273 | | // answer of the attempt the bootstrap made. Every early exit of _bootstrap() leaves |
1274 | | // jvm_status non-OK, and the slow path returns on that before reaching this line. |
1275 | | // |
1276 | | // Making the base lazy (that is, resolving it here for real rather than reading a cached |
1277 | | // answer) would put the deadlock straight back, so GetJNIEnvSlowPath() holds it down with a |
1278 | | // DCHECK: on that path an outcome must already exist before this is called. |
1279 | | static Status ensure_jni_base(); |
1280 | | friend class JvmLauncher; |
1281 | | friend class Env; |
1282 | | |
1283 | | static void _parse_max_heap_memory_size_from_jvm(); |
1284 | | |
1285 | | // Bytes named by the last -Xmx in `options`, or 0 when none of them says. Split out from the |
1286 | | // above so that the parsing can be tested without a JVM; see jni_util_test.cpp. |
1287 | | static jlong _parse_xmx(const std::string& options); |
1288 | | |
1289 | | static Status _init_jni_base() WARN_UNUSED_RESULT; |
1290 | | static Status _init_collect_class() WARN_UNUSED_RESULT; |
1291 | | static Status _init_register_natives() WARN_UNUSED_RESULT; |
1292 | | |
1293 | | // for jvm heap |
1294 | | static jlong max_jvm_heap_memory_size_; |
1295 | | |
1296 | | //for hashmap |
1297 | | static GlobalClass hashmap_class; |
1298 | | static MethodId hashmap_constructor; |
1299 | | static MethodId hashmap_put; |
1300 | | |
1301 | | //for map |
1302 | | static GlobalClass mapClass; |
1303 | | static MethodId mapEntrySetMethod; |
1304 | | |
1305 | | // for map entry |
1306 | | static GlobalClass mapEntryClass; |
1307 | | static MethodId getEntryKeyMethod; |
1308 | | static MethodId getEntryValueMethod; |
1309 | | |
1310 | | //for set |
1311 | | static GlobalClass setClass; |
1312 | | static MethodId iteratorSetMethod; |
1313 | | |
1314 | | // for iterator |
1315 | | static GlobalClass iteratorClass; |
1316 | | static MethodId iteratorHasNextMethod; |
1317 | | static MethodId iteratorNextMethod; |
1318 | | }; |
1319 | | }; // namespace Jni |
1320 | | |
1321 | | } // namespace doris |