Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit0ceea9c

Browse files
committed
New installer from PGPRO branch
1 parentbdeacef commit0ceea9c

17 files changed

+1670
-362
lines changed

‎build/build64.cmd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
SETARCH=X64
22
SETSDK=MSVC2013
33
SETPG_MAJOR_VERSION=10
4-
SETPG_PATCH_VERSION=3
4+
SETPG_PATCH_VERSION=4
55
SETPRODUCT_NAME=PostgreSQL
66
rem SET PRODUCT_NAME=PostgreSQL 1C
77
rem SET ONE_C=YES

‎build/helpers/genlists.py

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
#!/usr/bin/env python
2+
# -*- encoding: utf-8 -*-
3+
"""
4+
This script reads list of glob patterns from files, specified in the
5+
command-line and generates lists of files for each pattern
6+
"""
7+
importsys,fnmatch,os,os.path
8+
9+
filelist_name=sys.argv.pop(1)
10+
ifos.path.isdir(filelist_name):
11+
# Generate filelist ourselves
12+
pwd=os.getcwd()
13+
os.chdir(filelist_name)
14+
filelist=set()
15+
fordirname,subdirlist,filesinos.walk("."):
16+
dirname=dirname.replace("\\","/")
17+
forfinfiles:
18+
filelist.add(dirname+"/"+f)
19+
os.chdir(pwd)
20+
else:
21+
withopen(filelist_name,"r")asf:
22+
filelist=set(map(lambdax:x.strip(),f.readlines()))
23+
24+
formoduleinsys.argv[1:]:
25+
modname=module[:module.find(".")]
26+
print>>sys.stderr,"Processing module ",modname
27+
withopen(module,"r")asf:
28+
patterns=map(lambdax:x.strip(),f.readlines())
29+
forpinpatterns:
30+
ifp.startswith("./bin/")andnotp.endswith(".dll"):
31+
patterns.append("./share/locale/*/LC_MESSAGES/"+p[6:p.rfind(".")]+"*.mo")
32+
found=set()
33+
forpinpatterns:
34+
ifp.startswith("#"):
35+
continue
36+
forfinfilelist:
37+
iffnmatch.fnmatch(f,p):
38+
found.add(f)
39+
filelist-=found
40+
withopen(modname+"_list.nsi","w")asout:
41+
curdir=""
42+
forfinsorted(found):
43+
filedir=os.path.dirname(f)
44+
iffiledir!=curdir:
45+
print>>out,"SetOutPath $INSTDIR"+filedir[1:].replace("/","\\")
46+
curdir=filedir
47+
print>>out,"File ${PG_INS_SOURCE_DIR}"+f[1:].replace("/","\\")
48+
49+
# When all module files are processed:
50+
iflen(filelist):
51+
print>>sys.stderr,"Following unprocessed files found:\n",", ".join(sorted(filelist))
52+
sys.exit(1)
53+
54+
55+
56+
57+

‎build/helpers/postgres_nsis_installer.cmd

Lines changed: 77 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
REM ----------------------------------------------------------------------------
2-
REM Assume, you have your PostgreSQL and PgAdmin3 build in %BUILD_DIR%\distr_X.._9.x...
2+
REM Assume, you have your PostgreSQL and PgAdmin3 build in %BUILD_DIR%\distr_X.._9.4...
33
REM For PostgreSQL you have 'postgresql' directory and
44
REM for PgAdmin3 you have 'pgadmin' directory
55
REM ----------------------------------------------------------------------------
@@ -9,54 +9,75 @@ SET DEFAULT_PORT=5432
99
SETDEFAULT_USER=postgres
1010

1111
SETPRODUCT_PUBLISHER="Postgres Professional Russia"
12-
SETCOMPANY_NAME=Postgres Professional
12+
SETCOMPANY_NAME=PostgresPro
1313
SETPRODUCT_WEB_SITE="http://postgrespro.ru"
1414

15+
IF"%PRODUCT_NAME%"==""SETPRODUCT_NAME=PostgresPro
16+
17+
SETPRODUCT_DIR_REGKEY=SOFTWARE\%COMPANY_NAME%\%ARCH%\%PRODUCT_NAME%\%PG_MAJOR_VERSION%
18+
SETPREV_PRODUCT_DIR_REGKEY=SOFTWARE\%COMPANY_NAME%\%ARCH%\%PRODUCT_NAME%\%PG_PREV_MAJOR_VERSION%
19+
REM The OLD_* variables used for upgrade from old installers, which was built without PRODUCT_NAME.
20+
SETOLD_PRODUCT_DIR_REGKEY=SOFTWARE\%COMPANY_NAME%\%ARCH%\%PG_MAJOR_VERSION%
21+
SETOLD_PREV_PRODUCT_DIR_REGKEY=SOFTWARE\%COMPANY_NAME%\%ARCH%\%PG_PREV_MAJOR_VERSION%
22+
23+
REM Set Service-Id
24+
SETPG_DEF_SERVICEID="postgresql-%ARCH%-%PG_MAJOR_VERSION%"
25+
IF"%PRODUCT_NAME%"=="PostgreSQL"SETPG_DEF_SERVICEID="postgresql-%ARCH%-%PG_MAJOR_VERSION%"
26+
IF"%PRODUCT_NAME%"=="PostgresPro"SETPG_DEF_SERVICEID="postgrespro-%ARCH%-%PG_MAJOR_VERSION%"
27+
IF"%PRODUCT_NAME%"=="PostgresProEnterprise"SETPG_DEF_SERVICEID="postgrespro-enterprise-%ARCH%-%PG_MAJOR_VERSION%"
28+
1529
IF%ARCH%== X86 (
16-
SETBITS=32bit
30+
SETBITS=32bit
1731
)else (
18-
SETBITS=64bit
32+
SETBITS=64bit
1933
)
20-
2134
IF%ONE_C%== YES (
22-
SETPRODUCT_NAME=PostgreSQL 1C
23-
IF%BITS%==32bitSETPG_DEF_SERVICEID=postgresql-1c-%PG_MAJOR_VERSION%-%BITS%
24-
IF%BITS%==64bitSETPG_DEF_SERVICEID=postgresql-1c-%PG_MAJOR_VERSION%
25-
SETPG_INS_SUFFIX=%BITS%_1C_Setup.exe
26-
SETWITH_1C="TRUE"
35+
SETPRODUCT_NAME=PostgresPro 1C
36+
SETPG_DEF_SERVICEID="postgrespro-1C-${PRODUCT_VERSION}"
37+
SETPG_INS_SUFFIX="%ARCH%bit_1C_Setup.exe"
38+
SETPG_REG_KEY="Software\Postgres Professional\${PRODUCT_NAME}\Installations\postgresql-${PRODUCT_VERSION}"
39+
SETPG_REG_SERVICE_KEY="Software\Postgres Professional\${PRODUCT_NAME}\Services\postgresql-${PRODUCT_VERSION}"
40+
SETPRODUCT_DIR_REGKEY="Software\Postgres Professional\${PRODUCT_NAME}\${PRODUCT_VERSION}"
41+
SETPRODUCT_VERSION="%PG_MAJOR_VERSION%"
2742
)ELSE (
28-
SETPRODUCT_NAME=PostgreSQL
29-
IF%BITS%==32bitSETPG_DEF_SERVICEID=postgresql-%PG_MAJOR_VERSION%-%BITS%
30-
IF%BITS%==64bitSETPG_DEF_SERVICEID=postgresql-%PG_MAJOR_VERSION%
31-
SETPG_INS_SUFFIX=%BITS%_Setup.exe
32-
SETWITH_1C="FALSE"
43+
SETPG_INS_SUFFIX="%BITS%_Setup.exe"
44+
SETPRODUCT_VERSION="%PG_MAJOR_VERSION% (%BITS%)"
45+
SETPG_REG_KEY="%PRODUCT_DIR_REGKEY%\Installations\postgresql-%PG_MAJOR_VERSION%"
46+
SETPG_REG_SERVICE_KEY="%PRODUCT_DIR_REGKEY%\Services\postgresql-%PG_MAJOR_VERSION%"
47+
SETPG_PREV_REG_KEY="%PREV_PRODUCT_DIR_REGKEY%\Installations\postgresql-%PG_PREV_MAJOR_VERSION%"
48+
SETPG_PREV_REG_SERVICE_KEY="%PREV_PRODUCT_DIR_REGKEY%\Services\postgresql-%PG_PREV_MAJOR_VERSION%"
49+
SETPG_OLD_REG_KEY="%OLD_PRODUCT_DIR_REGKEY%\Installations\postgresql-%PG_MAJOR_VERSION%"
50+
SETPG_OLD_REG_SERVICE_KEY="%OLD_PRODUCT_DIR_REGKEY%\Services\postgresql-%PG_MAJOR_VERSION%"
51+
SETPG_OLD_PREV_REG_KEY="%OLD_PREV_PRODUCT_DIR_REGKEY%\Installations\postgresql-%PG_PREV_MAJOR_VERSION%"
52+
SETPG_OLD_PREV_REG_SERVICE_KEY="%OLD_PREV_PRODUCT_DIR_REGKEY%\Services\postgresql-%PG_PREV_MAJOR_VERSION%"
3353
)
3454

35-
SETPRODUCT_DIR_REGKEY=SOFTWARE\%COMPANY_NAME%\%ARCH%\%PRODUCT_NAME%\%PG_MAJOR_VERSION%
36-
SETPG_REG_KEY=%PRODUCT_DIR_REGKEY%\Installations\%PG_DEF_SERVICEID%
37-
SETPG_REG_SERVICE_KEY=%PRODUCT_DIR_REGKEY%\Services\%PG_DEF_SERVICEID%
38-
39-
SETPRODUCT_VERSION="%PG_DEF_VERSION% (%BITS%)"
40-
4155
SETPG_DEF_PORT="%DEFAULT_PORT%"
4256
SETPG_DEF_SUPERUSER="%DEFAULT_USER%"
4357
SETPG_DEF_SERVICEACCOUNT="NT AUTHORITY\NetworkService"
4458
SETPG_DEF_BRANDING="%PRODUCT_NAME%%PG_MAJOR_VERSION% (%BITS%)"
45-
SETPG_INS_SOURCE_DIR="%BUILD_DIR%\distr_%ARCH%_%PG_DEF_VERSION%\postgresql\*.*"
59+
rem SET PG_INS_SOURCE_DIR="%BUILD_DIR%\distr_%ARCH%_%PG_DEF_VERSION%\postgresql\*.*"
60+
SETPG_INS_SOURCE_DIR="%BUILD_DIR%\distr_%ARCH%_%PG_DEF_VERSION%\postgresql"
4661

4762
SETNSIS_RES_DIR=%~dp0
4863
SETNSIS_RES_DIR=%NSIS_RES_DIR:~0,-1%
4964
SETNSIS_RES_DIR=%NSIS_RES_DIR%\..\..\nsis
5065

5166
REM PostgreSQL Section
52-
>%NSIS_RES_DIR%\postgres.def.nshECHO !addplugindir"%NSIS_RES_DIR%\Plugins"
53-
>>%NSIS_RES_DIR%\postgres.def.nshECHO !define PRODUCT_NAME"%PRODUCT_NAME%"
67+
>%NSIS_RES_DIR%\postgres.def.nshECHO !define PRODUCT_NAME"%PRODUCT_NAME%"
5468
>>%NSIS_RES_DIR%\postgres.def.nshECHO !define PRODUCT_VERSION%PRODUCT_VERSION%
5569
>>%NSIS_RES_DIR%\postgres.def.nshECHO !define PRODUCT_PUBLISHER%PRODUCT_PUBLISHER%
5670
>>%NSIS_RES_DIR%\postgres.def.nshECHO !define PRODUCT_WEB_SITE%PRODUCT_WEB_SITE%
5771
>>%NSIS_RES_DIR%\postgres.def.nshECHO !define PRODUCT_DIR_REGKEY"%PRODUCT_DIR_REGKEY%"
58-
>>%NSIS_RES_DIR%\postgres.def.nshECHO !define PG_REG_KEY"%PG_REG_KEY%"
59-
>>%NSIS_RES_DIR%\postgres.def.nshECHO !define PG_REG_SERVICE_KEY"%PG_REG_SERVICE_KEY%"
72+
>>%NSIS_RES_DIR%\postgres.def.nshECHO !define OLD_PRODUCT_DIR_REGKEY"%OLD_PRODUCT_DIR_REGKEY%"
73+
>>%NSIS_RES_DIR%\postgres.def.nshECHO !define PG_REG_KEY%PG_REG_KEY%
74+
>>%NSIS_RES_DIR%\postgres.def.nshECHO !define PG_REG_SERVICE_KEY%PG_REG_SERVICE_KEY%
75+
>>%NSIS_RES_DIR%\postgres.def.nshECHO !define PG_PREV_REG_KEY%PG_PREV_REG_KEY%
76+
>>%NSIS_RES_DIR%\postgres.def.nshECHO !define PG_PREV_REG_SERVICE_KEY%PG_PREV_REG_SERVICE_KEY%
77+
>>%NSIS_RES_DIR%\postgres.def.nshECHO !define PG_OLD_REG_KEY%PG_OLD_REG_KEY%
78+
>>%NSIS_RES_DIR%\postgres.def.nshECHO !define PG_OLD_REG_SERVICE_KEY%PG_OLD_REG_SERVICE_KEY%
79+
>>%NSIS_RES_DIR%\postgres.def.nshECHO !define PG_OLD_PREV_REG_KEY%PG_OLD_PREV_REG_KEY%
80+
>>%NSIS_RES_DIR%\postgres.def.nshECHO !define PG_OLD_PREV_REG_SERVICE_KEY%PG_OLD_PREV_REG_SERVICE_KEY%
6081
>>%NSIS_RES_DIR%\postgres.def.nshECHO !define PG_DEF_PORT%PG_DEF_PORT%
6182
>>%NSIS_RES_DIR%\postgres.def.nshECHO !define PG_DEF_SUPERUSER%PG_DEF_SUPERUSER%
6283
>>%NSIS_RES_DIR%\postgres.def.nshECHO !define PG_DEF_SERVICEACCOUNT%PG_DEF_SERVICEACCOUNT%
@@ -67,26 +88,50 @@ REM PostgreSQL Section
6788
>>%NSIS_RES_DIR%\postgres.def.nshECHO !define PG_INS_SUFFIX%PG_INS_SUFFIX%
6889
>>%NSIS_RES_DIR%\postgres.def.nshECHO !define PG_INS_SOURCE_DIR%PG_INS_SOURCE_DIR%
6990
>>%NSIS_RES_DIR%\postgres.def.nshECHO !define REDIST_YEAR%REDIST_YEAR%
70-
>>%NSIS_RES_DIR%\postgres.def.nshECHO !define WITH_1C%WITH_1C%
7191
>>%NSIS_RES_DIR%\postgres.def.nshECHO !define BUILD_DIR%BUILD_DIR%
7292
>>%NSIS_RES_DIR%\postgres.def.nshECHO !define SDK%SDK%
73-
>>%NSIS_RES_DIR%\postgres.def.nshECHO !define HAVE_PGSQL_DOC%HAVE_PGSQL_DOC%
93+
>>%NSIS_RES_DIR%\postgres.def.nshECHO !addplugindir Plugins
7494

7595
IF"%ARCH%"=="X64" (
76-
>>%NSIS_RES_DIR%\postgres.def.nshECHO !define PG_64bit
96+
>>%NSIS_RES_DIR%\postgres.def.nshECHO !define PG_64bit
97+
)
98+
99+
IF"%PRODUCT_NAME%"=="PostgreSQL" (
100+
>>%NSIS_RES_DIR%\postgres.def.nshECHO !define myLicenseFile_ru"license.txt"
101+
>>%NSIS_RES_DIR%\postgres.def.nshECHO !define myLicenseFile_en"license.txt"
102+
>>%NSIS_RES_DIR%\postgres.def.nshECHO !define PRODUCT_NAME_SHORT"PostgreSQL"
103+
GOTO :ENDLIC
77104
)
105+
IF"%PRODUCT_NAME%"=="PostgresPro" (
106+
>>%NSIS_RES_DIR%\postgres.def.nshECHO !define myLicenseFile_ru"license_std_ru.txt"
107+
>>%NSIS_RES_DIR%\postgres.def.nshECHO !define myLicenseFile_en"license_std_en.txt"
108+
>>%NSIS_RES_DIR%\postgres.def.nshECHO !define PRODUCT_NAME_SHORT"Postgres Pro"
109+
GOTO :ENDLIC
110+
)
111+
IF"%PRODUCT_NAME%"=="PostgresProEnterprise" (
112+
>>%NSIS_RES_DIR%\postgres.def.nshECHO !define myLicenseFile_ru"license.txt"
113+
>>%NSIS_RES_DIR%\postgres.def.nshECHO !define myLicenseFile_en"license.txt"
114+
>>%NSIS_RES_DIR%\postgres.def.nshECHO !define PRODUCT_NAME_SHORT"Postgres Pro"
115+
GOTO :ENDLIC
116+
)
117+
>>%NSIS_RES_DIR%\postgres.def.nshECHO !define myLicenseFile_ru"license.txt"
118+
>>%NSIS_RES_DIR%\postgres.def.nshECHO !define myLicenseFile_en"license.txt"
119+
>>%NSIS_RES_DIR%\postgres.def.nshECHO !define PRODUCT_NAME_SHORT"PostgreSQL"
120+
121+
:ENDLIC
78122

123+
CD /D%NSIS_RES_DIR%||GOTO :ERROR
124+
rem Genarate file lists
125+
%PYTHON64_PATH%/python%ROOT%/build/helpers/genlists.py%PG_INS_SOURCE_DIR% client.files devel.files plperl.files plpython2.files plpython3.files unneeded.files server.files
79126

80-
CD%NSIS_RES_DIR%||GOTO :ERROR
127+
rem generate installer itself
81128
makensis postgresql.nsi||GOTO :ERROR
82129

83130
GOTO :DONE
84131

85132
:ERROR
86133
ECHO Failed with error #%errorlevel%.
87-
REM PAUSE
88134
EXIT /b%errorlevel%
89135

90136
:DONE
91137
ECHO Done.
92-
REM PAUSE

‎nsis/StrContains.nsh

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
; StrContains
2+
; This function does a case sensitive searches for an occurrence of a substring in a string.
3+
; It returns the substring if it is found.
4+
; Otherwise it returns null("").
5+
; Written by kenglish_hi
6+
; Adapted from StrReplace written by dandaman32
7+
8+
9+
Var STR_HAYSTACK
10+
Var STR_NEEDLE
11+
Var STR_CONTAINS_VAR_1
12+
Var STR_CONTAINS_VAR_2
13+
Var STR_CONTAINS_VAR_3
14+
Var STR_CONTAINS_VAR_4
15+
Var STR_RETURN_VAR
16+
17+
Function StrContains
18+
Exch$STR_NEEDLE
19+
Exch1
20+
Exch$STR_HAYSTACK
21+
; Uncomment to debug
22+
;MessageBox MB_OK 'STR_NEEDLE = $STR_NEEDLE STR_HAYSTACK = $STR_HAYSTACK '
23+
StrCpy$STR_RETURN_VAR""
24+
StrCpy$STR_CONTAINS_VAR_1 -1
25+
StrLen$STR_CONTAINS_VAR_2$STR_NEEDLE
26+
StrLen$STR_CONTAINS_VAR_4$STR_HAYSTACK
27+
loop:
28+
IntOp$STR_CONTAINS_VAR_1$STR_CONTAINS_VAR_1 +1
29+
StrCpy$STR_CONTAINS_VAR_3$STR_HAYSTACK$STR_CONTAINS_VAR_2$STR_CONTAINS_VAR_1
30+
StrCmp$STR_CONTAINS_VAR_3$STR_NEEDLE found
31+
StrCmp$STR_CONTAINS_VAR_1$STR_CONTAINS_VAR_4 done
32+
Goto loop
33+
found:
34+
StrCpy$STR_RETURN_VAR$STR_NEEDLE
35+
Goto done
36+
done:
37+
Pop$STR_NEEDLE;Prevent "invalid opcode" errors and keep the
38+
Exch$STR_RETURN_VAR
39+
FunctionEnd
40+
41+
!macro _StrContainsConstructor OUT NEEDLE HAYSTACK
42+
Push`${HAYSTACK}`
43+
Push`${NEEDLE}`
44+
Call StrContains
45+
Pop`${OUT}`
46+
!macroend
47+
48+
!define StrContains'!insertmacro "_StrContainsConstructor"'

‎nsis/client.files

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
./bin/*.dll
2+
./bin/clusterdb.*
3+
./bin/createdb.*
4+
./bin/createuser.*
5+
./bin/dropdb.*
6+
./bin/dropuser.*
7+
./bin/pg_basebackup.*
8+
./bin/pgbench.*
9+
./bin/pg_dump.*
10+
./bin/pg_dumpall.*
11+
./bin/pg_isready.*
12+
./bin/pg_receivewal.*
13+
./bin/pg_recvlogical.*
14+
./bin/pg_restore.*
15+
./bin/psql.*
16+
./bin/reindexdb.*
17+
./bin/vacuumdb.*
18+
./bin/oid2name.*
19+
./bin/vacuumlo.*
20+
./bin/less.*
21+
./bin/lesskey.*
22+
./bin/openssl.*
23+
./share/psqlrc.sample
24+
./doc/postgresql-en.chm
25+
./doc/postgresql-ru.chm
26+
./share/locale/*/libpq*.mo
27+
./share/locale/*/pgscripts*.mo

‎nsis/devel.files

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
./include/*
2+
./lib/*.lib
3+
./bin/pg_config.*
4+
./bin/ecpg.*
5+
./symbols/*.pdb

‎nsis/license_ee_en.txt

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
������������ ���������� � �������� ������������� (EULA)
2+
3+
��������� ������������ ���������� (�������) �������� ������������ (��������� �������) � �������� ������� � ��� ������������ ������� ������������� ���� (����� � ������������ ��� ���������) ��������� ��� ��� (����� ���������). � ������������ � ��������� ����������� �������� � ������������ ���������������� "�������� ����������������" (Postgres Professional) (����� � ��������������� ��� ���������) � ���������� �������������� ������������� ��������� ���� �� ��������� ��� ��� ���� Postgres Pro Enterprise, ������� ����������� ������������ � ��� � �������� �/��� ����������� ���� � ��������� ������������ ������������ (�������� ���� ����� ������� ���) ���������������� ����� �� ������������� ���������, ������������ ������ ����������� � ������� ��������� � ������������ � �������������� ��������� ����������� (���������) ��������� � ��������� (������� ���������������� ��������).
4+
5+
������� ������� ������ (������������� ����������)
6+
7+
��������� ������ (������������ ����������/�������) ��������� ������������� ������������� � ������ ���������� ������ �� ���� ��������� �������:
8+
1) ����� ������������� ������ ���������� ������� ������������� ���������� ��� ��������� ��������� � ������� �� ������ ������ �������� �������������� �������� ������������ � ���������
9+
���������� ����������.
10+
2) ���� ���������� ������, ������ ��� ��������� ������������� �� ��������������� ��� �������������� ������� ��� ���������������� ���� �� ������������� ��������� �� ��������� (�� ��������) ���������� �������� (����������) �������� �������������� �������� ������������ � ��������� ���������� ����������.
11+
12+
13+
1. ���������
14+
������������, ������� ��� ���� ������� ��������� ��, ������������ ��� ����� ��������� ������� ���������� ����������. ���� ������������ �� ��������� ������� ������� ���������� � �����, �� �� �� ����� �������������, ������������ � ���������� ��. ���� ������������ �� ��������� ��������� ��������� ������� ����������, �� � � ���� ������ �� ����� �� ����� �������������, ������������ � ���������� ��.
15+
16+
2. ��������� ��������
17+
������� �������� ������������ �� ������ ���������, �� ������� ������������ ���������. ��������� "������������" �� ����������, ����� �� ����������� ����� ��������� � ����������� ������ ��� ���������� � ���������� ������ ������� ���������� (��������, �� ������� ����, �������-���� � �.�.).
18+
19+
3. ���������������
20+
������������ �� ����� ����� ������ �� � ������ ��� �� ��������� �����������. ����������� ���� �� ��������� ������� ����� ���������.
21+
22+
4. ������ �� �����������
23+
����������� ������������ �� � ������ ���������� � ����������� ����������, ���������� �� ������ �����, ������ ���������, ������������ ��� ����������, ���������������, �����������������, ������� � �������������� ������-���� ��������� ��� ���������� ��� ��.
24+
25+
5. ���������� ���������.
26+
���������� ������������ ����������� ������������� ��� ������ ��� ������ �������. �� �� ������ ����� �������� ���������� � ������������� �� �� ������ �����������.
27+
28+
6. ��������� �����
29+
������ �� �� �������� ������������ ����������.
30+
��� �������������� �����, ������� ��������� ����� �� ��, ����������� ���������������, � �������� �������� � �������������� ������������ �� ��������� ������. ����������� ������� ��� �������� �����-���� ����������� �� ��������� ������ �� ���� ������ �� � � ���������������� ����������.
31+
32+
7. ����� �� ��������
33+
��������������� ���� ������������ �� �������������� �����-���� �������� �� ��������� � ��. �� � ��� ����������� � ���� ������������ ��������������� "��� ����", ��� �����-���� ��������, ����� ��� ���������������, ������� ��� ��� ���������� ��������������� �������� ���������� ��� ����������� ��� �����-���� ������������ ��� �������������� ����. ������������ ��������� �� ���� ��� �����, ��������� � ��������������, ���������������� ��� ��������� ���������������� ��.
34+
35+
��������������� �� �����������, ��� �� �� �������� ������, � ����� �� ����� ������� ��������������� �� ������ ��� ��������� ����������� ���������� ��, � ��� ����� ��������� ��-�� ��������� ������ ��� �������� � ��������� ��. ��������������� �� ����������� ���������� ������ �� � ����������� ������������ � ������������� ������ �������������, � ����������� � ��������, ����������� �������, ��� ������ ������ ��. ��������������� ����� �� ����������� ������� �����-���� ������������� � ����������� �������� ��.
36+
37+
8. ���������������
38+
��������������� ������������ ����� ��������������� �� �����-���� ����� (������� ��� ��� ���������� ������ ������ �������, ���������� ������� ����������, ������ ������� ���������� ��� ����� ������), ��������� � �������������� ��� �������������� ������������� ��, � ����� � ��������������� ��� �������������� �������������� ����� �� ����������� ���������, ���� ���� ��������������� ��� ������� ������� � ����������� ����� ������. ��� ��������������� �� ���������� ������������ ������� ��� ������������� �� ����� �� ������������.
39+
40+
9. ���� �������� ����������
41+
��������� ������������ ���������� �������� � ���� � ������� �������� �������� � ���������� �� ��� �������� �� �� ������� ���� �������� � ��������� �� ���������� ����� ����� ������������� ��.
42+
43+
44+
10. ����������� �������� ����������
45+
��������������� ����� ���������� �������� ���������� ���������� ��� ������������ ��� ������� � �����������. ������������ ����� ���������� �������� ���������� ����������, ���� �� �� �������� � ���� ������������ �����������.
46+
��� ����������� �������� ���������� ������������ ������ ���������� ������������� �� � ������� ��� ����� �� � ��������� �������� ����������.
47+
48+
11. ������ �������
49+
��������������� ��������� �� ����� ����� �������� ��� �������� �������� ������� ���������� ��� ����� �� ������� � ��������� ������ ��.
50+
��� ������������� �������� �� ������� ���������� ����������� �� ������ info@postgrespro.ru

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp