рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ 1C 8.2 рдХреЗ рд▓рд┐рдП PostgreSQL рдХрд╛ рдирд┐рд░реНрдорд╛рдг, рдпрд╛ рдЖрд╕рд╛рди рддрд░реАрдХреЗ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИрдВ!

рдпрд╣ рдЖрд▓реЗрдЦ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ Gentoo рд▓рд┐рдирдХреНрд╕ рдХреЗ рддрд╣рдд 1C рдХреЗ рд▓рд┐рдП PostgreSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдПред

рдореИрдВ 1C рдХреЗ рд▓рд┐рдП рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реА рднреВрд▓рднреБрд▓реИрдпрд╛ рдХреА рд╕рднреА рдореГрдд-рдЕрдВрдд рд╢рд╛рдЦрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред рдореИрдВ рдХреЗрд╡рд▓ рдЙрд╕реА рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ рдЬреЛ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдХрд╣реАрдВ рднреА рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ - рдЬреЛ рдХрд┐ рд╣рдордиреЗ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдкреНрд░рд╣рд╛рд░ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдзреВрдореНрд░рдкрд╛рди рдХрд┐рдпрд╛ рд╣реИред 1 рд╕реА рдХреЗ рд▓рд┐рдП рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдиреБрдЕрд▓ рдХреА рдкреНрд░рдЪреБрд░рддрд╛ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдЙрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдиреЗ рднреА рд╣рдорд╛рд░реЗ рдореБрдЦреНрдп рд░реЗрдХ рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛, рд╡реЗ рд╕рднреА рд╕рддрд╣реА рдирд┐рдХрд▓реЗ рдФрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрддрд╛рдпрд╛ред рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдЗрд╕ рдЕрдВрддрд░ рдХреЛ рднрд░рдирд╛ рд╣рдорд╛рд░рд╛ рдХрд░реНрддрд╡реНрдп рдорд╛рдирд╛ рд╣реИ :-)





рд╢реБрд░реБрдЖрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо Gentoo рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╣рдо рдХрд┐рд╕реА RPM рд╕рдВрдХреБрд▓ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред Gentoo рдХреЗ рд▓рд┐рдП rpm рдкреНрд░рд╛рд░реВрдк рдореЗрдВ 1C рдкреИрдХреЗрдЬ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛ (рдпрд╣ рд╕рдордЭрд╛рдиреЗ рдореЗрдВ рдПрдХ рд▓рдВрдмрд╛ рд╕рдордп рд▓рдЧрд╛ рдХрд┐ рдХреНрдпреЛрдВ), рдЗрд╕рд▓рд┐рдП src.rpm рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ rpmbuild рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдЕрдм рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛ред рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЬреЛ рдХреБрдЫ рднреА рдерд╛ рд╡рд╣ rpm2tgz рдХреЛ rpm рдкреНрд░рд╛рд░реВрдк рд╕реЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЯрд╛рд░рдЧреЗрдЯ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдерд╛ рдФрд░ рдЗрд╕реЗ рдЕрдирдкреИрдХ рдХрд░рдирд╛ рдерд╛, рдЬреЛ рд╣рдордиреЗ рдХрд┐рдпрд╛ рдерд╛ред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд░рдг-рджрд░-рдЪрд░рдг рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рд╣реИред



0. рдкрд░реНрдпрд╛рд╡рд░рдг рддреИрдпрд╛рд░ рдХрд░рдирд╛: mkdir / tmp / t5 && cd / tmp / t5 (рд╢реБрд░реВ рд╕реЗ 5 рдереЗ) :-)



1. рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рд╛рдЗрдЯ рд╕реЗ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдкреИрдХреЗрдЬ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ: wget v8.1c.ru/overview/postgresql_patches/8-4-1/postgresql-8.4.1-1.1C.sr.rpm



2. рд╣рдо рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ: rpm2tar postgresql-8.4.1-1.1C.src.rpm && rm postgresql-8.4.1-1.1C.src.rpm



3. рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдЕрдирдкреИрдХ рдХрд░реЗрдВ: tar xf postgresql-8.4.1-1.1C.src.tarред рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЕрдирдкреИрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рд╕рд╛рдл рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдРрд╕рд╛ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рддреБрд░рдВрдд postgresql-8.4.1.tar.bz2 рдХреЛ рдЕрдирдкреИрдХ рдХрд░реЗрдВ рдФрд░ рдЗрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЬрд╛рдПрдВ:

tar xfj postgresql-8.4.1.tar.bz2 && cd cd postgresql-8.4.1



4. рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ ../postgresql-8.4.1C.spec рдФрд░ рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЗрд╕рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░реЗрдВ :-) рдЗрд╕рдореЗрдВ рд╡рд╣ рд╕рдм рдХреБрдЫ рд╡рд░реНрдгрд┐рдд рд╣реИ рдЬреЛ rpmbuild рдХрд░реЗрдЧрд╛ (рдпрджрд┐ рдпрд╣ рд╕рдм рдЗрддрдирд╛ рд╕рд░рд▓ рдерд╛!)ред рд╣рдо рдЙрд╕ рдЦрдВрдб рдХреЛ рдвреВрдВрдврддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдкреИрдЪ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдЙрд╕реА рдХреНрд░рдо рдореЗрдВ рд╣рдо рдРрд╕рд╛ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ (рдкреЛрд╕реНрдЯрдЧреНрд░реИрд╕ рд╡рд╛рд▓реЗ рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ):



рдкреИрдЪ -p1 <../ rpm-pgsql.patch

рдкреИрдЪ -p1 <../ postgresql-logging.patch

рдкреИрдЪ -p1 <../ postgresql-perl-rpath.patch

рдкреИрдЪ -p1 <../ postgresql-рдкрд╕рдВрдж-ncurses.patch

рдкреИрдЪ -p0 <../ 1c_FULL_84-0.19.2.patch (p0, p1 рдирд╣реАрдВ!)

рдкреИрдЪ -p1 <../ postgresql-1c-8.3.patch - рдЪреБрдЯрдХреБрд▓реЗ рднреЗрдЬреЗрдВ, рдкреИрдЪ рдУрд╡рд░рд▓реИрдк рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ! рдФрд░ рдпрд╣ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡рд┐рддрд░рдг рдореЗрдВ рд╣реИред рд╣рдордиреЗ рдХрднреА рдирд╣реАрдВ рдкрд╛рдпрд╛ рдХрд┐ рдЖрд░рдкреАрдПрдо рдХрд▓реНрдкрдирд╛ рдХреНрдпрд╛ рдмрджрд▓рддреА рд╣реИ рддрд╛рдХрд┐ рдРрд╕рд╛ рдкреИрдЪ рдУрд╡рд░рд▓реИрдк рд╣реЛ рдЬрд╛рдПред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рдкреИрдЪ рдЫреЛрдЯрд╛ рдФрд░ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдпрд╣ рд╕рд┐рд░реНрдл рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдмрджрд▓рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдВрдЧреЗ рдФрд░ рд╣реИрдВрдбрд▓ рдХреЗ рд╕рд╛рде рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдареАрдХ рдХрд░реЗрдВрдЧреЗред рдЗрд╕ рдмреАрдЪ, рд╣рдордиреЗ рдЗрд╕ рдкрд░ рд░рди рдмрдирд╛рдП рдФрд░ рдЖрдЧреЗ рдмрдврд╝ рдЧрдПред

рдкреИрдЪ -p0 <../ applock-1c-8.4.0.patch



5. рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдмрд┐рд▓реНрдб rpm рд╕реНрдкреЗрдХ рд╕реЗрдХреНрд╢рди рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░реНрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдпрд╣ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░рдирд╛ рдХрдард┐рди рд╣реИ рдХрд┐ 1C рдкрд░реНрд▓, рдкрд╛рдпрдерди рдпрд╛ рдЯреИрдХреН рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ (рдФрд░ рд╣рдо рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ 1C рдХреЗ рд▓рд┐рдП рдмрдврд╝рд╛рддреЗ рд╣реИрдВ, рд╣рдо рдЕрдкрдиреЗ рдЕрдиреНрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ 1C рдбреЗрд╡рд▓рдкрд░реНрд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдирд╣реАрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рднрд▓реЗ рд╣реА рд╡реЗ рд╕рд╛рдорд╛рдиреНрдп рдореВрд▓ рдкреЛрд╕реНрдЯ-рдЧреЗрдо рдореЗрдВ рд░рд╣рддреЗ рд╣реЛрдВ), рдЗрд╕рд▓рд┐рдП рд╣рдо рдмрд╕ рдЗрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рддреЗ рд╣реИрдВред рдХреБрд▓ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛:

./configure --disable-rpath --enable-nls --disable-integer-datetimes --enable-thread-safety



6. && рдореЗрдХ рдЗрдирд╕реНрдЯреЙрд▓ рдХрд░реЗрдВред рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рд░реВрдЯ рдХреЛ / usr / рд▓реЛрдХрд▓ / pgsql рдореЗрдВ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред



рдЕрдЧрд▓рд╛, рдЖрдкрдХреЛ рдХрдВрдЯреНрд░реАрдм рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╛рдж рд░рдЦреЗрдВ, рдПрдХ рдкреИрдЪ рдУрд╡рд░рд▓реИрдк рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛? рдпрд╣ 1C: mchar, fulleq рдФрд░ fasttrun рд╕реЗ contrib / Makefile 3 рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рдореЛрдВ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред Mchar рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ ICU рдШрдЯрдХ рд╕рдВрд╕реНрдХрд░рдг 3.8 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рд╡рд┐рд╖рдпрд╛рдВрддрд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдбрд╛рд▓рддреЗ рд╣реИрдВ:



mkdir / tmp / icu && cd / tmp / icu && wget download.icu-project.org/files/icu4c/3.8.1/icu4c-3_8_1-srcb.gz

tar zxf icu4c-3_8_1-src.tgz && cd icu / source

./configure --prefix = / usr / рд▓реЛрдХрд▓ / icu && рдореЗрдХ && рдореЗрдХ рдЗрдирд╕реНрдЯреЙрд▓



рдЖрдИрд╕реАрдпреВ / usr / рд╕реНрдерд╛рдиреАрдп / icu рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдХреЗрд╡рд▓ рд░рдирдЯрд╛рдЗрдо рдкрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЗрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдорд╛рд░ рджреЗрдВрдЧреЗред



рдЖрдЗрдП рд╡рд╛рдкрд╕ рдХрдВрдЯреНрд░рд┐рдм рдмрд┐рд▓реНрдб рдкрд░ рдЬрд╛рдПрдВред

cd /tmp/t5/postgresql-8.4.1/



7. рдЖрдкрдХреЛ contrib / mchar / Makefile рдлрд╛рдЗрд▓ рдХреЛ рдПрдбрд┐рдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ PG_CPPFLAGS рдХреЛ ICU рдкрде рдкрд░ рдлрд┐рдХреНрд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

PG_CPPFLAGS = -I / usr / рд╕реНрдерд╛рдиреАрдп / icu / рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

рдЙрд╕реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдмрд╣реБрдд рдиреАрдЪреЗ SHLIB_LINK рдореЗрдВ рдкрде рдХреЛ рдареАрдХ рдХрд░реЗрдВ:

SHLIB_LINK + = -L / usr / рд╕реНрдерд╛рдиреАрдп / icu / lib -ucuuc -l $ (ICUNAME) -Wl, -rpath, '$$ ORIGIN'



8. рдЗрд╕рдХреЗ рдмрд╛рдж, рдХрдВрдЯрд┐рдиреНрдпреВ / рдореЗрдХрдлрд╛рдЗрд▓ рдлрд╝рд╛рдЗрд▓ (38 рд▓рд╛рдЗрди, v8.1c.ru/overview/postgresql_patches/8-4-1/postesql-1c-8.4.patch ) рдореЗрдВ WANTED_DIRS рдореЗрдВ рддреАрди 1C рдШрдЯрдХ рдЬреЛрдбрд╝реЗрдВред

рд╡реИрдХреНрдпреВрдо

рдордЪрд░ \ _

рдлреБрд▓реЗрдХ \ _

fasttrun



9. рдЪрд▓реЛ рдХрдВрдЯреНрд░реАрдм рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ:

Make -C contrib && рдореЗрдХ -C contrib рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ



10. рдкреЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рдирд┐рдореНрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЖрд╡рд╢реНрдпрдХ рдЖрдИрд╕реАрдпреВ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВ:

cp -a / usr / рд╕реНрдерд╛рдиреАрдп / icu / lib / * / usr / рд╕реНрдерд╛рдиреАрдп / pgsql / lib /

rm -rf / usr / рд╕реНрдерд╛рдиреАрдп / icu



11. рд╕рдВрдХрд▓рд┐рдд / рд╕реНрдерд╛рдкрд┐рдд / usr / рд╕реНрдерд╛рдиреАрдп / pgsql рдореЗрдВ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЯреНрд╕ред рдЕрднреА рдХреЙрдиреНрдлрд┐рдЧреНрд╕ рдХреЛ рдПрдбрд┐рдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдПрдХ рдкреНрд░рдгрд╛рд▓реА рдЦрд╛рддрд╛ рдмрдирд╛рдПрдБ рдЬрд┐рд╕рдХреЗ рддрд╣рдд рдЖрдзрд╛рд░ рдХрд╛рдо рдХрд░реЗрдЧрд╛:



useradd -d / usr / рд╕реНрдерд╛рдиреАрдп / pgsql / -s / bin / bash pgmaster

mkdir / usr / рд╕реНрдерд╛рдиреАрдп / pgsql / рдбреЗрдЯрд╛

chown pgmaster / usr / local / pgsql / data && chmod 700 / usr / рд▓реЛрдХрд▓ / pgsql / рдбреЗрдЯрд╛

рдмрд┐рд▓реНрд▓реА >> /usr/local/pgsql/.bash_profile << EOF

рдирд┐рд░реНрдпрд╛рдд LANG = ru_RU.UTF-8

рдирд┐рд░реНрдпрд╛рдд PGPORT = 5434

рдирд┐рд░реНрдпрд╛рдд рдкрд╛рде = / usr / рд╕реНрдерд╛рдиреАрдп / pgsql / bin: / usr / рд╕реНрдерд╛рдиреАрдп / pgsql / sbin: $ PATH

рдирд┐рд░реНрдпрд╛рдд LD_LIBRARY_PATH = / usr / рд╕реНрдерд╛рдиреАрдп / pgsql / lib

EOF



рд╣рдорд╛рд░реЗ рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХ рд╕рд░реНрд╡рд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП 1C рдХреЗ рд▓рд┐рдП рд╣рдордиреЗ рдПрдХ рдЕрд▓рдЧ рдкреЛрд░реНрдЯ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдЕрдХрд╛рдЙрдВрдЯ рдЪреБрдирд╛, рдПрдХ bash рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдИ рдЬреЛ su - pgmaster рдХреЗ рд╕рд╛рде рдЪрд▓рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рднреА рдкрде рдФрд░ рдЪрд░ рд╕реЗрдЯ рд╣реИрдВред



12. рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдФрд░ рдЪрд▓рд╛рдПрдВ:



mkdir / usr / рд╕реНрдерд╛рдиреАрдп / pgsql / log рдФрд░& chown pgmaster / usr / рд╕реНрдерд╛рдиреАрдп / pgsql / рд▓реЙрдЧ

su - pgmaster

initdb -D / usr / рд╕реНрдерд╛рдиреАрдп / pgsql / рдбреЗрдЯрд╛

postgres -h 0.0.0.0 -p 5434 -D / usr / рд╕реНрдерд╛рдиреАрдп / pgsql / рдбреЗрдЯрд╛



рдирд┐рдпрдВрддреНрд░рдг рдЯрд░реНрдорд┐рдирд▓ рдХреЛ рдЦреЛрдП рдмрд┐рдирд╛ рд╕рд░реНрд╡рд░ рдЪреБрдкрдЪрд╛рдк рд╢реБрд░реВ рд╣реЛ рдЧрдпрд╛ред

рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рд╕реБрдкрд░ рдкреНрд▓реЗрдпрд░ рдореЗрдВ рдмрджрд▓реЗрдВ (рд╕реНрдХреНрд░реАрди рдбреНрд░рд╛рдЗрд╡, рд╣реЗрд╣реЗ):



su - pgmaster

psql template1

psql (8.4.1)

рдорджрдж рдХреЗ рд▓рд┐рдП "рдорджрдж" рдЯрд╛рдЗрдк рдХрд░реЗрдВред

template1 = # рдкрд╛рд╕рд╡рд░реНрдб 'рдкрд╛рд╕-рдкрд╛рд╕' рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ pgmaster рдХреЛ рдмрджрд▓рдирд╛;

рдЬреЛрд░ рд╕реЗ рдмреЛрд▓реЛ

рдЯреЗрдореНрдкрд▓реЗрдЯ 1 = #

CTRL + D



рдЕрдм CTRL + C рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╣рд▓реЗ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рдХреЛ рдмрд╛рд╣рд░ рдХрд░реЗрдВ, рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред



13. рдлрд╝рд╛рдЗрд▓ рдбреЗрдЯрд╛ / pg_hba.conf, рдЗрд╕рдореЗрдВ рдЖрдкрдХреЛ md5 рдкрд░ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рднреА рдЬреЛрдбрд╝реЗрдВ рдЬреЛ рдиреЗрдЯрд╡рд░реНрдХ рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:



рд╕реНрдерд╛рдиреАрдп рд╕рднреА md5

рд╕рднреА рдХреЛ 127.0.0.1/32 md5 рд╣реЛрд╕реНрдЯ рдХрд░реЗрдВ

рд╕рднреА рдХреЛ 0.0.0.0/0 md5 рд╣реЛрд╕реНрдЯ рдХрд░реЗрдВ



14. рдлрд╝рд╛рдЗрд▓ рдбреЗрдЯрд╛ / postgresql.conf, рдЗрд╕рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдХрд▓реНрдк рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ (рдЕрдирдкреЗрдХреНрд╖рд┐рдд рдкреИрдЪ рд╕реЗ рднрд╛рдЧ, рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рднрд╛рдЧ):



log_destination = 'stderr'

logging_collector = off # рдбреЗрдЯрд╛ / pg_log рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░рддреЗ рд╕рдордп рдмрдВрдж рдХрд░реЗрдВ, рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рд╣реЛрдЧрд╛)

log_statement = 'all' # рд╣рдо рдпрд╣ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ 1C рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧреА!

рд╕реБрди_рджрд╛рджрд░реА = '' '# рдЬрд┐рд╕ рдкрд░ рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлреЗрд╕ рд╣реЛ

effective_cache_size = 512MB # 1C рдЕрдиреБрд╢рдВрд╕рд╛

max_locks_per_transaction = 150 # 1C рдЕрдиреБрд╢рдВрд╕рд╛



15. рд╕рд╛рдЭрд╛ рдХреА рдЧрдИ рд╕реНрдореГрддрд┐ред рдпрд╛ рддреЛ sysctl -w kernel.shmmax = 256000000, рдпрд╛ /etc/sysctl.conf рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ, рд╡рд╣рд╛рдВ kernel.shmmax = 256000000 рдЬреЛрдбрд╝реЗрдВ, рдФрд░ рдлрд┐рд░ sysctl -pред



16. рдФрд░ рдЕрдм рдордЬрд╝рд╛ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рд╣рдо рдлрд┐рд░ рд╕реЗ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ (рдкреЛрд╕реНрдЯ-рдбреА рдбреЗрдЯрд╛ -p 5434)ред рд╣рдо 1C рдХреЗ рд▓рд┐рдП рдЖрдзрд╛рд░ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдмрдирд╛рддреЗ рд╣реИрдВ:



$ psql template1

рдкрд╛рд╕рд╡рд░реНрдб:

psql (8.4.1)

рдорджрдж рдХреЗ рд▓рд┐рдП "рдорджрдж" рдЯрд╛рдЗрдк рдХрд░реЗрдВред

рдЯреЗрдореНрдкрд▓реЗрдЯ 1 = #



17. рдЕрдЧрд▓рд╛, рдЖрдкрдХреЛ рдЯреЗрдореНрдкреНрд▓реЗрдЯ 1 рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ plpgsql рднрд╛рд╖рд╛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:



template1 = # рднрд╛рд╖рд╛ plpgsql рдмрдирд╛рдПрдБ;

рднрд╛рд╖рд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг

рдЯреЗрдореНрдкрд▓реЗрдЯ 1 = #



18. рдЕрдЧрд▓рд╛, рдЖрдкрдХреЛ 1 рд╕реА рд╕реЗ 3 рдШрдЯрдХреЛрдВ рд╕реЗ SQL рдХреЛрдб рдХреЗ рд╕рд╛рде рднрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдХрд╣реАрдВ рдирд╣реАрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИред рд╣рдордиреЗ рд╕рдВрдкреВрд░реНрдг RPM рдпреБрдХреНрддрд┐ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд┐рдпрд╛, рдЪреЗрдХ, рдкрд░реАрдХреНрд╖рдг рдЖрджрд┐ рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЛрдВрдиреЗ рдпрд╣ рдирд╣реАрдВ рдкрд╛рдпрд╛ рдХрд┐ рдпрд╣ рд╕рдм рдХреЛрдб RPM рдкреИрдХреЗрдЬ рдореЗрдВ рдЯреЗрдореНрдкрд▓реЗрдЯ 1 рдореЗрдВ рдХреИрд╕реЗ рдорд┐рд▓рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ:



template1 = # \ _tmp/t5/postgresql-8.4.1/contrib/mchar/mchar.sql

template1 = # \ _tmp/t5/postgresql-8.4.1/contrib/fulleq/fulleq.sql

рдЯреЗрдореНрдкрд▓реЗрдЯ 1 = # \ _tmp/t5/postgresql-8.4.1/contrib/fasttrun/fasttrun.sql



рдпрджрд┐ рдЖрдк рдЕрдЪрд╛рдирдХ рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП mchar.so рдкрд░ рд╢рдкрде рд▓реЗрддреЗ рд╣реИрдВ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ libicu * рдирд╣реАрдВ рдорд┐рд▓рд╛, рддреЛ рдЖрдк LD_LIBRARY_PATH рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЧрдП рдпрд╛ ICUs рдХреЛ / usr / рд╕реНрдерд╛рдиреАрдп / pgsql / lib рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВ, рдкрд╣рд▓реЗ рдкрдврд╝реЗрдВ :-P



19. рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдм рдирд╣реАрдВ рд╣реИ !!! рдореБрдЦреНрдп рдпрд╛рддрд╛рдпрд╛рдд рдЬрд╛рдо, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рд╡реЗ рдЖрдЧреЗ рдирд╣реАрдВ рдмрдврд╝ рд╕рдХреЗред рд╣рдо рдмреЗрд╕ 1C рдкрд░ рд╕реЗрдЯ рд╣реЛрддреЗ рд╣реИрдВ, рд╣рдо рд▓реЙрдЧ рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ:



рд▓реЙрдЧ: рдХрдерди: pg_proc рд╕реЗ 1 рдЪреБрдиреЗрдВ рдЬрд╣рд╛рдВ ('plpgsql_call_handler', 'datediff', 'mchar_in', 'mc_mv_icase_cmp', 'fasttruncate') рдореЗрдВ рдирд╛рдо



рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж 1C рдХрд╣рддрд╛ рд╣реИ: "рдЖрдкрдХрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдЦрд░рд╛рдм рд╣реИ, рдпрд╣ рдареАрдХ рдирд╣реАрдВ рд╣реИред"

рд╣рдо рдХрдВрд╕реЛрд▓ рд╕реЗ рдпрд╣ рдЕрдиреБрд░реЛрдз рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ:



рдЯреЗрдореНрдкрд▓реЗрдЯ 1 = # 1 рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ pg_proc рд╕реЗ рдЬрд╣рд╛рдВ ('plpgsql_call_handler', 'datediff', 'mchar_in', 'mc_mv_icase_cmp', 'fasttruncate') рдореЗрдВ рдирд╛рдо рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ;

рдХреЙрд▓рдо?

- 1

1

1

1

(4 рдкрдВрдХреНрддрд┐рдпрд╛рдБ)



рдЪрд╛рд░ рдЪрд╛рд░, рд▓реЗрдХрд┐рди рдкрд╛рдВрдЪ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП! рдЙрдиреНрдореВрд▓рди рд╕реЗ, рд╣рдо рдкрд╛рддреЗ рд╣реИрдВ рдХрд┐ рджрд┐рдирд╛рдВрдХрд┐рдд рдЧрд╛рдпрдм рд╣реИред Postgresql рдФрд░ 1C рдкреИрдЪ рд╡рд╛рд▓реЗ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЗрд╕реЗ рдЦреЛрдЬрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рд╕рдлрд▓рддрд╛ рдХреА рдУрд░ рдирд╣реАрдВ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ:



рд╕реНрдиреЛрдлреНрд▓реЗрдХ рд╕реНрдерд╛рдиреАрдп # рд╕реАрдбреА / tmp / t5 /

рд╕реНрдиреЛрдлреНрд▓реЗрдХ рдЯреА 5 # рдПрд▓.рдПрд╕.

1c_FULL_84-0.19.2.patch pg_config.h postgresql-8.4.1C.spec postgresql.pam

applock-1c-8.4.0.patch postgresql-1c-8.3.patch postgresql-8.4.1.tar.bz2 postgresql-perl-rpath.patch

ecpg_config.h postgresql-8.4.1 postgresql-bashprofile postgresql-рдкреНрд░рд╛рдердорд┐рдХрддрд╛-ncurses.patch

Filter-requires-perl-Pg.sh postgresql-8.4.1-1.1C.src.tar postgresql.init README.rpm-dist

Makefile.regress postgresql-8.4.1-A4.pdf рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬреЗрдХрд▓-рд▓реЙрдЧрд┐рдВрдЧ.рдЪреЗрдХ rpm-pgsql.patch

рд╕реНрдиреЛрдлреНрд▓реЗрдХ t5 # fgrep -ri рдбреЗрдЯреЗрдбрд┐рдлрд╝ *

рд╕реНрдиреЛрдлреНрд▓реЗрдХ t5 #



рд╣рдордиреЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдХреБрдЫ рджрд┐рдирд╛рдВрдХрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдкрд╛рдПред рдпрд╣ рдХреНрдпреЛрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдФрд░ рдЖрдо рддреМрд░ рдкрд░ рдЗрди рд╕рднреА рдкреИрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ, рдпрд╣ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ред 1C рдХреЛ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ SQLSQL рдХреЛ MSSQL рдХреА рддрд░рд╣ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛! рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЛрдВрдиреЗ рд╡рд╣рд╛рдБ рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдпрд╛! рд╡реИрд╕реЗ рднреА, рд╣рдореЗрдВ рдПрдХ рджрд┐рдирд╛рдВрдХрд┐рдд рдорд┐рд▓рд╛ рд╣реИред



рдмрд╕ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣рд╛рдБ рдЙрд╕рдХрд╛ рдХреЛрдб рд╣реИ:

рд╕реГрдЬрди рдпрд╛ рд╕рдореАрдХреНрд╖рд╛ рд╕рдорд╛рд░реЛрд╣ рджрд┐рдирд╛рдВрдХрд┐рдд (рдЪрд░рд┐рддреНрд░ рднрд┐рдиреНрди, рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХреЗ рдмрд┐рдирд╛ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк, рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХреЗ рдмрд┐рдирд╛ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк)

рд░рд┐рдЯрд░реНрдиреНрд╕ рдкреВрд░реНрдгрд╛рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ

$ BODY $

рдШреЛрд╖рд┐рдд

$ 1 рдХреЗ рд▓рд┐рдП arg_mode рдЙрдкрдирд╛рдо;

$ 2 рдХреЗ рд▓рд┐рдП arg_d2 рдЙрдкрдирд╛рдо;

$ 3 рдХреЗ рд▓рд┐рдП arg_d1 рдЙрдкрдирд╛рдо;

рд╢реБрд░реВ

рдЕрдЧрд░ arg_mode = 'SECOND' рддрдм

рд╡рд╛рдкрд╕реА date_part ('epoch', arg_d1) - date_part ('epoch', arg_d2);

elsif arg_mode = 'MINUTE' рддрдм

рд╡рд╛рдкрд╕реА рдЫрдд ((date_part ('epoch', arg_d1) - date_part ('epoch', arg_d2)) / 60);

elsif arg_mode = 'HOUR' рддрдм

рд╡рд╛рдкрд╕реА рдЫрдд ((date_part ('epoch', arg_d1) - date_part ('epoch', arg_d2)) / 3600);

elsif arg_mode = 'DAY' рддрдм

рд░рд┐рдЯрд░реНрди рдХрд╛рд╕реНрдЯ (рддрд╛рд░реАрдЦ рдХреЗ рд░реВрдк рдореЗрдВ arg_d1) - рдХрд╛рд╕реНрдЯ (рддрд╛рд░реАрдЦ рдХреЗ рд░реВрдк рдореЗрдВ arg_d2);

elsif arg_mode = 'WEEK' рддрдм

рд░рд┐рдЯрд░реНрди рд╕реАрдЗрд▓ ((рдХрд╛рд╕реНрдЯ (рддрд╛рд░реАрдЦ рдХреЗ рд░реВрдк рдореЗрдВ arg_d1) - рдХрд╛рд╕реНрдЯ (рддрд╛рд░реАрдЦ рдХреЗ рд░реВрдк рдореЗрдВ arg_d2)) / 7.0);

elsif arg_mode = 'рдорд╣реАрдиреЗ' рддрдм

рд╡рд╛рдкрд╕реА 12 * (date_part ('рд╡рд░реНрд╖', arg_d1) - date_part ('рд╡рд░реНрд╖', arg_d2)

+ date_part ('рдорд╣реАрдирд╛', arg_d1) - date_part ('рдорд╣реАрдирд╛', arg_d2);

elsif arg_mode = 'QUARTER' рддрдм

рд╡рд╛рдкрд╕реА 4 * (date_part ('рд╡рд░реНрд╖', arg_d1) - date_part ('рд╡рд░реНрд╖', arg_d2)

+ date_part ('рддрд┐рдорд╛рд╣реА', arg_d1) - date_part ('рддрд┐рдорд╛рд╣реА', arg_d2);

elsif arg_mode = 'YEAR' рддрдм

рд╡рд╛рдкрд╕реА (date_part ('рд╡рд░реНрд╖', arg_d1) - date_part ('рд╡рд░реНрд╖', arg_d2));

рдЕрдВрдд рдЕрдЧрд░;

рдЕрдВрдд

$ BODY $

рднрд╛рд╖рд╛ plpgsql VOLATILE

COST 100;



рдЪреЗрддрд╛рд╡рдиреА! рд╣реЗрдмреНрд░рд┐рд╕ рдкрд░ рдкреНрд░рд╛рд░реВрдкрдг рдкрд╛рда рдПрдХ рд╣рд╛рдЗрдлрд╝рди рдХреЗ рд╕рд╛рде рдЛрдг рдЪрд┐рд╣реНрди рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдкрд╛рда рдХреЛ рдкрд╣рд▓реЗ рдПрдХ рдкрд╛рда рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВ, рдФрд░ рд╡рд╣рд╛рдВ рдереЛрдХ рдореЗрдВ рдПрдХ рдЫреЛрдЯреА рдорд╛рдЗрдирд╕ рдХреЗ рд╕рд╛рде рд▓рдВрдмреА рд╣рд╛рдЗрдлрд╝рди рдХреЛ рдмрджрд▓реЗрдВ, рдЕрдиреНрдпрдерд╛ рдкреЛрд╕реНрдЯрдЧреНрд░рд╛рдЙрдВрдбреНрд╕ рд╢рдкрде рд▓реЗрдВрдЧреЗ :-)



рд▓реЛрдЧреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЧрд┐рдиреЗрдВ :-)



рдЯреЗрдореНрдкрд▓реЗрдЯ 1 = # 1 рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ pg_proc рд╕реЗ рдЬрд╣рд╛рдВ ('plpgsql_call_handler', 'datediff', 'mchar_in', 'mc_mv_icase_cmp', 'fasttruncate') рдореЗрдВ рдирд╛рдо рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ;

рдХреЙрд▓рдо?

- 1

1

1

1

1

(5 рдкрдВрдХреНрддрд┐рдпрд╛рдБ)



рдЪреАрдпрд░реНрд╕ рдХреА рддрд░рд╣! рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╣рд╛рдБ рдерд╛ :-) 10 рдмрд╛рд░ рд╣рдо рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЙрдирдореЗрдВ рд╕реЗ рдкрд╛рдВрдЪ рд╣реИрдВред рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╛рдБрдЪ рд╣реИрдВ! рдФрд░ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ 1 рд╕реА рдЕрднреА рднреА рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░рд╛ рдЖрдзрд╛рд░ рдЦрд░рд╛рдм рд╣реИ, рдФрд░ рдпрд╣ рдЖрдЧреЗ рдирд╣реАрдВ рдмрдврд╝рддрд╛ рд╣реИред рд╣рдо рдлрд┐рд░ рд╕реЗ рд╕рднреА рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ (рдЯреБрдХрдбрд╝реЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА!) 1C рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╕рдордп рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрдиреБрд░реЛрдзред рд╣рдо рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рд╡рд╣ рдЬреЛ рдХреБрдЫ рднреА рдХрд░ рд╕рдХрддреА рд╣реИ, рд╡рд╣ рд╕рднреА рдХреЛ рдЧрд┐рдирдирд╛ рд╣реИ! рд▓реЗрдХрд┐рди рдЙрдирдореЗрдВ рд╕реЗ 5 рд╣реИрдВ !!!

рд╣рдордиреЗ 1 рд╕реА рд╕рд╛рдЗрдЯ рд╕реЗ рд╕рдВрдЧреНрд░рд╣ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж 3 рдШрдВрдЯреЗ рдореЗрдВ рдпрд╣ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ред рдлрд┐рд░ рдПрдХ рдирд░реНрддрдХреА рдХреЗ рд╕рд╛рде рдиреГрддреНрдп рд╢реБрд░реВ рдХрд┐рдпрд╛ред рдХрдИ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг, рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ, рдПрдЯрд░рд╕реЙрдлреНрдЯ рд╕реЗ рд╡рд┐рддрд░рдг ... рд▓реЗрдХрд┐рди рдЖрдЙрдЯрдкреБрдЯ рдПрдХ рд╣реА рд╣реИ: рдкрд╛рдВрдЪ рдХрд╛рд░реНрдп, рдкрд╛рдВрдЪ рдЗрдХрд╛рдЗрдпрд╛рдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рджреАрд╡рд╛рд░ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рд┐рд░ред

рдФрд░ рдлрд┐рд░ рдПрдХ рдХрд╛рд░реНрдп рд╡рд┐рдиреНрдпрд╛рд╕ рдкрд░ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЪрд╛рд░ рдЖрдпрд╛ ... рд╣рдо рдПрдХ рджреЛрд╕реНрдд рдХреЛ рдореЗрд▓ рджреНрд╡рд╛рд░рд╛ рдкрд╛рда рднреЗрдЬрддреЗ рд╣реИрдВ, рд╡рд╣ рдЗрд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдЦрд┐рд▓рд╛рддрд╛ рд╣реИ, рдФрд░ рдкрд░рд┐рдгрд╛рдо рднреЗрдЬрддрд╛ рд╣реИ:



рдбреЗрдореЛ = # 1 рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ pg_proc рд╕реЗ рдЬрд╣рд╛рдВ ('plpgsql_call_handler', 'datediff', 'mchar_in', 'mc_mv_icase_cmp', 'fasttruncate') рдореЗрдВ рдирд╛рдо рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ;

рдХреЙрд▓рдо?

- 1

1

1

1

1

1

(6 рдкрдВрдХреНрддрд┐рдпрд╛рдБ)



рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╢рд╛рдВрдд рд╕реНрддреВрдк рд╣реИред рд╡рд┐рдЪрд╛рд░ рдХрдард┐рдирд╛рдИ рд╕реЗ рдЪрд▓рддреЗ рд╣реИрдВред рдХрд┐рд╕реА рдиреЗ рдиреЛрдЯрд┐рд╕ рдХрд┐рдпрд╛ рдХрд┐ рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ :-))

рддрд╛рд░реНрдХрд┐рдХ рд╣реИред рдореЗрд▓ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдореЗрдВ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ plpgsql_call_handler рджреЛ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рд╣реИред рдбреЗрдореЛ рдорд╢реАрди рдкрд░ pg_proc рдЬрд╣рд╛рдБ proname = 'plpgsql_call_handler' рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реБрдП, pronamespace рдлрд╝реАрд▓реНрдб рдХреЛ рдЫреЛрдбрд╝рдХрд░, рджреЛ рд╕рдорд╛рди рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд┐рдпрд╛ред

рд╣рд╛рдереЛрдВ рд╕реЗ рдЖрдЧреЗ рд▓рдВрдмреЗ рдкреНрд░рдпрд╛рд╕ pg_proc рд╕рд┐рд╕реНрдЯрдо рдЯреЗрдмрд▓ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦрд┐рд▓рд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЦрд┐рд▓рд╛рдП рдЧрдП рдореВрд▓реНрдпреЛрдВ рдкрд░ рд╢рдкрде рд▓реЗрддреЗ рд╣реИрдВред

рдлрд┐рд░ рд╕реЗ рд╕реНрддрдмреНрдзред рдХрд╛рд░рдг рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ - рдирд╣реАрдВред

рдФрд░ рдпрд╣рд╛рдВ рд╣рдо рдпреИрдВрдбреЗрдХреНрд╕ рдореЗрдВ рдПрдХ рд╢рдмреНрдж рдЯрд╛рдЗрдк рдХрд░рддреЗ рд╣реИрдВ: plpgsql_call_handler (рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдВрдпреЛрдЬрдиреЛрдВ рдиреЗ Google рдХреА рдХреЛрд╢рд┐рд╢ рдХреА)ред рдкрд╣рд▓реЗ рд╕реНрдерд╛рди рдкрд░ рд╕рд╛рдЗрдЯ рд╣реИ www.samag.ru/art/10.2004/2004_07.html , рдЬрд╣рд╛рдБ рдпрд╣ рдХрд╣рддреА рд╣реИ:



рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рднрд╛рд╖рд╛ PL / pgSQL рдирд┐рд░реНрдорд┐рдд рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ:



pg_language рд╕реЗ * рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ;

рдпрджрд┐ рдкрд░рд┐рдгрд╛рдо рдореЗрдВ plpgsql рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╣реИ, рддреЛ рдЕрдкрдиреЗ OS рдХреЗ рдХрдорд╛рдВрдб рд╢реЗрд▓ рд╕реЗ рдирд┐рдореНрди рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ:



$ createlang -U pgsql plpgsql рдирд╛рдЗрдпреЛрдВ

-U рд╡рд┐рдХрд▓реНрдк рдбреЗрдЯрд╛рдмреЗрд╕ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рдУрд░ рд╕реЗ рдпрд╣ рдСрдкрд░реЗрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред



рдирд┐рдореНрди рджреЛ рдЖрджреЗрд╢реЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдХреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдо (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, psql) рд╕реЗ рднрд╛рд╖рд╛ рд╕рдорд░реНрдерди рднреА рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:



рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдПрдВ plpgsql_call_handler ()

рднрд╛рд╖рд╛_рд╣реИрдВрдбрд▓рд░ рд▓реМрдЯрд╛рддрд╛ рд╣реИ

'$ libdir / plpgsql' рдХреЗ рд░реВрдк рдореЗрдВ, 'plpgsql_call_handler'

рднрд╛рд╖рд╛ 'рдЧ';

рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рднрд╛рд╖рд╛ 'plpgsql' рдмрдирд╛рдПрдВ

рд╣реИрдВрдбрд▓рд░ plpgsql_call_handler;

рдЙрдирдореЗрдВ рд╕реЗ рдкрд╣рд▓рд╛ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕рдорд╛рд░реЛрд╣ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рд╣реИрдВрдбрд▓рд░ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рддрд╛ рд╣реИ, рджреВрд╕рд░рд╛ - рдкреАрдПрд▓ / рдкреАрдЬреАрд╕реАрдХреНрдпреВ рднрд╛рд╖рд╛ рд╕реНрд╡рдпрдВ рдКрдкрд░ рдмрдирд╛рдП рдЧрдП рд╣реИрдВрдбрд▓ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред





рдФрд░ рдлрд┐рд░ рдЗрд╕ рдкрд░ рдлрд┐рд░ рд╕реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП -: -рдкреЙ

рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдбрд╛рд▓реЛ:

рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдПрдВ plpgsql_call_handler ()

рднрд╛рд╖рд╛_рд╣реИрдВрдбрд▓рд░ рд▓реМрдЯрд╛рддрд╛ рд╣реИ

'$ libdir / plpgsql' рдХреЗ рд░реВрдк рдореЗрдВ, 'plpgsql_call_handler'

рднрд╛рд╖рд╛ 'рдЧ';



рдЯреЗрдореНрдкрд▓реЗрдЯ 1 = # рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдПрдВ plpgsql_call_handler ()

template1- # рд░рд┐рдЯрд░реНрди рднрд╛рд╖рд╛_рд╣реИрдВрдбрд▓рд░

template1- # as '$ libdir / plpgsql', 'plpgsql_call_handler'

template1- # рднрд╛рд╖рд╛ 'рдЧ';

рдирд┐рд░реНрдорд╛рдг рдХрд╛рд░реНрдп

template1 = # select * pg_proc рд╕реЗ рдЬрд╣рд╛рдВ proname = 'plpgsql_call_handler';

рд╕рд░реНрд╡рдирд╛рдо | рд╕рд░реНрд╡рдирд╛рдо | рднрд╡рд┐рд╖реНрдпрд╡рдХреНрддрд╛ | рдкреНрд░реЛрд▓рдВрдЧ | procost | prorows | рдкреНрд░реЛрд╡реЗрд░рд╛рдбрд┐рдХ | proisagg | proiswindow | рдЕрднрд┐рдпреЛрдЧ | рднрд╡рд┐рд╖реНрдпрджреНрд╡рд╛рдгреА | proretset | рдЙрддреНрддреЗрдЬрдХ | рд╕рд░реНрд╡рдирд╛рдо | pronargdefaults | prorettype | proggtypes | proallargtypes | рдкреНрд░рд╛рд░реНрдЧрдореЛрдбреНрд╕ | рдкреНрд░рд╛рдЧрд░реНрдирд╛рдореЗрдВ | proggdefaults | рдкреЗрд╢реЗрд╡рд░реЛрдВ рдкреНрд░реЛрдмрд┐рди | proconfig | proacl

---------------------- + -------------- + ---------- + - -------- + --------- + --------- + ------------- + ------- --- + ------------- + ----------- + ------------- + ------ ----- + ------------- + ---------- + ----------------- + - ----------- + ------------- + ---------------- + ------- ------ + ------------- + ---------------- + ------------ ---------- + ----------------- + ----------- + --------

plpgsql_call_handler | 11 | 10 | 13 | 1 | 0 | 0 | рдЪ | рдЪ | рдЪ | рдЪ | рдЪ | рд╡реА | 0 | 0 | 2280 | | | | | | plpgsql_call_handler | $ libdir / plpgsql | |

plpgsql_call_handler | 2200 | 10 | 13 | 1 | 0 | 0 | рдЪ | рдЪ | рдЪ | рдЪ | рдЪ | рд╡реА | 0 | 0 | 2280 | | | | | | plpgsql_call_handler | $ libdir / plpgsql | |

(2 рдкрдВрдХреНрддрд┐рдпрд╛рдБ)



рдпрд╣рд╛рдБ рд╡реЗ рд╣реИрдВ :-)

рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:



рдЯреЗрдореНрдкрд▓реЗрдЯ 1 = # 1 рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ pg_proc рд╕реЗ рдЬрд╣рд╛рдВ ('plpgsql_call_handler', 'datediff', 'mchar_in', 'mc_mv_icase_cmp', 'fasttruncate') рдореЗрдВ рдирд╛рдо рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ;

рдХреЙрд▓рдо?

- 1

1

1

1

1

1

(6 рдкрдВрдХреНрддрд┐рдпрд╛рдБ)



рдЕрдВрддрд┐рдо - рдЯреЗрдореНрдкрд▓реЗрдЯ 1 рд╕реЗ рдПрдХ рдЖрдзрд╛рд░ рдмрдирд╛рдПрдВ:



template1 = # рдбреЗрдЯрд╛рдмреЗрд╕ рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬ рдмрдирд╛рдПрдБ;

DATABASE рдмрдирд╛рдПрдВ



рдФрд░ рдЕрдм рд╣рдо 1C рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрджреНрдпрдо рдкрд░ рд╕реЗрдЯ рд╣реЛрддреЗ рд╣реИрдВ ... рдУрд╣ рдЪрдорддреНрдХрд╛рд░! рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ 1C рдиреЗ рдкреВрд░реЗ рдврд╛рдВрдЪреЗ рдХреЛ рдмрд╛рдврд╝ рджрд┐рдпрд╛ред



рдФрд░ рдЕрдм рд╕рд╡рд╛рд▓ред рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ 1C рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреА рджреЛ рд╕рдорд╛рди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдБ рдХреНрдпреЛрдВ рд╣реЛрддреА рд╣реИрдВ ???

:-)))



PS рддрдм, рдЬрдм рд╡реЗ рдЦреЗрд▓ рд░рд╣реЗ рдереЗ, рдЙрдиреНрд╣реЛрдВрдиреЗ рдбреИрдЯрд┐рдбрд┐рдл рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛, рдкрд╛рдпрд╛ рдХрд┐ рдпрд╣ plpgsql_call_handler рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ:

template1 = # рдбреНрд░реЙрдк рднрд╛рд╖рд╛ plpgsql;

рддреНрд░реБрдЯрд┐: рднрд╛рд╖рд╛ plpgsql рдХреЛ рдирд╣реАрдВ рдЫреЛрдбрд╝ рд╕рдХрддреА рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреНрдп рд╡рд╕реНрддреБрдПрдБ рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИрдВ

рд╡рд┐рд╡рд░рдг: рдлрд╝рдВрдХреНрд╢рди рдбреЗрдбрд┐рдЯрдл (рд╡рд░реНрдг рднрд┐рдиреНрдирддрд╛, рдЯрд╛рдЗрдо рдЬрд╝реЛрди рдХреЗ рдмрд┐рдирд╛ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк, рдЯрд╛рдЗрдо рдЬрд╝реЛрди рдХреЗ рдмрд┐рдирд╛ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк) рднрд╛рд╖рд╛ рдХреЗ рдкреНрд▓реЗрдЯреНрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ

рд▓реЗрдХрд┐рди рд╕рднреА рдПрдХ рд╣реА, рд╡реЗ рдпрд╣ рдирд╣реАрдВ рд╕рдордЭ рдкрд╛рдП рдХрд┐ рдпрд╣ рдПрдорд░реНрд╕реЙрдлреНрдЯ рдпрд╛ 1 рд╕реА :-) рдХреЗ рдЗрдХрдЯреНрдареЗ рд╡рд┐рддрд░рдг рдореЗрдВ рдХрд╣рд╛рдВ рд╕реЗ рдЖрдпрд╛ рд╣реИ)



All Articles