From 8d2633cd99dc1e2fcacb84af8a4aa5d63f640030 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Sun, 29 Jan 2023 09:47:28 +0800 Subject: [PATCH] fix(query): add qsort for alpine. --- source/os/src/osMath.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/source/os/src/osMath.c b/source/os/src/osMath.c index dddadd5ff6..8f49a3d917 100644 --- a/source/os/src/osMath.c +++ b/source/os/src/osMath.c @@ -32,7 +32,17 @@ void swapStr(char* j, char* J, int width) { } #endif -// todo refactor: 1) move away; 2) use merge sort instead; 3) qsort is not a stable sort actually. -void taosSort(void* arr, int64_t sz, int64_t width, __compar_fn_t compar) { - qsort(arr, sz, width, compar); +int32_t qsortHelper(const void* p1, const void* p2, const void* param) { + __compar_fn_t comparFn = param; + return comparFn(p1, p2); +} + +// todo refactor: 1) move away; 2) use merge sort instead; 3) qsort is not a stable sort actually. +void taosSort(void* base, int64_t sz, int64_t width, __compar_fn_t compar) { +#ifdef _ALPINE + void* param = compar; + taosqsort(base, width, sz, param, qsortHelper); +#else + qsort(base, sz, width, compar); +#endif }