mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-15 08:20:16 +08:00
Make initdb print a message about which locale it is about to use.
Re-add warning if the locale prevents LIKE-optimization. Done within initdb now.
This commit is contained in:
parent
16e22de53a
commit
1944bff1d6
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/runtime.sgml,v 1.114 2002/04/26 01:24:08 tgl Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/runtime.sgml,v 1.115 2002/05/09 13:30:24 petere Exp $
|
||||
-->
|
||||
|
||||
<Chapter Id="runtime">
|
||||
@ -145,11 +145,10 @@ postgres$ <userinput>initdb -D /usr/local/pgsql/data</userinput>
|
||||
linkend="locale">. One surprise you might encounter while running
|
||||
<command>initdb</command> is a notice similar to this:
|
||||
<screen>
|
||||
WARNING: Initializing database with en_US collation order.
|
||||
This locale setting will prevent use of index optimization for
|
||||
LIKE and regexp searches. If you are concerned about speed of
|
||||
such queries, you may wish to set LC_COLLATE to "C" and
|
||||
re-initdb. For more information see the Administrator's Guide.
|
||||
The database cluster will be initialized with locale de_DE.
|
||||
This locale setting will prevent the use of indexes for pattern matching
|
||||
operations. If that is a concern, rerun initdb with the collation order
|
||||
set to "C". For more information see the Administrator's Guide.
|
||||
</screen>
|
||||
This is intended to warn you that the currently selected locale
|
||||
will cause indexes to be sorted in an order that prevents them from
|
||||
|
@ -7,7 +7,7 @@
|
||||
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Header: /cvsroot/pgsql/src/backend/access/transam/xlog.c,v 1.93 2002/04/24 01:54:43 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/access/transam/xlog.c,v 1.94 2002/05/09 13:30:24 petere Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -39,7 +39,6 @@
|
||||
#include "storage/spin.h"
|
||||
#include "utils/builtins.h"
|
||||
#include "utils/relcache.h"
|
||||
#include "utils/selfuncs.h"
|
||||
#include "miscadmin.h"
|
||||
|
||||
|
||||
@ -2108,19 +2107,6 @@ WriteControlFile(void)
|
||||
elog(PANIC, "invalid LC_CTYPE setting");
|
||||
StrNCpy(ControlFile->lc_ctype, localeptr, LOCALE_NAME_BUFLEN);
|
||||
|
||||
/*
|
||||
* Issue warning WARNING if initdb'ing in a locale that will not permit
|
||||
* LIKE index optimization. This is not a clean place to do it, but I
|
||||
* don't see a better place either...
|
||||
*/
|
||||
if (!locale_is_like_safe())
|
||||
elog(WARNING, "Initializing database with %s collation order."
|
||||
"\n\tThis locale setting will prevent use of index optimization for"
|
||||
"\n\tLIKE and regexp searches. If you are concerned about speed of"
|
||||
"\n\tsuch queries, you may wish to set LC_COLLATE to \"C\" and"
|
||||
"\n\tre-initdb. For more information see the Administrator's Guide.",
|
||||
ControlFile->lc_collate);
|
||||
|
||||
/* Contents are protected with a CRC */
|
||||
INIT_CRC64(ControlFile->crc);
|
||||
COMP_CRC64(ControlFile->crc,
|
||||
|
@ -15,7 +15,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/selfuncs.c,v 1.110 2002/04/25 02:56:55 tgl Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/selfuncs.c,v 1.111 2002/05/09 13:30:24 petere Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -3189,6 +3189,8 @@ pattern_selectivity(char *patt, Pattern_Type ptype)
|
||||
* could be different from lc_collate_is_c(), but in a different
|
||||
* theory, non-C locales are completely unpredicable so it's unlikely
|
||||
* to happen.)
|
||||
*
|
||||
* Be sure to maintain the correspondence with the code in initdb.
|
||||
*/
|
||||
bool
|
||||
locale_is_like_safe(void)
|
||||
|
@ -27,7 +27,7 @@
|
||||
# Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
|
||||
# Portions Copyright (c) 1994, Regents of the University of California
|
||||
#
|
||||
# $Header: /cvsroot/pgsql/src/bin/initdb/Attic/initdb.sh,v 1.152 2002/04/27 21:24:34 tgl Exp $
|
||||
# $Header: /cvsroot/pgsql/src/bin/initdb/Attic/initdb.sh,v 1.153 2002/05/09 13:30:24 petere Exp $
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
|
||||
@ -464,6 +464,30 @@ echo "The files belonging to this database system will be owned by user \"$Effec
|
||||
echo "This user must also own the server process."
|
||||
echo
|
||||
|
||||
TAB=' '
|
||||
|
||||
if test `pg_getlocale CTYPE` = `pg_getlocale COLLATE` \
|
||||
&& test `pg_getlocale CTYPE` = `pg_getlocale TIME` \
|
||||
&& test `pg_getlocale CTYPE` = `pg_getlocale NUMERIC` \
|
||||
&& test `pg_getlocale CTYPE` = `pg_getlocale MONETARY` \
|
||||
&& test `pg_getlocale CTYPE` = `pg_getlocale MESSAGES`
|
||||
then
|
||||
echo "The database cluster will be initialized with locale `pg_getlocale CTYPE`."
|
||||
else
|
||||
echo "The database cluster will be initialized with locales:"
|
||||
echo " COLLATE: `pg_getlocale COLLATE`${TAB}CTYPE: `pg_getlocale CTYPE`${TAB}MESSAGES: `pg_getlocale MESSAGES`"
|
||||
echo " MONETARY: `pg_getlocale MONETARY`${TAB}NUMERIC: `pg_getlocale NUMERIC`${TAB}TIME: `pg_getlocale TIME`"
|
||||
fi
|
||||
|
||||
# (Be sure to maintain the correspondence with locale_is_like_safe() in selfuncs.c.)
|
||||
if test `pg_getlocale COLLATE` != C && test `pg_getlocale COLLATE` != POSIX; then
|
||||
echo "This locale setting will prevent the use of indexes for pattern matching"
|
||||
echo "operations. If that is a concern, rerun $CMDNAME with the collation order"
|
||||
echo "set to \"C\". For more information see the Administrator's Guide."
|
||||
fi
|
||||
echo
|
||||
|
||||
|
||||
##########################################################################
|
||||
#
|
||||
# CREATE DATABASE DIRECTORY
|
||||
|
Loading…
Reference in New Issue
Block a user