diff --git a/src/backend/utils/adt/pg_locale.c b/src/backend/utils/adt/pg_locale.c index 2a076a3dfd1..fcdbaae37b9 100644 --- a/src/backend/utils/adt/pg_locale.c +++ b/src/backend/utils/adt/pg_locale.c @@ -70,6 +70,10 @@ #include #endif +#ifdef __GLIBC__ +#include +#endif + #ifdef WIN32 /* * This Windows file defines StrNCpy. We don't need it here, so we undefine @@ -1499,7 +1503,7 @@ pg_newlocale_from_collation(Oid collid) char * get_collation_actual_version(char collprovider, const char *collcollate) { - char *collversion; + char *collversion = NULL; #ifdef USE_ICU if (collprovider == COLLPROVIDER_ICU) @@ -1523,7 +1527,13 @@ get_collation_actual_version(char collprovider, const char *collcollate) } else #endif - collversion = NULL; + if (collprovider == COLLPROVIDER_LIBC) + { +#if defined(__GLIBC__) + /* Use the glibc version because we don't have anything better. */ + collversion = pstrdup(gnu_get_libc_version()); +#endif + } return collversion; }