mirror of
https://github.com/postgres/postgres.git
synced 2025-10-19 15:49:24 +03:00
Check for more Unicode functions during upgrade.
When checking for expression indexes that may be affected by a Unicode update during upgrade, check for a few more functions. Specifically, check for documented regexp functions, as well as the new CASEFOLD() function. Also, fully-qualify references to pg_catalog.text and pg_catalog.regtype. Discussion: https://postgr.es/m/399b656a3abb0c9283538a040f72199c0601525c.camel@j-davis.com Backpatch-through: 18
This commit is contained in:
@@ -1971,14 +1971,19 @@ check_for_unicode_update(ClusterInfo *cluster)
|
|||||||
" SELECT oper.oid, oper.oprcode, collid FROM pg_operator oper, collations "
|
" SELECT oper.oid, oper.oprcode, collid FROM pg_operator oper, collations "
|
||||||
" WHERE oprname IN ('~', '~*', '!~', '!~*', '~~*', '!~~*') AND "
|
" WHERE oprname IN ('~', '~*', '!~', '!~*', '~~*', '!~~*') AND "
|
||||||
" oprnamespace='pg_catalog'::regnamespace AND "
|
" oprnamespace='pg_catalog'::regnamespace AND "
|
||||||
" oprright='text'::regtype "
|
" oprright='pg_catalog.text'::pg_catalog.regtype "
|
||||||
"), "
|
"), "
|
||||||
/* functions that use the input collation for character semantics */
|
/* functions that use the input collation for character semantics */
|
||||||
"coll_functions(procid, collid) AS ( "
|
"coll_functions(procid, collid) AS ( "
|
||||||
" SELECT proc.oid, collid FROM pg_proc proc, collations "
|
" SELECT proc.oid, collid FROM pg_proc proc, collations "
|
||||||
" WHERE proname IN ('lower','initcap','upper') AND "
|
" WHERE pronamespace='pg_catalog'::regnamespace AND "
|
||||||
" pronamespace='pg_catalog'::regnamespace AND "
|
" ((proname IN ('lower','initcap','upper','casefold') AND "
|
||||||
" proargtypes[0] = 'text'::regtype "
|
" pronargs = 1 AND "
|
||||||
|
" proargtypes[0] = 'pg_catalog.text'::pg_catalog.regtype) OR "
|
||||||
|
" (proname = 'substring' AND pronargs = 2 AND "
|
||||||
|
" proargtypes[0] = 'pg_catalog.text'::pg_catalog.regtype AND "
|
||||||
|
" proargtypes[1] = 'pg_catalog.text'::pg_catalog.regtype) OR "
|
||||||
|
" proname LIKE 'regexp_%') "
|
||||||
/* include functions behind the operators listed above */
|
/* include functions behind the operators listed above */
|
||||||
" UNION "
|
" UNION "
|
||||||
" SELECT procid, collid FROM coll_operators "
|
" SELECT procid, collid FROM coll_operators "
|
||||||
|
Reference in New Issue
Block a user