mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-01-18 18:44:06 +08:00
Update FAQ's in head and 7.3.X.
This commit is contained in:
parent
044dca9f7c
commit
0e010a54a3
187
configure
vendored
187
configure
vendored
@ -8330,23 +8330,27 @@ fi
|
||||
fi
|
||||
|
||||
if test "$with_pam" = yes ; then
|
||||
if test "${ac_cv_header_security_pam_appl_h+set}" = set; then
|
||||
echo "$as_me:$LINENO: checking for security/pam_appl.h" >&5
|
||||
echo $ECHO_N "checking for security/pam_appl.h... $ECHO_C" >&6
|
||||
if test "${ac_cv_header_security_pam_appl_h+set}" = set; then
|
||||
|
||||
for ac_header in security/pam_appl.h
|
||||
do
|
||||
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
|
||||
if eval "test \"\${$as_ac_Header+set}\" = set"; then
|
||||
echo "$as_me:$LINENO: checking for $ac_header" >&5
|
||||
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
|
||||
if eval "test \"\${$as_ac_Header+set}\" = set"; then
|
||||
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
fi
|
||||
echo "$as_me:$LINENO: result: $ac_cv_header_security_pam_appl_h" >&5
|
||||
echo "${ECHO_T}$ac_cv_header_security_pam_appl_h" >&6
|
||||
echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
|
||||
echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
|
||||
else
|
||||
# Is the header compilable?
|
||||
echo "$as_me:$LINENO: checking security/pam_appl.h usability" >&5
|
||||
echo $ECHO_N "checking security/pam_appl.h usability... $ECHO_C" >&6
|
||||
echo "$as_me:$LINENO: checking $ac_header usability" >&5
|
||||
echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
#line $LINENO "configure"
|
||||
#include "confdefs.h"
|
||||
$ac_includes_default
|
||||
#include <security/pam_appl.h>
|
||||
#include <$ac_header>
|
||||
_ACEOF
|
||||
rm -f conftest.$ac_objext
|
||||
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
@ -8371,12 +8375,12 @@ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
|
||||
echo "${ECHO_T}$ac_header_compiler" >&6
|
||||
|
||||
# Is the header present?
|
||||
echo "$as_me:$LINENO: checking security/pam_appl.h presence" >&5
|
||||
echo $ECHO_N "checking security/pam_appl.h presence... $ECHO_C" >&6
|
||||
echo "$as_me:$LINENO: checking $ac_header presence" >&5
|
||||
echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
#line $LINENO "configure"
|
||||
#include "confdefs.h"
|
||||
#include <security/pam_appl.h>
|
||||
#include <$ac_header>
|
||||
_ACEOF
|
||||
if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
|
||||
(eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
|
||||
@ -8408,37 +8412,156 @@ echo "${ECHO_T}$ac_header_preproc" >&6
|
||||
# So? What about this header?
|
||||
case $ac_header_compiler:$ac_header_preproc in
|
||||
yes:no )
|
||||
{ echo "$as_me:$LINENO: WARNING: security/pam_appl.h: accepted by the compiler, rejected by the preprocessor!" >&5
|
||||
echo "$as_me: WARNING: security/pam_appl.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
|
||||
{ echo "$as_me:$LINENO: WARNING: security/pam_appl.h: proceeding with the preprocessor's result" >&5
|
||||
echo "$as_me: WARNING: security/pam_appl.h: proceeding with the preprocessor's result" >&2;};;
|
||||
{ echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
|
||||
echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
|
||||
{ echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
|
||||
echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};;
|
||||
no:yes )
|
||||
{ echo "$as_me:$LINENO: WARNING: security/pam_appl.h: present but cannot be compiled" >&5
|
||||
echo "$as_me: WARNING: security/pam_appl.h: present but cannot be compiled" >&2;}
|
||||
{ echo "$as_me:$LINENO: WARNING: security/pam_appl.h: check for missing prerequisite headers?" >&5
|
||||
echo "$as_me: WARNING: security/pam_appl.h: check for missing prerequisite headers?" >&2;}
|
||||
{ echo "$as_me:$LINENO: WARNING: security/pam_appl.h: proceeding with the preprocessor's result" >&5
|
||||
echo "$as_me: WARNING: security/pam_appl.h: proceeding with the preprocessor's result" >&2;};;
|
||||
{ echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
|
||||
echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
|
||||
{ echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
|
||||
echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
|
||||
{ echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
|
||||
echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};;
|
||||
esac
|
||||
echo "$as_me:$LINENO: checking for security/pam_appl.h" >&5
|
||||
echo $ECHO_N "checking for security/pam_appl.h... $ECHO_C" >&6
|
||||
if test "${ac_cv_header_security_pam_appl_h+set}" = set; then
|
||||
echo "$as_me:$LINENO: checking for $ac_header" >&5
|
||||
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
|
||||
if eval "test \"\${$as_ac_Header+set}\" = set"; then
|
||||
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
else
|
||||
ac_cv_header_security_pam_appl_h=$ac_header_preproc
|
||||
eval "$as_ac_Header=$ac_header_preproc"
|
||||
fi
|
||||
echo "$as_me:$LINENO: result: $ac_cv_header_security_pam_appl_h" >&5
|
||||
echo "${ECHO_T}$ac_cv_header_security_pam_appl_h" >&6
|
||||
echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
|
||||
echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
|
||||
|
||||
fi
|
||||
if test $ac_cv_header_security_pam_appl_h = yes; then
|
||||
:
|
||||
if test `eval echo '${'$as_ac_Header'}'` = yes; then
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
|
||||
_ACEOF
|
||||
|
||||
else
|
||||
{ { echo "$as_me:$LINENO: error: header file <security/pam_appl.h> is required for PAM" >&5
|
||||
echo "$as_me: error: header file <security/pam_appl.h> is required for PAM" >&2;}
|
||||
|
||||
for ac_header in pam/pam_appl.h
|
||||
do
|
||||
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
|
||||
if eval "test \"\${$as_ac_Header+set}\" = set"; then
|
||||
echo "$as_me:$LINENO: checking for $ac_header" >&5
|
||||
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
|
||||
if eval "test \"\${$as_ac_Header+set}\" = set"; then
|
||||
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
fi
|
||||
echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
|
||||
echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
|
||||
else
|
||||
# Is the header compilable?
|
||||
echo "$as_me:$LINENO: checking $ac_header usability" >&5
|
||||
echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
#line $LINENO "configure"
|
||||
#include "confdefs.h"
|
||||
$ac_includes_default
|
||||
#include <$ac_header>
|
||||
_ACEOF
|
||||
rm -f conftest.$ac_objext
|
||||
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
(eval $ac_compile) 2>&5
|
||||
ac_status=$?
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -s conftest.$ac_objext'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); }; }; then
|
||||
ac_header_compiler=yes
|
||||
else
|
||||
echo "$as_me: failed program was:" >&5
|
||||
cat conftest.$ac_ext >&5
|
||||
ac_header_compiler=no
|
||||
fi
|
||||
rm -f conftest.$ac_objext conftest.$ac_ext
|
||||
echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
|
||||
echo "${ECHO_T}$ac_header_compiler" >&6
|
||||
|
||||
# Is the header present?
|
||||
echo "$as_me:$LINENO: checking $ac_header presence" >&5
|
||||
echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
#line $LINENO "configure"
|
||||
#include "confdefs.h"
|
||||
#include <$ac_header>
|
||||
_ACEOF
|
||||
if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
|
||||
(eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
|
||||
ac_status=$?
|
||||
egrep -v '^ *\+' conftest.er1 >conftest.err
|
||||
rm -f conftest.er1
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } >/dev/null; then
|
||||
if test -s conftest.err; then
|
||||
ac_cpp_err=$ac_c_preproc_warn_flag
|
||||
else
|
||||
ac_cpp_err=
|
||||
fi
|
||||
else
|
||||
ac_cpp_err=yes
|
||||
fi
|
||||
if test -z "$ac_cpp_err"; then
|
||||
ac_header_preproc=yes
|
||||
else
|
||||
echo "$as_me: failed program was:" >&5
|
||||
cat conftest.$ac_ext >&5
|
||||
ac_header_preproc=no
|
||||
fi
|
||||
rm -f conftest.err conftest.$ac_ext
|
||||
echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
|
||||
echo "${ECHO_T}$ac_header_preproc" >&6
|
||||
|
||||
# So? What about this header?
|
||||
case $ac_header_compiler:$ac_header_preproc in
|
||||
yes:no )
|
||||
{ echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
|
||||
echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
|
||||
{ echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
|
||||
echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};;
|
||||
no:yes )
|
||||
{ echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
|
||||
echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
|
||||
{ echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
|
||||
echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
|
||||
{ echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
|
||||
echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};;
|
||||
esac
|
||||
echo "$as_me:$LINENO: checking for $ac_header" >&5
|
||||
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
|
||||
if eval "test \"\${$as_ac_Header+set}\" = set"; then
|
||||
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
else
|
||||
eval "$as_ac_Header=$ac_header_preproc"
|
||||
fi
|
||||
echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
|
||||
echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
|
||||
|
||||
fi
|
||||
if test `eval echo '${'$as_ac_Header'}'` = yes; then
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
|
||||
_ACEOF
|
||||
|
||||
else
|
||||
{ { echo "$as_me:$LINENO: error: header file <security/pam_appl.h> or <pam/pam_appl.h> is required for PAM." >&5
|
||||
echo "$as_me: error: header file <security/pam_appl.h> or <pam/pam_appl.h> is required for PAM." >&2;}
|
||||
{ (exit 1); exit 1; }; }
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
fi
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
dnl Process this file with autoconf to produce a configure script.
|
||||
dnl $Header: /cvsroot/pgsql/configure.in,v 1.235 2003/02/11 21:05:35 petere Exp $
|
||||
dnl $Header: /cvsroot/pgsql/configure.in,v 1.236 2003/02/14 14:05:00 momjian Exp $
|
||||
dnl
|
||||
dnl Developers, please strive to achieve this order:
|
||||
dnl
|
||||
@ -724,7 +724,9 @@ if test "$with_openssl" = yes ; then
|
||||
fi
|
||||
|
||||
if test "$with_pam" = yes ; then
|
||||
AC_CHECK_HEADER(security/pam_appl.h, [], [AC_MSG_ERROR([header file <security/pam_appl.h> is required for PAM])])
|
||||
AC_CHECK_HEADERS(security/pam_appl.h, [],
|
||||
[AC_CHECK_HEADERS(pam/pam_appl.h, [],
|
||||
[AC_MSG_ERROR([header file <security/pam_appl.h> or <pam/pam_appl.h> is required for PAM.])])])
|
||||
fi
|
||||
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
Otvety na chasto zadavaemye voprosy po PostgreSQL
|
||||
|
||||
Data poslednego obnovleniya: CHetverg 5 Dekabrya 00:47:26 EDT 2002
|
||||
Data poslednego obnovleniya: CHetverg 13 Fevralya 23:07:35 EDT 2002
|
||||
|
||||
Anglijskij variant soprovozhdaet: Bryus Mom'yan (Bruce Momjian)
|
||||
(pgman@candle.pha.pa.us)
|
||||
@ -275,7 +275,7 @@
|
||||
|
||||
1.7) Kakaya poslednyaya versiya?
|
||||
|
||||
Poslednij vypusk PostgreSQL - `eto versiya 7.2.3.
|
||||
Poslednij vypusk PostgreSQL - `eto versiya 7.3.1.
|
||||
|
||||
My planiruem vypuskat' novye versii kazhdye chetyre mesyaca.
|
||||
|
||||
@ -469,17 +469,13 @@
|
||||
2.3) Est' li u PostgreSQL graficheskij interfejs pol'zovatelya?
|
||||
|
||||
Da, suschestvuet neskol'ko graficheskih interfejsov dlya PostgreSQL.
|
||||
`Eto PgAccess (http://www.pgaccess.com, PgAdmin II
|
||||
`Eto PgAccess (http://www.pgaccess.org, PgAdmin II
|
||||
(http://www.pgadmin.org, Win32-only), RHDB Admin (
|
||||
http://sources.redhat.com/rhdb/) i Rekall (
|
||||
http://www.thekompany.com/products/rekall/, kommercheskij). Takzhe
|
||||
est' PHPPgAdmin ( http://phppgadmin.sourceforge.net/) - interfejs k
|
||||
PostgreSQL, osnovannyj na Web.
|
||||
|
||||
U nas est' prekrasnyj goraficheskij interfejs, nazyvaemyj PgAccess,
|
||||
kotoryj takzhe mozhno ispol'zovat' kak generator otchetov. Ego
|
||||
stranichka http://www.pgaccess.org/
|
||||
|
||||
2.4) Kakie yazyki mogut vzaimodejstvovat' s PostgreSQL?
|
||||
|
||||
Kakie-libo interfejsy dlya PostgreSQL suschestvuyut dlya bol'shinstva
|
||||
@ -669,10 +665,6 @@
|
||||
sozdaniya ogranicheniya na kolichestvo backend processov kak raz i
|
||||
sostoit v tom, chtoby vashej sisteme hvatilo resursov.
|
||||
|
||||
V PostgreSQL do versii 6.5, maksimal'noe kolichestvo backend processov
|
||||
bylo 64, i izmenenie `etogo kolichestva trebovalo perekompilyacii
|
||||
posle ustanovki konstanty MaxBackendId v include/storage/sinvaladt.h.
|
||||
|
||||
3.9) CHto nahoditsya v kataloge pgsql_tmp?
|
||||
|
||||
Dannyj katalog soderzhit vremennye fajly, generiruemye obrabotchikom
|
||||
@ -853,6 +845,11 @@ pa
|
||||
ORDER BY col [ DESC ]
|
||||
LIMIT 1;
|
||||
|
||||
Esli vam kazhetsya, chto optimizator nekorretno vybiraet
|
||||
posledovatel'nyj perebor, ispol'zujte SET enable_seqscan TO 'off' i
|
||||
zapustite testy, chtoby uvidet', ne stalo-li skanirovanie indeksov
|
||||
bystree.
|
||||
|
||||
Kogda ispol'zuyutsya operacii s shablonami, naprimer LIKE ili ~,
|
||||
indeksy mogut byt' ispol'zovany v sleduyuschih sluchayah:
|
||||
* Nachalo stroki poiska dolzhno sovpadat' s nachalom iskomoj stroki,
|
||||
@ -929,12 +926,12 @@ pa
|
||||
|
||||
Tip Vnutrennee imya Zamechaniya
|
||||
--------------------------------------------------
|
||||
"char" char 1 simvol
|
||||
CHAR(n) bpchar zapolnyaetsya pustotoj do fiksirovannoj dliny
|
||||
VARCHAR(n) varchar razmer zadaet maksimal'nuyu dlinu, net zapolnen
|
||||
iya
|
||||
CHAR(n) bpchar zapolnyaetsya pustotoj do fiksirovannoj dliny
|
||||
TEXT text net zadavaemogo verhnego ogranicheniya ili dlin
|
||||
y
|
||||
"char" char odin simvol
|
||||
BYTEA bytea massiv bajt peremennoj dliny (mozhno ispol'zova
|
||||
t' null-bajt bez opaski)
|
||||
|
||||
@ -948,15 +945,17 @@ t' null-bajt bez opaski)
|
||||
szhatiyu ili mogut byt' sohraneny ne v strokom vide cherez TOAST, tak
|
||||
chto zanimaemoe diskovoe prostranstvo mozhet takzhe byt' i men'she,
|
||||
chem ozhidalos'.
|
||||
VARCHAR(n) - `eto luchshee reshenie, kogda nuzhno hranit' stroki
|
||||
peremennoj dliny, ne prevyshayuschie opredelennogo razmera. TEXT -
|
||||
`eto luchshee reshenie dlya strok neogranichennoj dliny, s maksimal'no
|
||||
dopustimoj dlinoj v 1 gigabajt.
|
||||
|
||||
CHAR(n) - `eto luchshee reshenie dlya hraneniya strok, kotorye obychno
|
||||
imeyut odinakovuyu dlinu. VARCHAR(n) - `eto luchshee reshenie, kogda
|
||||
nuzhno hranit' stroki peremennoj dliny, no ne prevyshayuschie
|
||||
opredelennogo razmera. TEXT - `eto luchshee reshenie dlya strok
|
||||
neogranichennoj dliny, s maksimal'no dopustimoj dlinoj v 1 gigabajt.
|
||||
BYTEA dlya hraneniya binarnyh dannyh, znacheniya kotoryh mogut
|
||||
vklyuchat' NULL bajty. `Eti tipy imeyut shodnye harakteristiki
|
||||
proizvoditel'nosti.
|
||||
imeyut odinakovuyu dlinu. CHAR(n) zapolnyaetsya pustotoj do zadannoj
|
||||
dliny, v to vremya kak VARCHAR(n) hranit tol'ko simvoly, iz kotoryh
|
||||
sostoit stroka. BYTEA ispol'zuetsya dlya hraneniya binarnyh dannyh,
|
||||
znacheniya kotoryh mogut vklyuchat' NULL bajty. `Eti tipy imeyut
|
||||
shodnye harakteristiki proizvoditel'nosti.
|
||||
|
||||
4.15.1) Kak mne sozdat' pole serial/s-avto-uvelicheniem?
|
||||
|
||||
@ -1146,8 +1145,8 @@ CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
|
||||
WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col);
|
||||
|
||||
CHtoby takaya konstrukciya rabotala bystro, kolonka subcol dolzhna
|
||||
byt' proindeksirovana. My nadeemsya ubrat' `eto ogranichenie v
|
||||
buduschem vypuske.
|
||||
byt' proindeksirovana. `Eta problema proizvoditel'nosti budet
|
||||
ustranena v versii 7.4.
|
||||
|
||||
4.23) Kak mne vypolnit' vneshnee svyazyvanie?
|
||||
|
||||
|
@ -13,7 +13,7 @@
|
||||
alink="#0000ff">
|
||||
<H1>Ответы на часто задаваемые вопросы по PostgreSQL</H1>
|
||||
|
||||
<P>Дата последнего обновления: Четверг 5 Декабря 00:47:26 EDT 2002</P>
|
||||
<P>Дата последнего обновления: Четверг 13 Февраля 23:07:35 EDT 2002</P>
|
||||
|
||||
<P>Английский вариант сопровождает: Брюс Момьян (Bruce Momjian) (<A href=
|
||||
"mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR>
|
||||
@ -323,7 +323,7 @@
|
||||
|
||||
<H4><A name="1.7">1.7</A>) Какая последняя версия?</H4>
|
||||
|
||||
<P>Последний выпуск PostgreSQL - это версия 7.2.3.</P>
|
||||
<P>Последний выпуск PostgreSQL - это версия 7.3.1.</P>
|
||||
|
||||
<P>Мы планируем выпускать новые версии каждые четыре месяца.</P>
|
||||
|
||||
@ -550,7 +550,7 @@
|
||||
пользователя?</H4>
|
||||
|
||||
<P>Да, существует несколько графических интерфейсов для PostgreSQL.
|
||||
Это PgAccess (<A href="http://www.pgaccess.com/">http://www.pgaccess.com</A>,
|
||||
Это PgAccess (<A href="http://www.pgaccess.org/">http://www.pgaccess.org</A>,
|
||||
PgAdmin II (<A href="http://www.pgadmin.org/">http://www.pgadmin.org</A>,
|
||||
Win32-only), RHDB Admin (<A href="http://sources.redhat.com/rhdb/">
|
||||
http://sources.redhat.com/rhdb/</A>) и Rekall
|
||||
@ -558,11 +558,7 @@
|
||||
http://www.thekompany.com/products/rekall/</A>, коммерческий). Также есть
|
||||
PHPPgAdmin (<A href="http://phppgadmin.sourceforge.net/">
|
||||
http://phppgadmin.sourceforge.net/</A>) - интерфейс к PostgreSQL, основанный
|
||||
на Web.
|
||||
|
||||
<P>У нас есть прекрасный горафический интерфейс, называемый
|
||||
PgAccess, который также можно использовать как генератор отчетов.
|
||||
Его страничка <A href="http://www.pgaccess.org">http://www.pgaccess.org/</A></P>
|
||||
на Web.</p>
|
||||
|
||||
<H4><A name="2.4">2.4</A>) Какие языки могут взаимодействовать с PostgreSQL?</H4>
|
||||
|
||||
@ -772,10 +768,6 @@
|
||||
Причина создания ограничения на количество backend процессов как
|
||||
раз и состоит в том, чтобы вашей системе хватило ресурсов.</P>
|
||||
|
||||
<P>В PostgreSQL до версии 6.5, максимальное количество backend процессов
|
||||
было 64, и изменение этого количества требовало перекомпиляции после
|
||||
установки константы MaxBackendId в <I>include/storage/sinvaladt.h</I>.</P>
|
||||
|
||||
<H4><A name="3.9">3.9</A>) Что находится в каталоге <I>pgsql_tmp</I>?</H4>
|
||||
|
||||
<P>Данный каталог содержит временные файлы, генерируемые обработчиком
|
||||
@ -969,6 +961,11 @@
|
||||
LIMIT 1;
|
||||
</pre>
|
||||
|
||||
<P>Если вам кажется, что оптимизатор некорретно выбирает последовательный
|
||||
перебор, используйте <CODE>SET enable_seqscan TO 'off'</CODE> и
|
||||
запустите тесты, чтобы увидеть, не стало-ли сканирование индексов быстрее.
|
||||
</P>
|
||||
|
||||
<P>Когда используются операции с шаблонами, например <SMALL>LIKE</SMALL>
|
||||
или <I>~</I>, индексы могут быть использованы в следующих случаях:</P>
|
||||
<UL>
|
||||
@ -1058,10 +1055,10 @@
|
||||
<PRE>
|
||||
Тип Внутреннее имя Замечания
|
||||
--------------------------------------------------
|
||||
"char" char 1 символ
|
||||
CHAR(n) bpchar заполняется пустотой до фиксированной длины
|
||||
VARCHAR(n) varchar размер задает максимальную длину, нет заполнения
|
||||
CHAR(n) bpchar заполняется пустотой до фиксированной длины
|
||||
TEXT text нет задаваемого верхнего ограничения или длины
|
||||
"char" char один символ
|
||||
BYTEA bytea массив байт переменной длины (можно использовать null-байт без опаски)
|
||||
</PRE>
|
||||
|
||||
@ -1076,13 +1073,16 @@ BYTEA bytea
|
||||
так что занимаемое дисковое пространство может также быть и меньше,
|
||||
чем ожидалось.</P>
|
||||
|
||||
<SMALL>VARCHAR(n)</SMALL> - это лучшее решение, когда нужно хранить
|
||||
строки переменной длины, не превышающие определенного размера.
|
||||
<SMALL>TEXT</SMALL> - это лучшее решение для строк неограниченной длины,
|
||||
с максимально допустимой длиной в 1 гигабайт.
|
||||
<P><SMALL>CHAR(n)</SMALL> - это лучшее решение для хранения строк, которые
|
||||
обычно имеют одинаковую длину. <SMALL>VARCHAR(n)</SMALL> - это лучшее
|
||||
решение, когда нужно хранить строки переменной длины, но не превышающие
|
||||
определенного размера. <SMALL>TEXT</SMALL> - это лучшее решение для строк
|
||||
неограниченной длины, с максимально допустимой длиной в 1 гигабайт.
|
||||
<SMALL>BYTEA</SMALL> для хранения бинарных данных, значения которых
|
||||
могут включать <SMALL>NULL</SMALL> байты. Эти типы имеют сходные
|
||||
обычно имеют одинаковую длину. <SMALL>CHAR(n)</SMALL> заполняется
|
||||
пустотой до заданной длины, в то время как <SMALL>VARCHAR(n)</SMALL>
|
||||
хранит только символы, из которых состоит строка.
|
||||
<SMALL>BYTEA</SMALL> используется для хранения бинарных данных, значения
|
||||
которых могут включать <SMALL>NULL</SMALL> байты. Эти типы имеют сходные
|
||||
характеристики производительности.</P>
|
||||
|
||||
<H4><A name="4.15.1">4.15.1</A>) Как мне создать поле
|
||||
@ -1321,8 +1321,8 @@ BYTEA bytea
|
||||
</PRE>
|
||||
|
||||
Чтобы такая конструкция работала быстро, колонка <CODE>subcol</CODE>
|
||||
должна быть проиндексирована.
|
||||
Мы надеемся убрать это ограничение в будущем выпуске.
|
||||
должна быть проиндексирована. Эта проблема производительности будет
|
||||
устранена в версии 7.4.
|
||||
|
||||
<H4><A name="4.23">4.23</A>) Как мне выполнить внешнее связывание?</H4>
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/libpq/auth.c,v 1.96 2003/01/06 09:58:23 petere Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/libpq/auth.c,v 1.97 2003/02/14 14:05:00 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -43,7 +43,12 @@ static int recv_and_check_password_packet(Port *port);
|
||||
char *pg_krb_server_keyfile;
|
||||
|
||||
#ifdef USE_PAM
|
||||
#ifdef HAVE_PAM_PAM_APPL_H
|
||||
#include <pam/pam_appl.h>
|
||||
#endif
|
||||
#ifdef HAVE_SECURITY_PAM_APPL_H
|
||||
#include <security/pam_appl.h>
|
||||
#endif
|
||||
|
||||
#define PGSQL_PAM_SERVICE "postgresql" /* Service name passed to PAM */
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
* or in pg_config.h afterwards. Of course, if you edit pg_config.h, then your
|
||||
* changes will be overwritten the next time you run configure.
|
||||
*
|
||||
* $Id: pg_config.h.in,v 1.38 2003/01/25 05:19:47 tgl Exp $
|
||||
* $Id: pg_config.h.in,v 1.39 2003/02/14 14:05:00 momjian Exp $
|
||||
*/
|
||||
|
||||
#ifndef PG_CONFIG_H
|
||||
@ -344,6 +344,9 @@
|
||||
/* Set to 1 if you have <netinet/tcp.h> */
|
||||
#undef HAVE_NETINET_TCP_H
|
||||
|
||||
/* Set to 1 if you have <pam/pam_appl.h> */
|
||||
#undef HAVE_PAM_PAM_APPL_H
|
||||
|
||||
/* Set to 1 if you have <readline.h> */
|
||||
#undef HAVE_READLINE_H
|
||||
|
||||
@ -353,6 +356,9 @@
|
||||
/* Set to 1 if you have <readline/readline.h> */
|
||||
#undef HAVE_READLINE_READLINE_H
|
||||
|
||||
/* Set to 1 if you have <security/pam_appl.h> */
|
||||
#undef HAVE_SECURITY_PAM_APPL_H
|
||||
|
||||
/* Set to 1 if you have <sys/ipc.h> */
|
||||
#undef HAVE_SYS_IPC_H
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user