mirror of
https://github.com/postgres/postgres.git
synced 2025-08-17 01:02:17 +03:00
Teach regular expression operators to honor collations.
This involves getting the character classification and case-folding functions in the regex library to use the collations infrastructure. Most of this work had been done already in connection with the upper/lower and LIKE logic, so it was a simple matter of transposition. While at it, split out these functions into a separate source file regc_pg_locale.c, so that they can be correctly labeled with the Postgres project's license rather than the Scriptics license. These functions are 100% Postgres-written code whereas what remains in regc_locale.c is still mostly not ours, so lumping them both under the same copyright notice was getting more and more misleading.
This commit is contained in:
@@ -25,6 +25,7 @@
|
||||
#include <arpa/inet.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "catalog/pg_collation.h"
|
||||
#include "libpq/ip.h"
|
||||
#include "libpq/libpq.h"
|
||||
#include "regex/regex.h"
|
||||
@@ -1781,7 +1782,7 @@ parse_ident_usermap(List *line, int line_number, const char *usermap_name,
|
||||
* XXX: Major room for optimization: regexps could be compiled when
|
||||
* the file is loaded and then re-used in every connection.
|
||||
*/
|
||||
r = pg_regcomp(&re, wstr, wlen, REG_ADVANCED);
|
||||
r = pg_regcomp(&re, wstr, wlen, REG_ADVANCED, C_COLLATION_OID);
|
||||
if (r)
|
||||
{
|
||||
char errstr[100];
|
||||
|
Reference in New Issue
Block a user