Не подскажете в чем причина?
При попытке создания базы:
Ошибка СУБД:
58P01: ERROR: could not open extension control file «/usr/share/pgsql/extension/mchar.control»: No such file or directory
База на Postgre при этом создаётся. Если повторить создание базы на 1С сервере, то получаем другую ошибку:
DATABASE не пригоден для использования
Версии софта:
ALT Server 10.0 + PostgreSQL 13.5 сборка для 1С ; 1С сервер 8.3.20.1789 или 8.3.17 на Windows 2008
russian
postgresql
it
database
8
ответов
Постгрес патченный для 1с?
Постгрес патченный для 1с?
он из родного репо, заявлен для 1С, устанавливал так
apt-get install postgresql13-1C-server
Максим MaxS
он из родного репо, заявлен для 1С, устанавливал …
Да я скачал его. Это какой-то огрызок. Там нет mchar
Максим MaxS
12-й попробовать?
Контриб пакет поставьте
Максим MaxS
он из родного репо, заявлен для 1С, устанавливал …
Из родного для чего?
14-й есть от ПГ Про
Dmitry Kononov
Из родного для чего?
14-й есть от ПГ Про
ALT Server 10.0 искал так
apt-cache search 1C-server
Это проблема установки расширения. В пг отсутствует тип mchar, без него 1ц работать не будет. Проблма решается дистро-специфично.
**
(Postgrex.Error)ERROR 58P01
(undefined_file): could not open extension control file «/usr/local/Cellar/postgresql@9.6/9.6.5/share/postgresql@9.6/extension/postgis.control»: No such file or directory
I’m getting this error when I try to run mix ecto.migrate
…
Why is it looking at that path? I’ve tried moving postgis.control
If I run this command find /usr -name postgis.control
it gives me this result:
/usr/local/Cellar/postgis/2.4.0_1/share/postgresql/extension/postgis.control
/usr/local/share/postgresql@9.6/extension/postgis.control
Does anybody know how I can move postgis.control or what I could be doing wrong?
asked Nov 8, 2017 at 2:18
The file postgis.control
should be in the extension
subdirectory of the PostgreSQL share directory. You can find out the location of the share directory by running pg_config --sharedir
.
All the other files that belong to the PostGIS extension must also be in place: the SQL files in the same directory as the control file, and the shared libraries in pg_config --libdir
.
answered Nov 8, 2017 at 8:54
Laurenz AlbeLaurenz Albe
190k17 gold badges175 silver badges229 bronze badges
I am receiving this error when I create extension postgis;
:
SQL Error [58P01]: ERROR: could not open extension control file
«C:/POSTGR~1/10.5/pg10/../pg10/share/postgresql/extension/postgis.control»:
No such file or directory
The cause appears to be an incorrect path (an extra postgresql). It should be:
"C:/POSTGR~1/10.5/pg10/../pg10/share/extension/postgis.control"
This PostGIS installer that I used is: http://download.osgeo.org/postgis/windows/pg10/postgis-bundle-pg10x64-setup-2.5.0-1.exe
And I am running PostgreSQL 10.5 on x86_64-pc-mingw64, compiled by gcc.exe (Rev5, Built by MSYS2 project) 4.9.2, 64-bit
While my question is a near duplicate of https://gis.stackexchange.com/a/71476/31, the issue is specific to PostgreSQL 10/PostGIS 2.5, and I don’t think the answer is necessarily the same (since there is no spatial_ref_sys.sql file).
Is there way to correct the error? If not, which files in the extension directory have to run (and in which order) to create the PostGIS extension?
It should be an intermediate temporary table, which will be destroyed when it is used up.
F6_BDC=# set gp_select_invisible = 1; SET F6_BDC=# select * from gp_dist_random('pg_class') where relfilenode = 40704489; F6_BDC=# F6_BDC=# F6_BDC=# select count(1) from gp_dist_random('pg_class') where relfilenode = 40704489; count ------- 0 (1 行记录)
Same Question:
2022-07-17 19:01:03.039771 CST,,,p2287108,th448833664,,,,0,,,seg2,,,,,"ERROR","58P01","could not open file ""base/863243/t_40811755"": No such file or directory",,,,,"writing block 63 of relation base/863243/t_40811755",,0,,"md.c",665,"Stack trace:
1 0xbf112c postgres errstart (elog.c:557)
2 0xa7ee33 postgres <symbol not found> (md.c:663)
3 0xa817f7 postgres mdwrite (md.c:1937)
4 0xa4f40a postgres <symbol not found> (bufmgr.c:2193)
5 0xa4fdb7 postgres BgBufferSync (bufmgr.c:2105)
6 0x9ff483 postgres BackgroundWriterMain (bgwriter.c:289)
7 0x785953 postgres AuxiliaryProcessMain (bootstrap.c:389)
8 0xa0d535 postgres <symbol not found> (postmaster.c:5854)
9 0xa0e3c7 postgres <symbol not found> (postmaster.c:5523)
10 0x78f918201630 libpthread.so.0 <symbol not found> + 0x18201630
11 0x78f91767a983 libc.so.6 __select + 0x13
12 0x6ad905 postgres <symbol not found> (postmaster.c:1894)
13 0xa0f982 postgres PostmasterMain (postmaster.c:1523)
14 0x6b24a1 postgres main (main.c:205)
15 0x78f9175a7555 libc.so.6 __libc_start_main + 0xf5
16 0x6be1bc postgres <symbol not found> + 0x6be1bc
"
F6_BDC=# set gp_select_invisible = 1; SET F6_BDC=# select * from gp_dist_random('pg_class') where relfilenode = 40811755; WARNING: could not write block 33 of base/863243/t_40811755 (seg2 slice1 10.13.0.31:40002 pid=245910) 描述: Multiple failures --- write error might be permanent. ERROR: could not open file "base/863243/t_40811755": No such file or directory (seg2 slice1 10.13.0.31:40002 pid=245910) 背景: writing block 33 of relation base/863243/t_40811755 F6_BDC=# -- retry... F6_BDC=# select * from gp_dist_random('pg_class') where relfilenode = 40811755; relname | relnamespace | reltype | reloftype | relowner | relam | relfilenode | reltablespace | relpages | reltuples | relallvisible | reltoastrelid | relhasindex | relisshared | relpersistence | relkind | relstorage | relnatts | relchecks | relhasoids | relhaspkey | relhasrules | relhastriggers | relhassubclass | relispopulated | relreplident | relfrozenxid | relminmxid | relacl | reloptions -------------------------------+--------------+---------+-----------+----------+-------+-------------+---------------+----------+-----------+---------------+---------------+-------------+-------------+----------------+---------+------------+----------+-----------+------------+------------+-------------+----------------+----------------+----------------+--------------+--------------+------------+--------+------------ idx_temp_mes_detail_group_key | 85946806 | 0 | 0 | 17133 | 403 | 40811755 | 0 | 135 | 65369 | 0 | 0 | f | f | t | i | h | 1 | 0 | f | f | f | f | f | t | n | 0 | 0 | | (1 行记录)
This problem seems to be caused by gp_toolkit.gp_size_of_schema_disk?
2022-07-17 15:54:40.133290 CST,"bdctester","F6_BDC",p541320,th-1260595072,"192.168.2.12","57288",2022-07-16 09:33:54 CST,0,con18637748,cmd5528,seg-1,,,,sx1,"ERROR","58P01","could not open file ""base/863243/t_40786969"": No such file or directory (seg10 10.13.0.31:50002 pid=4191267)",,,,,"writing block 5 of relation base/863243/t_40786969","SELECT current_database() datname, sosdnsp AS nspname, sosdschematablesize AS table_size_bytes, sosdschemaidxsize AS idx_size_bytes FROM gp_toolkit.gp_size_of_schema_disk
",0,,"md.c",665,
2022-07-17 15:54:40.133349 CST,"bdctester","F6_BDC",p541320,th-1260595072,"192.168.2.12","57288",2022-07-16 09:33:54 CST,0,con18637748,cmd5528,seg-1,,,,sx1,"LOG","00000","An exception was encountered during the execution of statement: SELECT current_database() datname, sosdnsp AS nspname, sosdschematablesize AS table_size_bytes, sosdschemaidxsize AS idx_size_bytes FROM gp_toolkit.gp_size_of_schema_disk
",,,,,,"SELECT current_database() datname, sosdnsp AS nspname, sosdschematablesize AS table_size_bytes, sosdschemaidxsize AS idx_size_bytes FROM gp_toolkit.gp_size_of_schema_disk
",0,,"elog.c",2116,
2022-07-17 16:10:42.477387 CST,,,p568,th-1260595072,,,,0,,,seg-1,,,,,"LOG","00000","3rd party error log:
WARNING: could not write block 4 of base/863243/t_40786969 (seg10 slice1 10.13.0.31:50002 pid=24170)
DETAIL: Multiple failures --- write error might be permanent.
WARNING: could not write block 5 of base/863243/t_40786969 (seg10 slice1 10.13.0.31:50002 pid=24205)
DETAIL: Multiple failures --- write error might be permanent.
",,,,,,,,"SysLoggerMain","syslogger.c",742,
F6_BDC=# SELECT current_database() datname, sosdnsp AS nspname, sosdschematablesize AS table_size_bytes, sosdschemaidxsize AS idx_size_bytes FROM gp_toolkit.gp_size_of_schema_disk; WARNING: could not write block 4 of base/863243/t_40786969 (seg10 10.13.0.31:50002 pid=139685) 描述: Multiple failures --- write error might be permanent. ERROR: could not open file "base/863243/t_40786969": No such file or directory (seg10 10.13.0.31:50002 pid=139685) 背景: writing block 4 of relation base/863243/t_40786969 F6_BDC=# select count(1) from gp_dist_random('pg_class') where relfilenode = 40786969; count ------- 0 (1 行记录) F6_BDC=# SELECT current_database() datname, sosdnsp AS nspname, sosdschematablesize AS table_size_bytes, sosdschemaidxsize AS idx_size_bytes FROM gp_toolkit.gp_size_of_schema_disk; ERROR: non-MVCC snapshots are not supported in index-only scans (nodeIndexonlyscan.c:136)
Kamnium
13.03.07 — 23:09
Пришлось устанавливать 1С на Linux-сервер. Все свои действия аккуратно записал и заскриншотил:
http://life.screenshots.ru/the-code-inside/php-platform/linux-1c-setup/
Буду благодарен за уточнения и сообщения о неточностях.
baklan22
101 — 24.05.07 — 11:23
хм , тогда может весь postgresql.conf сюда, правда большой он…
Shuls
102 — 24.05.07 — 11:41
пoлучилось, теперь вылази вот это ERROR could not access file «$LIBDIR/MCHAR»: No such file or directory.
baklan22
103 — 24.05.07 — 12:11
А это уже связано , кажется , с тем, что установлен не 1с-овский постгрес
Shuls
104 — 24.05.07 — 12:19
спасибо большое за помощь.
Shuls
105 — 25.05.07 — 04:24
Помогите пож разобраться ещё в 1 ошибке. При создании БД выдает:
ERROR could not access file «$LIBDIR/MCHAR»: No such file or directory.
либо
DATABASE не пригоден для использования.
может я неправильно её создаю? или все таки косяк в postgre?
Буду благодарен за помощь.
3uJI
106 — 25.05.07 — 13:22
(105) читай пост 103 …
Shuls
107 — 30.05.07 — 11:09
Уже приобрёл в компании саму 1С и к ней Postgre. Все равно при создании БД вылазит
ERROR could not access file «$LIBDIR/MCHAR»: No such file or directory.
а потом
DATABASE не пригоден для использования.
Думаю, я что то в конфигах не то прописал, покажите содержимое своих у кого все работает (postresql.conf и pg_hba.conf), заранее спасибо!
frost_p
108 — 31.05.07 — 16:03
Народ кто-нибудь ответил expert? Та же самая проблема, но для винды. PostgreSQL 8.1.5, 1C-Предприятие 8.1.7. Все встало под винду без проблем, база создается. Но при запуске конфигуратора «Ошибка создания информационной базы»
«Ошибка установки или изменения национальных настроек информационной базы
Порядок сортировки не поддерживается базой данных». Перевод базы в любую другую кодировку не помогает.
3uJI
109 — 01.06.07 — 09:51
(108) вероятно при установке постгри неправильно была выбрана кодировка (должна быть utf-8) …
кстати, «сама 1С» в официальном руководстве по установке под винду грит устанавливать язык аглицкий ..вот передо мной книжица «1с предприятие 8,1 клиент-сервер особенности установки» — там и на скринах тоже самое…как-то , ради интереса, ставил постгри на вин2003 — нормально работает ..
Shuls
110 — 04.06.07 — 09:44
Народ у кого работает 1С на линуксе, покажите содержимое postgresql.conf и pg_hba.conf
expert
111 — 05.06.07 — 10:30
Не могу ставить язык английкий. у меня база, которая конвертится из 8.0 — русская
anykeyman
112 — 05.06.07 — 12:43
при инциализации кластера БД параметр Location (default:C) надо выбрать
Russian. И тогда «ругань: Порядок сортировки не поддерживается БД» — исчезает.
Ay49Mihas
113 — 05.06.07 — 13:11
(112) Обычно это называется locale. Уроды, млин.
illi
114 — 15.06.07 — 21:25
-> 110
У меня пока не работает
Могу подсказать вот что — Постгрес умеет логгировать практически всё.
Настраивается в postgresql.conf, секция # ERROR REPORTING AND LOGGING
Для отладки рекомендую включить
log_connections = on
log_statement = ‘all’ # ТОЛЬКО НА ВРЕМЯ ОТЛАДКИ !!!
Тогда в логах будут видны все выполняемые команды. Так вот, при создании БД туда пишется
……
Jun 15 20:58:49 servera postgres[7341]: [18-1986] CREATE OR REPLACE FUNCTION fasttruncate(text)
Jun 15 20:58:49 servera postgres[7341]: [18-1987] RETURNS void AS ‘$libdir/fasttrun’
Jun 15 20:58:49 servera postgres[7341]: [18-1988] LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
Jun 15 20:58:49 servera postgres[7341]: [18-1989]
Jun 15 20:58:49 servera postgres[7341]: [19-1] LOG: statement: ROLLBACK
Очевидно, надо смотреть, где же создаётся эта функция — «fasttruncate».
ЗЫ. знать бы, как логгирование самого 1С-сервера включить 8).
illi
115 — 18.06.07 — 19:53
Ошибка «ERROR could not access file «$LIBDIR/MCHAR»: No such file or directory.» и аналогичные, вызваны тем, что библиотеки для работы с этими типами находятся в ‘contrib-ах’ постгреса. В поставке или при сборке из srpm-cа собираются в отдельный rpm(например, postgresql-contrib-8.2.4-1.1C.x86_64.rpm), который обязательно установить. Кто собирает из сырцов — сам догадается, что делать 8).
Таким образом, должны быть установлены —
# rpm -qa | grep -i postgres
postgresql-server-8.2.4-1.1C
postgresql-8.2.4-1.1C
postgresql-contrib-8.2.4-1.1C
postgresql-libs-8.2.4-1.1C
vitlav
116 — 30.06.07 — 16:29
Вот ещё описание установки 1С 8.1 на Linux — как сервера, так и клиента.
http://wiki.etersoft.ru/ProgrammnoeObespechenie/BuxUchjot/Ustanovka1S81
Ay49Mihas
117 — 07.07.07 — 14:46
(112) У кого ругань на «Неправильный порядок сортировки», мне помог такой
способ: удалить /var/lib/pgsql/data. Зайти в систему под пользователем postgres
и сделать initdb -E UTF8 /var/lib/pgsql/data
Arhogius
118 — 26.07.07 — 13:40
У меня таже фигня с ошибкой 10061(0x0000274D)
(Конечный компьютер отверг запрос на подключение) , верх-дном все конфиги уже перевернул, неск раз всё по переустанавливал, перечитал кучу инфы по установке 1с 8.1 и Линукс, один хрен вылазиет.. можь кто знает чё делать то?
illich
119 — 31.07.07 — 14:42
(117) — не прокатило. А вот su — postgres -c ‘LANG=ru_RU initdb /var/lib/pgsql/data’ — прокатило.
illich
120 — 31.07.07 — 14:45
извиняюсь! д.б. так: su — postgres -c ‘LANG=ru_RU.UTF-8 initdb /var/lib/pgsql/data’
Murdoch
121 — 13.08.07 — 12:41
(76)
как ты поборол вот эту ошибку ?
«Ошибка соединения с сервером 1С:Предприятия 8.1:
server_addr=tcp://fedora.domen.ru:1540 descr=Ошибка сетевого доступа к серверу
(Windows Sockets — 10064(0x00002750). Произошла ошибка операции на сокете, т.к. конечный хост выключен.)
я могу переставить начисто систему, но там уже много чего настроено, и скачано на 800 метров апдейтов.
как побороть ее без переустановки линукса ?
[root@itserv Murdoch]# netstat -na |grep tcp
tcp 0 0 127.0.0.1:2208 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:54952 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:6000 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:631 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:13527 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:7001 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:7002 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:2207 0.0.0.0:* LISTEN
tcp 1 0 192.168.3.12:37661 130.179.31.46:80 CLOSE_WAIT
tcp 1 0 192.168.3.12:47789 209.132.176.120:80 CLOSE_WAIT
tcp 0 0 192.168.3.12:43774 192.168.3.6:3389 ESTABLISHED
tcp 0 0 192.168.3.12:40105 64.12.24.157:5190 ESTABLISHED
tcp 0 0 :::5900 :::* LISTEN
tcp 0 0 :::111 :::* LISTEN
tcp 0 0 :::6000 :::* LISTEN
tcp 0 0 :::22 :::* LISTEN
tcp 0 0 :::631 :::* LISTEN
Murdoch
122 — 13.08.07 — 12:54
фигня какая-то, переставил сервер 1С… работает…
в пятницу 2 раза переставлял — не работало…
акваланг.
Drx211
123 — 30.08.07 — 16:50
Блин… Целый день ковырялся
Mandriva Linux, PostgreSQL с диска ИТС, при попытке добавления новой базы пишет:
«Ошибка СУБД, не верное значение параметра lc_messages:en_US», при этом в файле postrgressql.conf, этот параметр установлен в ru_RU.UTF-8
Что это может быть!?
baklan22
124 — 30.08.07 — 17:11
/usr/share/locales/install-language-pack en_US
и проблема исчезнет.
Drx211
125 — 30.08.07 — 17:51
Спасибо, но че-то я такого пути найти не смог, у меня в /usr/share/ есть locale, может че-то с ним надо сделать?
перцептрон
126 — 30.08.07 — 18:09
»
Drx211
127 — 30.08.07 — 18:10
Скажите же наконец — как на Mandrive en_US локаль поставить — если проблема действительно в этом?
baklan22
128 — 30.08.07 — 18:37
Ну путь может другой, у меня дебиан. Может и название файла install-language-pack другое, хотя большая вероятность, что такое же. Ищи, в этом причина. Надо установить пакет en_US. Собственно говоря, это содержимое скрипта install-language-pack
#!/bin/sh -e
if [ -z «$1» ]; then
echo «Usage: $0 <language code> <class> [<version>]»
exit 0
fi
# install locales for base packages (not for gnome/kde)
if [ -z «$2» ]; then
/usr/sbin/locale-gen «$1»
fi
# reload gdm to make it aware of new locales
if [ -x /etc/init.d/gdm ]; then
if [ -x «`which invoke-rc.d 2>/dev/null`» ]; then
invoke-rc.d gdm reload || exit 0
else
/etc/init.d/gdm reload || exit 0
fi
fi
baklan22
129 — 30.08.07 — 18:39
Отсюда видно, что можно и
/usr/sbin/locale-gen en_US
Drx211
130 — 31.08.07 — 13:00
Спасибо! Хоть решение оказалось и не таким, но направление верное. Действительно — отсутствовала локаль en_US, но что самое интересное — 1С нигде не заявляет что она вообще нужна. В общем установил ее и rpm и все ОК!
systeh
131 — 06.09.07 — 15:34
У меня все установилось !
Сервер Linux fedora 6 на нем postgresql 8.1.5-14.1C и 1С 8.1.8.76
все вроде заработало но как только в базе начинаются болемение серьезные работы выскакивает ошибка: Ошибка на сервере или соединение разорвано администратором. Ошибка формата потока.
Как с этим боротся ???
nemec
132 — 07.09.07 — 19:13
jam
Man Lee
133 — 17.10.07 — 06:14
А как быть с ключём защиты 1с сервера ? он его на линуксе видит ???
f0s999
134 — 22.10.07 — 10:14
народ, кто-нить ставил сервер 1с8.1 линуховый на freebsd.. а то в комплекте идут rpm-ки..
mixrin
135 — 13.12.07 — 10:39
Подскажите, может, кто сталкивался…
Клиент к серверу подключается только со второго раза, первый раз выдаёт:
«Ошибка соединения с сервером 1С:Предприятия 8.1:
server_addr=tcp:#############:1563 descr=Ошибка сетевого доступа к серверу
(Windows Sockets — 10064(0x00002750). Произошла ошибка операции на сокете, т.к. конечный хост выключен.)
Жмем «Перезапустить» — и всё ОК.
Или, если жмём «Отмена», — в следующий раз подключается сразу…
mixrin
136 — 13.12.07 — 12:11
И ещё, если позволите…
Возможна ли работа клиента при помощи идущего в дистрибутиве Мандривы Вайна?
У меня клиент встал, но не дает опций подключения к серверу…
Al113
137 — 16.12.07 — 12:30
А кто-нить сервер на убунту ставил?
baklan22
138 — 16.12.07 — 14:14
(137) ubuntu и suse , ставится без проблем, только малость поколдовать.
Al113
139 — 16.12.07 — 18:22
(138) А можно заклинание узнать?
baklan22
140 — 16.12.07 — 21:07
(139) Можно. Учить линукс. Посмотреть что делают рпм-ки кроме установки самого сервера. Создают пользователя, домашний каталог, скрипт для запуска и т.д. В федоре несколько подругому, поэтому и надо колдовать.
baklan22
141 — 16.12.07 — 21:10
Al113
142 — 16.12.07 — 22:27
(141) Огромное спасибо!
skurgan
143 — 19.12.07 — 13:51
(137) А на счет SUSE не подкинешь инфу?
Al113
144 — 20.12.07 — 09:46
t00r
145 — 05.02.08 — 02:26
ОС: 2.6.23-gentoo-r3
1С: 1C_Enterprise-server-8.1.10-50.i386.rpm
SQL: dev-db/postgresql 8.0.15
————————————————————
Краткая пошаговая инструкция как сделать чтоб всё работало:
1. создать руками юзера usr1cv81:x:1005:1013::/opt/1C:/sbin/nologin
2. руками распаковать сервер в /opt
3. chown usr1cv81.usr1cv81 /opt/1C , cd /opt/1C , chown -R usr1cv81.usr1cv81 ./*
4. раскомментарить 2 локали в /etc/locale.gen — en_US ISO-8859-1 и en_US.utf8 UTF-8 (у меня до установки была тока ru_RU.utf8 UTF-8) — и пересобрать локаль
5. обновить порты чтобы версия постгри была 8.1.15 — это обязательно — на портах месячной давности — 8.1.13 — под этой сборкой проблемы с mchar
6. поменять пасс юзеру postgres =) psql -U postgres -d template1 -c «ALTER USER postgres PASSWORD ‘new_pass’»
7. прописать в hosts на виндовой машине удалённый ИП сервера 1С по имени, на сервере в hosts внести имя для узла 127.0.0.1!!!! (при коннекте к генту серверу админка смотрит виндовый хостс, при создании БД на генту машине смотрит свой /etc/hosts
8. сконнектиться с линухой из под виндовой админки серверов, создать центральный сервер по ИМЕНИ которое у вас в виндовом хостс (у меня просто 2 сервера — один локальный, второй в инете) — создать базу
9. открыть конфигуратор, добавить конфигурацию, выбрав не на локальном компьютере а «На сервере 1С Предприятия»
10. Создать юзеров =) Велкам.
——————————————
http://t00r.com/my/4.PNG — DEVELOPER — моя локальная машина, abbat — машине в инете (в офисе).
t00r
146 — 05.02.08 — 02:30
да, незабудте в /etc/passwd прописать:
usr1cv81:x:1005:1013::/opt/1C:/sbin/nologin
=)
Ay49Mihas
147 — 05.02.08 — 05:55
(145,146) А UID и GUID явно задавать — так и надо?
Морозов Александр
148 — 05.02.08 — 05:57
как все сложно… зато бесплатно
t00r
149 — 05.02.08 — 07:21
уид и гуид те подарит серв)))) бесплатно, значит даром — потратил 3 часа своей жизни, поделился — плохо?
Ay49Mihas
150 — 05.02.08 — 08:38
(149) Так и пиши, для неофитов. Скопируют 1005 и 1013, будут тебя обвинять в
неправильной работе.
abit
151 — 09.02.08 — 16:15
Я может спрошу какую нибудь глупость …:), но тем не менее . Собираемся покупать 1с 8.1 УПП. Посчитали ПО по сервер на MS (W2K3, SQL2005,лицензии туда и туда). Многа ..:( . Встал вопрос о Linux. Почитав ветку остались таки два вопроса:
1. Какой дистрибутив Linux предпочтительней для сервера 1С ? Т.е. сами же 1Сники под чем-то его писали , собирали ,тестили . Интересно что рекомендует сама фирма? На v8.1c.ru такой информации нет ( есть табличка из которй ясно что он работает под Федору , РедХат и АСП ну а поточнее ?).
2. Таки ключ для серверной версии пол Линукс нужен или нет ? Сама 1С вроде пишет, что нет — http://v8.1c.ru/beta81/cluster_linux.htm :
«..Особенности рабочих серверов под управлением Linux
не могут взаимодействовать с СУБД MS SQL Server;
не требуют наличия ключа аппаратной защиты (HASP);
не поддерживается работа с СОМ-объектами. ..»
3. В комплект поставки 1С сервера входит ПО и для Линукса и для Виндовса ?. Или это разные комплекты. Т.е. могу ли я взять диск с сервером купленным (другом) под Винду и поставить его себе на Линукс — ключа ведь вроде не надо ? (Про тюрьму и совесть я в курсе…:) )
Надеюсь на ответы. Спасибо …
abit
152 — 09.02.08 — 16:20
И еще — ASP Server CPE кто-нибудь юзал ? — http://www.asplinux.ru/corporate/products/asplinux-server/cpe/
и почему они пишут :
«..ASPLinux Server ConfPoint Edition 1.0 — идеальное решение для тех, кто разворачивает файловый сервер «1С» на Linux для работы с решениями фирмы «1С»…»
«файловый» а что клиент-сервер его не готовили ?
Опять таки заранее спасибо …:)
Al113
153 — 09.02.08 — 21:02
(151) 1. W2K3 не обязательно покупать под 8.1, вроде. MSSQL тоже -есть бесплатный.постгрес, идет в комплекте
2. У нас вроде не требует пока.
3. На диске есть папки windows linux.
(152) Может, они про 7.7 говорят?
abit
154 — 09.02.08 — 22:43
To Al113:
1. Ну сервер (1С) должен работать под серверной ОС-ю (ИМХО). А под чем еще можно нормально запустить , ну скажем 30 пользователей. PostgreSQL (опять же ИМХО)лучше юзать под Линукс — он ж поднего был изначально вроде написан. Да и материальный смысл теряется если сервер от МС а скуль — Постгре.
Кстати а на чем у Вас все сделано ( интересует ОС-ь , железо , кол-во юзеров, продукт 1С, косяки и глюки ..:) ).
З.Ы. Вот кстати попробовал дома поставить это все на Мандриву 2007 ( давно на диске болтается 2-й ОС-ю с прикрученным ЕТЕРСОФТ-ом -еще 7.7 пробовал..). Взял диск с сервером ( ну есть где..:) )Сервер 8.1 — вроде встал . ПостгреСКЛ — вроде тоже встал . Клиент под ЕТЕРСОФТ-ом тоже вроде встал . Правда конфигурации никакой под рукой нету . Так вот — хочу подключиться к существующей базе — а он дает только путь к ФАЙЛУ БАЗЫ ДАННЫХ . т.Е. ТОЛЬКО ФАЙЛОВЫЙ ВАРИАНТ. А как его заставить создать базу данных ? Может кто подскажет?
И еще под Линух есть какие-нибудь ( лучше GUI-ские .. ну Виндузятник я…:)) инструменты , чтоб полазить в 1С сервере и в ПостгриСКЛ-е ?
Опять таки заранее спасибо …
sinjevla
155 — 13.02.08 — 19:18
Помогите все делал как написано многое не получалось но как не будь справлялся притом что с Linux столкнулся впервые так вот столкнулся с тем что когда создаю БД то выдается ошибка
————————
Ошибка получения списка процессов:
Ошибка информационной базы
Ошибка запуска процесса менеджера кластера
Установил еще один сервер запустилась 1с и postgres на клиенте создал сервер, а БД не могу создать выдает уже другую ошибку
—————————
Ошибка соединения с рабочим процессом
Ошибка сетевого доступа к серверу
(Windows Socket-11004(0х00002AFC). Затребованное имя допустимо и оно найдено в базе данных, но для имени отсутствует связанные с ним данные, которые были разрешены для него.)
— — — ——————-
В чем причина мне непонятно
Ковычки
156 — 13.02.08 — 20:27
скока «галочек» в бздню, а достаточно одной от МС
фос
157 — 28.02.08 — 19:18
Народ, расскажите плз какие патчи требуются для postgresql. Вышла новая 8.3 версия.. думаю ее поставить из портов под фрибсд, и далее уже патчики нудные накатать а потом порт сделать типа postgresql83-1c, будет всем полезно
NH-119
158 — 28.02.08 — 20:04
(154) А вот и дает только файловый, потому что клиент 1Сv81 под вайном ХАСП-ключика не видит (который на рабочее место).
Ay49Mihas
159 — 29.02.08 — 07:18
(157) Пока от 1С патчи есть только для PostgreSQL 8.2.4, они ставятся нормально
на 8.2.6. Если для 8.3 не пойдут — либо допиливай патчи, либо жди 1Сных
(которые пишут опять-таки Олег Бартунов сотоварищи).
eLektr1k
160 — 03.03.08 — 11:52
Кто нибудь сталкивался с такой ошибкой
SQL State: 28000
Native: 210
Filied to send the authentication packet;
Could not flush socket buffer
Возникает при попытке подключения к базе на удаленном компе. Каталог базы смонтирован по NFS. На локальном компе все работает прекрасно.
Smoke
161 — 12.03.08 — 18:16
Столкнулись с проблемой
«…не обнаружен ключ защиты…»
при подключении 13 машины
ключ на 50 пользователей
на конфигурации suse postgresql 1c v8.1
может кто сталкивался ?
заранее Спасибо
shuhard
162 — 12.03.08 — 19:02
(161) это серверный ключ, он нужен при работе более чем с 12 юзерами.
SergPas
163 — 13.03.08 — 08:04
up
Худой
164 — 13.03.08 — 16:27
(162)Это подтверждение, по моему, того, что на конфигурации suse postgresql 1c v8.1 сервер может работать с 12 подключениями без дополнительных лицензий. А твой ключ на 50 пользователей, скорее всего, система не видит.
SergPas
165 — 14.03.08 — 12:39
(164) Всем спасибо разобрались
basturd
166 — 23.03.08 — 17:18
as2389
167 — 24.03.08 — 08:45
такая проблема:
Есть сервер 1с Предприятие 8.1.9.57 на windows 2003 sp2(srv1).
И базы 1с на MS SQL 2005(srv2), и Postgres 8.1.5 (c диска 1С) на SuSE Ent Server 10.1(srv3).
Есть клиенты WinXP они без проблем подключаються клиент-сервер, через srv1 к базам
на Postgres.
А есть клиент wine etersoft sql 1.0 + 1c, который без проблем подключаеться через srv1 к базам на MS SQL 2005, но не хочет подключатьсЯ к базе на postgres.Выдаёт окошко авторизацию, ввожу логин пароль, начинаеться грузиться 1с и вылетает ошибка
сокета 10064…
При этом есть еще тестовый сервер SuSE 10.1 postgres 8.1.5 и сервер 1с крутящийся там же, к нему без проблем….
Al113
168 — 03.04.08 — 11:29
Такая проблема — на убунту 7,10 rphost вешает проц насмерть, клиенты тут же говорят, что сервер 1с не работает и отваливаются. 3 месяца работали нормально, а теперь при запуске ragern строчка /opt/1C/v8.1/i386/rphost в htopе висит на первом месте. Никто не сталкивался с подобным явлением?
Al113
169 — 03.04.08 — 12:12
Иногда он пишет такие вещи:
root@st:/home/st# /opt/1C/v8.1/i386/ragent
1C:Enterprise 8.1 (8.1.10.50) Server Agent started. <Ctrl+C> to exit.
1C:Enterprise 8.1 (8.1.10.50) Cluster Manager started. <Ctrl+C> to exit.
1C:Enterprise 8.1 (8.1.10.50) Working Process started. <Ctrl+C> to exit.
terminate called after throwing an instance of ‘rtrsrvc::NetDataExchangeException’
1C:Enterprise 8.1 (8.1.10.50) Cluster Manager started. <Ctrl+C> to exit.
1C:Enterprise 8.1 (8.1.10.50) Working Process started. <Ctrl+C> to exit.
*** glibc detected *** /opt/1C/v8.1/i386/rmngr: corrupted double-linked list: 0xb0785698 ***
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6[0xb78fbfed]
/lib/tls/i686/cmov/libc.so.6(cfree+0x90)[0xb78ff800]
/opt/1C/v8.1/i386/stlport.so(_ZN8stlp_std12__stl_deleteEPv+0x36)[0xb7ee5772]
/opt/1C/v8.1/i386/backbas.so[0xb6ac80d6]
/opt/1C/v8.1/i386/backbas.so[0xb6aebc7e]
/opt/1C/v8.1/i386/rserver.so[0xb6bf6ed2]
/opt/1C/v8.1/i386/rserver.so[0xb6be91b8]
/opt/1C/v8.1/i386/rtrsrvc.so[0xb52f301a]
/opt/1C/v8.1/i386/rtrsrvc.so[0xb535ddbb]
/opt/1C/v8.1/i386/rtrsrvc.so[0xb5360576]
/opt/1C/v8.1/i386/rtrsrvc.so[0xb5360ba9]
/opt/1C/v8.1/i386/rtrsrvc.so[0xb53611b8]
/opt/1C/v8.1/i386/rtrsrvc.so[0xb534e34b]
/opt/1C/v8.1/i386/rserver.so[0xb6c2875a]
/opt/1C/v8.1/i386/core81.so(_ZN4core6Thread11runAndCatchEv+0x72)[0xb7cf3a40]
/opt/1C/v8.1/i386/core81.so(_ZN4core6Thread10threadMainEPNS_12SCOM_ProcessE+0x4d)[0xb7cf46e1]
/opt/1C/v8.1/i386/core81.so(_ZN10RealThread10threadProcEPv+0x8e)[0xb7c75904]
/lib/tls/i686/cmov/libpthread.so.0[0xb79ec46b]
/lib/tls/i686/cmov/libc.so.6(clone+0x5e)[0xb796573e]
======= Memory map: ========
08048000-08052000 r-xp 00000000 08:01 798535 /opt/1C/v8.1/i386/rmngr
08052000-08053000 rw-p 00009000 08:01 798535 /opt/1C/v8.1/i386/rmngr
08053000-09ed8000 rw-p 08053000 00:00 0 [heap]
af1ed000-b05ff000 rw-p af1ed000 00:00 0
b05ff000-b0600000 —p b05ff000 00:00 0
b062f000-b0900000 rw-p b062f000 00:00 0
b0900000-b0b00000 rw-p b0900000 00:00 0
b0b00000-b0c00000 rw-p b0b00000 00:00 0
b0c98000-b0cfa000 rw-p b0c98000 00:00 0
b0cfa000-b0cfb000 —p b0cfa000 00:00 0
b0cfb000-b14fb000 rwxp b0cfb000 00:00 0
b14fb000-b14fc000 —p b14fb000 00:00 0
b14fc000-b1cfc000 rwxp b14fc000 00:00 0
b1cfc000-b1cfd000 —p b1cfc000 00:00 0
b1cfd000-b24fd000 rwxp b1cfd000 00:00 0
b24fd000-b24fe000 —p b24fd000 00:00 0
b24fe000-b2cfe000 rwxp b24fe000 00:00 0
b2cfe000-b2cff000 —p b2cfe000 00:00 0
b2cff000-b34ff000 rwxp b2cff000 00:00 0
b34ff000-b3500000 —p b34ff000 00:00 0
b3500000-b3d00000 rwxp b3500000 00:00 0
b3d00000-b3e00000 rw-p b3d00000 00:00 0
b3e3c000-b4000000 rw-p b3e3c000 00:00 0
b404a000-b407c000 r-xp 00000000 08:01 798189 /opt/1C/v8.1/i386/lockman.so
b407c000-b407d000 rw-p 00031000 08:01 798189 /opt/1C/v8.1/i386/lockman.so
b407d000-b40c3000 r-xp 00000000 08:01 798540 /opt/1C/v8.1/i386/pack.so
b40c3000-b40c7000 rw-p 00045000 08:01 798540 /opt/1C/v8.1/i386/pack.so
b40c7000-b40dd000 r-xp 00000000 08:01 798509 /opt/1C/v8.1/i386/morph.so
b40dd000-b40de000 rw-p 00016000 08:01 798509 /opt/1C/v8.1/i386/morph.so
b40de000-b40df000 rw-p b40de000 00:00 0
b40df000-b40e0000 —p b40df000 00:00 0
b40e0000-b48e0000 rwxp b40e0000 00:00 0
b48e0000-b48e1000 —p b48e0000 00:00 0
b48e1000-b50e1000 rwxp b48e1000 00:00 0
b50e1000-b50ea000 r-xp 00000000 08:01 766753 /lib/tls/i686/cmov/libnss_files-2.6.1.so
b50ea000-b50ec000 rw-p 00008000 08:01 766753 /lib/tls/i686/cmov/libnss_files-2.6.1.so
b50f7000-b5272000 r-xp 00000000 08:01 798455 /opt/1C/v8.1/i386/inet.so
b5272000-b528b000 rw-p 0017b000 08:01 798455 /opt/1C/v8.1/i386/inet.so
b528b000-b528f000 rw-p b528b000 00:00 0
b528f000-b558d000 r-xp 00000000 08:01 798463 /opt/1C/v8.1/i386/rtrsrvc.so
b558d000-b55aa000 rw-p 002fd000 08:01 798463 /opt/1C/v8.1/i386/rtrsrvc.so
b55aa000-b55ac000 rw-p b55aa000 00:00 0
b55ac000-b55ad000 —p b55ac000 00:00 0
b55ad000-b5dad000 rwxp b55ad000 00:00 0
b5dad000-b5e0e000 r—s 00000000 08:01 798465 /opt/1C/v8.1/i386/xml2_root.res
b5e0e000-b5e41000 r—s 00000000 08:01 798458 /opt/1C/v8.1/i386/xml2_ru.res
b5e41000-b69bb000 r-xp 00000000 08:01 798456 /opt/1C/v8.1/i386/xml2.so
b69bb000-b6a8f000 rw-p 00b79000 08:01 798456 /opt/1C/v8.1/i386/xml2.so
b6a8f000-b6a96000 rw-p b6a8f000 00:00 0
b6a96000-b6b83000 r-xp 00000000 08:01 798473 /opt/1C/v8.1/i386/backbas.so
b6b83000-b6b89000 rw-p 000ed000 08:01 798473 /opt/1C/v8.1/i386/backbas.so
b6b89000-b6b9b000 rw-p b6b89000 00:00 0
b6b9b000-b6d76000 r-xp 00000000 08:01 798519 /opt/1C/v8.1/i386/rserver.so
b6d76000-b6d89000 rw-p 001db000 08:01 798519 /opt/1C/v8.1/i386/rserver.so
b6d89000-b6d8a000 rw-p b6d89000 00:00 0
b6d8a000-b6d93000 r—s 00000000 08:01 798464 /opt/1C/v8.1/i386/core81_root.res
b6d93000-b6d9d000 r—s 00000000 08:01 798469 /opt/1C/v8.1/i386/core81_ru.res
b6d9d000-b6ddc000 r—p 00000000 08:01 912798 /usr/lib/locale/ru_RU.utf8/LC_CTYPE
b6ddc000-b6dde000 rw-p b6ddc000 00:00 0
b6dde000-b6de5000 r-xp 00000000 08:01 766766 /lib/tls/i686/cmov/librt-2.6.1.so
b6de5000-b6de7000 rw-p 00006000 08:01 766766 /lib/tls/i686/cmov/librt-2.6.1.so
b6de7000-b765e000 r-xp 00000000 08:01 798453 /opt/1C/v8.1/i386/libicudata.so.34
b765e000-b765f000 rw-p 00876000 08:01 798453 /opt/1C/v8.1/i386/libicudata.so.34
b765f000-b776c000 r-xp 00000000 08:01 798468 /opt/1C/v8.1/i386/libicuuc.so.34
b776c000-b7774000 rw-p 0010d000 08:01 798468 /opt/1C/v8.1/i386/libicuuc.so.34
b7774000-b7778000 rw-p b7774000 00:00 0
b7778000-b7888000 r-xp 00000000 08:01 798457 /opt/1C/v8.1/i386/libicui18n.so.34
b7888000-b788d000 rw-p 0010f000 08:01 798457 /opt/1C/v8.1/i386/libicui18n.so.34
b788d000-b788e000 rw-p b788d000 00:00 0
b788e000-b7890000 r-xp 00000000 08:01 766742 /lib/tls/i686/cmov/libdl-2.6.1.so
b7890000-b7892000 rw-p 00001000 08:01 766742 /lib/tls/i686/cmov/libdl-2.6.1.so
b7892000-b79d6000 r-xp 00000000 08:01 766736 /lib/tls/i686/cmov/libc-2.6.1.so
b79d6000-b79d7000 r—p 00143000 08:01 766736 /lib/tls/i686/cmov/libc-2.6.1.so
b79d7000-b79d9000 rw-p 00144000 08:01 766736 /lib/tls/i686/cmov/libc-2.6.1.so
b79d9000-b79dc000 rw-p b79d9000 00:00 0
b79dc000-b79e6000 r-xp 00000000 08:01 733027 /lib/libgcc_s.so.1
b79e6000-b79e7000 rw-p 0000a000 08:01 733027 /lib/libgcc_s.so.1
b79e7000-b79fb000 r-xp 00000000 08:01 766762 /lib/tls/i686/cmov/libpthread-2.6.1.so
b79fb000-b79fd000 rw-p 00013000 08:01 766762 /lib/tls/i686/cmov/libpthread-2.6.1.so
b79fd000-b79ff000 rw-p b79fd000 00:00 0
b79ff000-b7a22000 r-xp 00000000 08:01 766744 /lib/tls/i686/cmov/libm-2.6.1.so
b7a22000-b7a24000 rw-p 00023000 08:01 766744 /lib/tls/i686/cmov/libm-2.6.1.so
b7a24000-b7a25000 rw-p b7a24000 00:00 0
b7a29000-b7a30000 r—s 00000000 08:01 32812 /usr/lib/gconv/gconv-modules.cache
b7a30000-b7e52000 r-xp 00000000 08:01 798466 /opt/1C/v8.1/i386/core81.so
b7e52000-b7e92000 rw-p 00422000 08:01 798466 /opt/1C/v8.1/i386/core81.so
b7e92000-b7e93000 rw-p b7e92000 00:00 0
b7e93000-b7f03000 r-xp 00000000 08:01 798467 /opt/1C/v8.1/i386/stlport.so
b7f03000-b7f06000 rw-p 0006f000 08:01 798467 /opt/1C/v8.1/i386/stlport.so
b7f06000-b7f0d000 rw-p b7f06000 00:00 0
b7f0d000-b7f27000 r-xp 00000000 08:01 732980 /lib/ld-2.6.1.so
b7f27000-b7f29000 rw-p 00019000 08:01 732980 /lib/ld-2.6.1.so
bfebb000-bfece000 rwxp bfebb000 00:00 0 [stack]
bfece000-bfed1000 rw-p bfece000 00:00 0
ffffe000-fffff000 r-xp 00000000 00:00 0 [vdso]
Zarenkov
170 — 07.05.08 — 08:46
Народ помогите…поставил сервер все вроде нормально, при создание базы клиентом пишет
Ошибка соединения с рабочим процессом
server_addr…1562 descr=Ошибка сетевого доступа к серверу
(Windows Socket-10110(0х0000277E). WSALookupServiceNext не может возвратить каких-либо дополнительных результатов.) line=546 file=.srcDataExchangeTcpClientImpl.cpp
IVIuXa
171 — 07.05.08 — 09:24
(170)
отключай все фаерволы и на клиенте тоже
попробуй заново
IVIuXa
172 — 07.05.08 — 09:28
+(171)
а забыл
на клиенте в host должен быть прописан 1с овский сервер
1Ccomp 192.168.1.1
+ на сервере прописан
127.0.0.1 1Ccomp
IVIuXa
173 — 07.05.08 — 09:42
IVIuXa
174 — 07.05.08 — 09:45
+(173) ошибочка вышла не дочитал вопрос
IVIuXa
175 — 07.05.08 — 09:46
+(174)
хотя если на сервере ключи 1Ссервер + 50 пользователей, а где то посети ключ на 13 то вполне может быть
Foxcool
176 — 22.05.08 — 11:19
Обнаружена старая версия формата базы данных.
Необходимо обновить формат данных перед использованием PostgreSQL.
Дополнительную информацию см. в /usr/share/doc/postgresql-8.1.5/README.rpm-dist.
Как это решать?
Foxcool
177 — 22.05.08 — 13:02
Скачал последнюю версию с сайта 1с СУБД. Ставится с глюками. По зависимостям ей не хватает библиотеки одной, которую, они наверное не включили в свои пакеты.
initdb -D /var/lib/pgsql
initdb: error while loading shared libraries: libreadline.so.4: cannot open shared object file: No such file or directory
Нахрена было делать какую-то свою пропатченную версию СУБД, если они ее не могут седлать нормально, а СКУЛЬ, лежащий в репозиториях запускается с полпинка…
nemo1966
178 — 22.05.08 — 13:08
гм библиотека libreadline устарела — следовательно либо пользовать старую версию ОС либо использовать замену библиотеки libreadline.so.5.2
nemo1966
179 — 22.05.08 — 13:09
по крайней мере так это решаеться в ubuntu хоть систему свою напиши…..
Foxcool
180 — 22.05.08 — 14:14
Fedora 8
Foxcool
181 — 22.05.08 — 14:18
Библиотека версии 5.2-10
Foxcool
182 — 22.05.08 — 14:20
Попробую снести 5-ю версию и поставить 4-ю, но тогда возможно перестанет работать куча приложений, которые привязаны к 5-ой версии
nemo1966
183 — 22.05.08 — 14:22
вот выдержка из скрипта для ubuntы работает и у меня на deb 4.0 etch
#добавим ссылки на библиотеки для корректного запуска в убунте
mkdir ./postgresql-server/lib/
cd ./postgresql-server/lib
ln -s libreadline.so.5.2 libreadline.so.4
cd ../usr/lib
ln -s libncurses.so libtermcap.so.2
nemo1966
184 — 22.05.08 — 14:23
все дело в этих ссылках и ничего не надо переставлять но как они будут правильно в твоей системе….
nemo1966
185 — 22.05.08 — 14:24
выдержка из комментов автора
На всякий пожарный поясню:
скрипт convert.sh создаст нужные симлинки иначе будут такие ошибки
postgres@temp1C:/tmp/1c$ initdb -D /bases/pgsql/data
initdb: error while loading shared libraries: libreadline.so.4: cannot open shared object file: No such file or directory
postgres@temp1C:/tmp/1c$ initdb -D /bases/pgsql/data
initdb: error while loading shared libraries: libtermcap.so.2: cannot open shared object file: No such file or directory
Foxcool
186 — 22.05.08 — 14:29
Хм… Спасибо. Попробую.
targget
187 — 08.07.08 — 11:02
поднял 1с на линуксе, но не работает аутентификация Windows. База стоит на контроллере домена на SAMBA. Кто — нибудь сталкивался? как лечить?
kear
188 — 19.07.08 — 00:00
Те же проблемы, что и у 187. Не получаеться заставить 700 пользователей вводить пароль ручками
Худой
189 — 22.07.08 — 09:27
(187) А какой у тебя линух? У нас, например аутентификация Windows идет через Novell клиента.
(188)Неужели, у тебя 700 пользователей в 1С под линухом работает?
kear
190 — 24.07.08 — 14:05
(189) Нет, под виндой. И не 700 а 70, опечатка
Проблемы с аутентификацией Windows, при сервере 1с предприятие на линуксе так и не решил.
claus66
191 — 05.08.08 — 07:44
у нас возникла проблема: не виден сетевой ключик HASP, 1с8.1 сервер стоит на SLES10 SP2 x86, пускает только 12 пользователей (как выяснилось что Линха пускает только 12 пользователей). У кого нибудь была такая проблема? и как с ней бороться?! Такое чувство что что то нужно добавить или прописать где то!
d_Fedor
192 — 05.08.08 — 07:52
(191) Поставить драйвер Hasp..
claus66
193 — 05.08.08 — 07:57
(192) дак ставили.. причем качали с Аладина
Худой
194 — 07.08.08 — 08:02
Я подозреваю, что до 12 пользователей по умолчанию и без ключа под линухом запускается. Скорее всего, так.
Следовательно, у тебя, вообще, Hasp не виден. Попробуй его убрать, все равно останется 12 подключений.
IVIuXa
195 — 08.08.08 — 02:32
(191)
нужно 2 ключа
один 1С сервер ставишь на сусе
другой — на колл пользователей — на любом компе сети.
Причем важно — они должны стоять на физически разных компах.
Проверь также маршруты до компов с ключами и обратно
все работает — (была проблемка с подсетью — кому интересно спрашивайте)
Худой
196 — 08.08.08 — 04:21
(195)А если у конторы один ключ?
IVIuXa
197 — 08.08.08 — 06:59
(196)
купить второй или хм…. , но не для форума
IVIuXa
198 — 08.08.08 — 07:08
+(194)
чет у меня не запустилось
наверное руки кривые :))))
IVIuXa
199 — 08.08.08 — 07:12
(0)
Да кстати вопрос к автору
действительно — самба там зачем — ?
Худой
200 — 08.08.08 — 07:29
(197)Фигасе!
Все же не понятно, для чего второй ключ?
(198) Ок. Не запустилось. А ключ на сколько пользователей у тебя был?
(199) Я тоже с самбой кувыркался для файлового варианта 1С с базой на SLED. Настроил, работает.
Problem
CDC for Postgresql : 11.4
Postgresql:11
When creating cdc for postgresql instance, got below error:
Cannot create changes:A SQL exception has occurred. The SQL error code is ‘0’. The SQL state is: 58P01. The error message is:
ERROR: could not access file «test_decoding»: No such file or directory
Symptom
Cannot create changes:A SQL exception has occurred. The SQL error code is ‘0’. The SQL state is: 58P01. The error message is:
ERROR: could not access file «test_decoding»: No such file or directory
Cause
You must install postgresql-contrib additional supplied modules on Your source endpoint.
Using below command to install, then re-create instance.
sudo yum install postgresql11-contrib
Environment
You must install postgresql-contrib additional supplied modules on Your source endpoint.
Using below command:
sudo yum install postgresql11-contrib
Then recreate instance.
Document Location
Worldwide
[{«Business Unit»:{«code»:»BU059″,»label»:»IBM Software w/o TPS»},»Product»:{«code»:»SSTRGZ»,»label»:»InfoSphere Data Replication»},»Component»:»»,»Platform»:[{«code»:»PF016″,»label»:»Linux»}],»Version»:»11.4″,»Edition»:»»,»Line of Business»:{«code»:»LOB10″,»label»:»Data and AI»}}]
Содержание
- [Решено] 1С сервер базы данных не обнаружен is the server running on host and accepting tcp/ip connections on port 5432
- 58p01 postgresql 1c mchar control
- Установка Сервера 1С:Предприятия 8.1 на Linux-сервер
[Решено] 1С сервер базы данных не обнаружен is the server running on host and accepting tcp/ip connections on port 5432
Немного дополню ваш вопрос, а потом расскажу решение речь идет про Linux сервер и бд Postgre о этом говорит порт: 5432 и это и есть корень вашей проблемы.
И ошибка ваша выглядит так:
Connection refused
Is the server running on host «127.0.0.1» and accepting
TCP/IP connections on port 5432?
РЕШЕНИЕ:
1. нужно проверить на сервере есть ли в открытых портах 5432 и сам postgresql
Должно быть примерно так, если у вас пусто или вот так:
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 1439/postgres
Pезультат выполнения команды означает, что PostgreSQL принимает подключения по адресу 127.0.0.1 и порту 5432. Чтобы изменить настройки, понадобится отредактировать файл postgresql.conf
Найти местонахождение файла можно командой:
$ find / -name postgresql.conf 2> /dev/null
/etc/postgresql/10/main/postgresql.conf
Надо указать PostgreSQL, что необходимо принимать подключения по всем адресам:
listen_addresses = ‘*’
и перезагрузить СУБД:
service postgresql restart
Также можно прямо с сервера проверить подключение постгресскуэль
psql -U my_login -h 192.168.0.14 postgres
Если сервер доступен, то будет получен доступ к базе данных postgres:
psql
Type «help» for help.
ОЧЕНЬ ВАЖНО
Залезьте в лог постгре cat /var/log/postgresql/postgresql-10-main.log
И если у вас там: ВАЖНО: нет доступа к файлу «online_analyze»: Нет такого файла или каталога
и до этого у вас все работало на вашей убунте и postgres и тут после рестарта все сломалось, предположу что вы обновили убунту.
libpq5/bionic-security,bionic-updates 10.6-0ubuntu0.18.04.1 amd64 [может быть обновлён с: 10.5-10.1C]
postgresql-10/bionic-security,bionic-updates 10.6-0ubuntu0.18.04.1 amd64 [может быть обновлён с: 10.5-10.1C]
postgresql-client-10/bionic-security,bionic-updates 10.6-0ubuntu0.18.04.1 amd64 [может быть обновлён с: 10.5-10.1C]
И вероятно починив порт 5432 и создав online_analyze
у вас будет ошибка: error could not access file $libdir/mchar no such file or directory
РЕШЕНИЕ:
1. Качайте дистрибутив с сайта 1С и переустанавливайте его.
2. И блокируйте обновления постгрес:
sudo apt-mark hold libpq5:amd64 postgresql-10 postgresql-client-10
Источник
58p01 postgresql 1c mchar control
Конечно же понравился. Пока все кричали «1С сделало из версионника блокировочник», я изучал патч и обратил внимание на следующий код
(отдельная выдержка из патча)
Для тех кто не умеет читать код C++ поясню. По умолчанию включается самый максимальный уровень блокировки. Причем это максимальный уровень НЕ стандартен для типового PostgreSQL. Для дополнительной информации знатокам MSSQL следует обратиться к http://www.postgresql.org/docs/9.3/static/explicit-locking.html
Ключевые слова здесь: по умолчанию, максимальный, НЕ типовой
А это значит — если 1С-ный программист НЕ управляет блокировками, то PostgreSQL с точки зрения будет вести себя НЕ как PostgreSQL. Надеюсь идея понятна. Тогда, когда проводилось это исследование в стандарт 1С:Совместимо только-только включали требования явно управлять блокировками и тестировать производительность на стороне кода 1С на параллельность. А я уже своим программистам и себе рекомендовал тоже самое (в том числе типовые конфигурации, в которых не было управления блокировками для меня были уже не актуальными и в работу не брались — в таком случае писались свои системы, а с типовыми только интегрировались).
И это всё?
Ну и последнее для данной публикации это патч вводящий новый тип, точнее «контрибьютящий» некоторой количество кода внутрь нашего «адаптированного для 1С PostgreSQL». И тут нам вдруг открывается, что оказывается можно собирать свой PostgreSQL со своим набором библиотек. Интересное знание, и прежде чем вы скажете, что мы должны использовать только нативное и без расширений, я вам скажу что функционал таких модулей http://www.postgresql.org/docs/9.3/static/contrib.html — это официальный нативный функционал. Казалось бы, что такое знание совершенно не полезно.
Напомню, что дополнительных библиотек, которые собираются вместе со стандартными всего 5 в последнем (на текущий момент) патче.
- mchar
- fulleq
- fastrun (опечатка сделана специально 😉)
- online_analyzer
- plantuner
И вы знаете мне эти библиотеки понравились. Причем каждая по своему:
online_analyzer и plantuner – сразу нас приводят на сайт http://sigaev.ru/
для НЕ желающих ходить по ссылкам, сразу скажу – эти 2 модуля добавляют известное поведение MSSQL – USEPLAN и аналог AUTOUPDATESTATS. И мне понравилось – во-первых данные библиотеки сразу же были включены в Ruby on Rails проект (точнее в их PostgreSQL), где в тот момент в силу большого количества пользователей наблюдались проблемы с производительностью с PostgreSQL. Особенную проблему вызывала как все 1С-ники знают, проблемы со статистикой записей. А тут оказалось, что можно построить адаптивный план обслуживания. Просто в PostgreSQL функция UPDATE STATS из MSQL называется ANALYZE TABLE.
Необходимость использования «хинтов» для плана запроса, говорит нам о том, что в 1С знают, что их запросы, формируемые в виде SQL достаточно нетривиальны, а также о том что оптимизатор планов запросов PostgreSQL проигрывает тому же MSSQL, где прецедентов необходимости подобного было очень мало и чаще всего причиной являлся плохой код. Вместе с этим именно это знание послужило основанием для решения НЕ использовать 1C+PostgreSQL для 1С:Зарплата и управление персоналом, в связи с особенностями текстов запросов. Но тесты на 1С ЗУП 3.0 уже показывают обратное поведение в связи с переработкой модели и методологии, которые на несколько порядков упрощают запросы. Вообще поведение последних редакций больших типовых (УТ 11.1, БП 3.0, ЗУП 3.0) позволяет с уверенностью сказать о их адаптированном поведении к PostgreSQL и Oracle. Спросите – откуда здесь появился Oracle? Мало кто знает, но PostgreSQL очень похож на Oracle. Не функционалом конечно, в Oralce он на порядок мощнее, а заложенной методологией. Существует версия что PostgreSQL рождался как OpenSource ответ большому и дорогому Oracle. Ключевым, наверное, термином здесь является PLpgSQL и остальные. Изучив PostgreSQL и его поведение, в случае если ваша компания захочет адаптировать 1С к Oracle, ваш опыт будет повторно использован, в силу особенностей архитектуры обоих. Ну и необходимо понимать, что PostgreSQL имеет версию и платную функциональность http://www.enterprisedb.com/products-services-training/subscriptions и цены там вполне себе Enterprise. Особенно для функциональности наподобие AlwayOn от MSSQL.
На самом деле, если продолжать можно понять, что 3 остальных библиотеки mchar, fulleq и fastrun – то же добавляют интересную функциональность, и даже НЕ для решений на 1С платформе. Особенно интересен новый тип MCHAR, а также то зачем для него понадобилась библиотека ICU. Что дает нам понимания, что работа в том числе с UTF-8 при использовании чистого PostgreSQL будет и есть достаточно Не тривиальной задачей, с чем вы обязательно столкнетесь, когда начнете писать приложение, которому будет необходимо хранить строки в национальных кодировках – когда например ваше приложение будет иметь пользователей из России и Канады например, да еще с Китая в добавок. Прежде чем мы начнем спорить необходимо понимать какую функциональность содержит mchar.h и файлы mcharmchar*.c. Но для этого вам понадобится знания языка С для чтения кода.
В сухом остатке. Теперь я могу точно ответить – «Мне очень нравится данный патч». Надеюсь вы понимание почему?
Источник
Установка Сервера 1С:Предприятия 8.1 на Linux-сервер
Пришлось устанавливать 1С на Linux-сервер. Все свои действия аккуратно записал и заскриншотил:
Буду благодарен за уточнения и сообщения о неточностях.
Как я понял, в конфигурационном файле PostgreSQL нужно разрешить только localhost?
И ещё, может кто знает: как сделать так, чтобы оснастка управления серверами 1С запрашивала пароль на любые действия по добавлению/удалению сервера кластера и БД? А то несекъюрно как-то.
(Конечный компьютер отверг запрос на подключение).
Ставил на ФС 6.0, все по инструкции. При подключении — ошибка.
Ничего думаю, посмотрю как на виднах.
Поставил PostgreSQL — то же самое:
Запускаю оснастку управления серверами предприятия из меню Пуск – 1С Предприятие 8.1 – Серверы 1С Предприятия. Создаю центральный сервер, при нажатии на плюсик 10061(0x0000274D).
В чем может быть причнина? Версия платформы 1С:Предприятия 8.1.7.30 (Тестовая)
Здравствуйте.
Установил сервер postgres
«Инициализируется база данных: mkdir: невозможно создать каталог ‘/var/lib/pgsql/data/pg_log’: фаил существует» СБОЙ.
Помогите в чем может быть проблемма?!
Блин , сорвалось .
в pg_hba.conf
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
host all all 0.0.0.0/0 md5
Ну или в последней строке свою сетку или хосты
Вот я всё сделал по инструкциям приведеным выше. вот что получилось:
сервер Fedora 6, версия сервера 1с 8.1.7.37, постгрес 8.1.5-12.1C.
С клиента подключаюсь к серверу, пытаюсь создать базу, в отет ошибка:
«Ошибка соединения с сервером 1С:Предприятия 8.1:
1C_Enterprise-ws…
1C_Enterprise-ws-nls…
Если веб-служб не используются, зачем лишние пакеты?
всего 2 команды (или одна, если пакеты ставить сразу все за один заход).
настройку постгре можно пропустить, есть не заботишься о супербезопасности.
2Kraft
Наиболее вероятная причина — имя хоста сервера не разрешается по имени с твоей машины. Решение — настройка днс или правка руками файла hosts.
2Advan
«. а то неохота столько времени тратить на линух.» — лентяй!
на установку нужно:
1. около 30 мин — установка системы, время зависит от можности машины и набора устанавливаемого ПО.
2. 5-7 мин — установка пакетов сервера, постгре, инициализация БД
3. 15-20 мин на то, чтобы убедиться в работоспособности системы, настроить сеть и проч.
4. еще 30-40 мин на окончательную доводку и тестирование.
Итого сервер поднимается всего за час-полтора.
Это разве много?
еще замечание — при установке системы /var лучше создать отдельным разделом
в /var хранится часто меняющая инфа, в т.ч. логи, базы данных и т.п.
3. /home — домашние каталоги пользователей, а бы оставил гиг 10. Сервер 1С предприятия в своем каталоге (/home/usr1cv81) хранит инфу о настройках, не уверен, но может понадобиться достаточное количество места
4. /var — часто меняющаяся инфа, логи, бд и проч. Размер — скока считаете нужным. БД имеет свойство расти, место понадобится
2Advan
Прежде чем делать такие выводы, лучше почитать что за постгре пишут в интете.
постгре — достаточно давняя и устойчивая система, БЕСПЛАТНО РАСПРОСТРАНЯЕМАЯ.
Показатели производительности вполне на уровне.
Кстати — 40% пользователей interbase/firebird работают базами объемом от 2 до 40 Гб. До 40 Гб 1Сная база будет расти очень долго.
И еще — скажи своему диру скока нужно отвалить за IBM DB2 — и ты еще вчера работал на постгре.
Сейчас при попытке подключения к серверу пишет:
«Ошибка соединения с сервером 1С:Предприятия 8.1:
server_addr=tcp://fedora.domen.ru:1540 descr=Ошибка сетевого доступа к серверу
(Windows Sockets — 10064(0x00002750). Произошла ошибка операции на сокете, т.к. конечный хост выключен.)
Мля? без эксцессов не получается. В общем, загрузка базы уже подходила к концу и тут в конфигураторе вылетела ашыпка:
Попытка вставки неуникального значения в уникальный индекс.
Кто в курсе, что в постгресе надо подкрутить?
# netstat -na|grep tcp
tcp 0 0 0.0.0.0:1540 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:1541 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:2544 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:696 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:1560 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:1561 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:1562 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:1563 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:39238 127.0.0.1:1563 ESTABLISHED
tcp 0 0 127.0.0.1:35787 127.0.0.1:1561 ESTABLISHED
tcp 0 0 200.200.0.7:1541 200.200.0.7:55708 ESTABLISHED
tcp 0 0 200.200.0.7:1541 200.200.0.7:55707 ESTABLISHED
tcp 0 0 200.200.0.7:39238 200.200.0.10:445 ESTABLISHED
tcp 1 0 200.200.0.7:47909 200.200.0.10:389 CLOSE_WAIT
tcp 0 0 127.0.0.1:1563 127.0.0.1:39238 ESTABLISHED
tcp 0 0 127.0.0.1:56779 127.0.0.1:1560 ESTABLISHED
tcp 0 0 127.0.0.1:1560 127.0.0.1:56779 ESTABLISHED
tcp 0 0 127.0.0.1:1561 127.0.0.1:35787 ESTABLISHED
tcp 0 0 200.200.0.7:1540 200.200.0.19:2012 ESTABLISHED
tcp 0 0 200.200.0.7:56762 200.200.0.10:389 ESTABLISHED
tcp 0 0 200.200.0.7:55707 200.200.0.7:1541 ESTABLISHED
tcp 0 0 200.200.0.7:55708 200.200.0.7:1541 ESTABLISHED
tcp 0 0 200.200.0.7:49184 200.200.0.10:445 ESTABLISHED
tcp 0 0 200.200.0.7:1562 200.200.0.19:2018 ESTABLISHED
tcp 0 0 . 22 . * LISTEN
tcp 0 0 ::1:631 . * LISTEN
tcp 0 0 ::1:25 . * LISTEN
# PostgreSQL Client Authentication Configuration File
# ===================================================
#
# Refer to the PostgreSQL Administrator’s Guide, chapter «Client
# Authentication» for a complete description. A short synopsis
# follows.
#
# This file controls: which hosts are allowed to connect, how clients
# are authenticated, which PostgreSQL user names they can use, which
# databases they can access. Records take one of these forms:
#
# local DATABASE USER METHOD [OPTION]
# host DATABASE USER CIDR-ADDRESS METHOD [OPTION]
# hostssl DATABASE USER CIDR-ADDRESS METHOD [OPTION]
# hostnossl DATABASE USER CIDR-ADDRESS METHOD [OPTION]
#
# (The uppercase items must be replaced by actual values.)
#
# The first field is the connection type: «local» is a Unix-domain socket,
# «host» is either a plain or SSL-encrypted TCP/IP socket, «hostssl» is an
# SSL-encrypted TCP/IP socket, and «hostnossl» is a plain TCP/IP socket.
#
# DATABASE can be «all», «sameuser», «samerole», a database name, or
# a comma-separated list thereof.
#
# USER can be «all», a user name, a group name prefixed with «+», or
# a comma-separated list thereof. In both the DATABASE and USER fields
# you can also write a file name prefixed with «@» to include names from
# a separate file.
#
# CIDR-ADDRESS specifies the set of hosts the record matches.
# It is made up of an IP address and a CIDR mask that is an integer
# (between 0 and 32 (IPv4) or 128 (IPv6) inclusive) that specifies
# the number of significant bits in the mask. Alternatively, you can write
# an IP address and netmask in separate columns to specify the set of hosts.
#
# METHOD can be «trust», «reject», «md5», «crypt», «password»,
# «krb5», «ident», or «pam». Note that «password» sends passwords
# in clear text; «md5» is preferred since it sends encrypted passwords.
#
# OPTION is the ident map or the name of the PAM service, depending on METHOD.
#
# Database and user names containing spaces, commas, quotes and other special
# characters must be quoted. Quoting one of the keywords «all», «sameuser» or
# «samerole» makes the name lose its special character, and just match a
# database or username with that name.
#
# This file is read on server startup and when the postmaster receives
# a SIGHUP signal. If you edit the file on a running system, you have
# to SIGHUP the postmaster for the changes to take effect. You can use
# «pg_ctl reload» to do that.
# Put your actual configuration here
# ———————————-
#
# If you want to allow non-local connections, you need to add more
# «host» records. In that case you will also need to make PostgreSQL listen
# on a non-local interface via the listen_addresses configuration parameter,
# or via the -i or -h command line switches.
#
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# «local» is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
host all all 0.0.0.0/0 md5
# IPv6 local connections:
#host all all ::1/128 trust
#host all all 0.0.0.0/0 md5
Источник
Не подскажете в чем причина?
При попытке создания базы:
Ошибка СУБД:
58P01: ERROR: could not open extension control file «/usr/share/pgsql/extension/mchar.control»: No such file or directory
База на Postgre при этом создаётся. Если повторить создание базы на 1С сервере, то получаем другую ошибку:
DATABASE не пригоден для использования
Версии софта:
ALT Server 10.0 + PostgreSQL 13.5 сборка для 1С ; 1С сервер 8.3.20.1789 или 8.3.17 на Windows 2008
russian
postgresql
it
database
8
ответов
Постгрес патченный для 1с?
ㅤ
Постгрес патченный для 1с?
он из родного репо, заявлен для 1С, устанавливал так
apt-get install postgresql13-1C-server
Максим MaxS
он из родного репо, заявлен для 1С, устанавливал …
Да я скачал его. Это какой-то огрызок. Там нет mchar
Максим MaxS
12-й попробовать?
Контриб пакет поставьте
Максим MaxS
он из родного репо, заявлен для 1С, устанавливал …
Из родного для чего?
14-й есть от ПГ Про
Dmitry Kononov
Из родного для чего?
14-й есть от ПГ Про
ALT Server 10.0 искал так
apt-cache search 1C-server
Это проблема установки расширения. В пг отсутствует тип mchar, без него 1ц работать не будет. Проблма решается дистро-специфично.
I’m learning PostgreSQL, and i run into problem:
I have created table and trying to export it, but I have all the time same error
SQL Error [58P01]: ERROR: could not open file "D:JanisMācībasSQLTesttypestest.txt" for writing: No such file or directory
Hint: COPY TO instructs the PostgreSQL server process to write a file. You may want a client-side facility such as psql's copy.
Script that I’m running:
CREATE TABLE char_data_types (
varchar_column varchar(10),
char_column char(10),
text_column text
);
INSERT INTO char_data_types
VALUES
('abc', 'abc', 'abc'),
('defghi', 'defghi', 'defghi');
COPY char_data_types TO 'D:JanisMācībasSQLTesttypestest.txt'
WITH (FORMAT CSV, HEADER, DELIMITER '|');
I have taken off all possible security restriction from file typestest.txt
17 — 01.06.07 — 18:08
Вот полный лог постгреса за время создания базы:
2007-06-01 18:07:25 STATEMENT: CREATE FUNCTION mchar_in(cstring)
RETURNS mchar
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mchar_out(mchar)
RETURNS cstring
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mchar_send(mchar)
RETURNS bytea
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mchar_recv(internal)
RETURNS mchar
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE TYPE mchar (
INTERNALLENGTH = -1,
INPUT = mchar_in,
OUTPUT = mchar_out,
RECEIVE = mchar_recv,
SEND = mchar_send,
STORAGE = extended
);
CREATE FUNCTION mchar(mchar, integer, boolean)
RETURNS mchar
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE CAST (mchar as mchar)
WITH FUNCTION mchar(mchar, integer, boolean) as IMPLICIT;
CREATE FUNCTION mvarchar_in(cstring)
RETURNS mvarchar
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mvarchar_out(mvarchar)
RETURNS cstring
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mvarchar_send(mvarchar)
RETURNS bytea
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mvarchar_recv(internal)
RETURNS mvarchar
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE TYPE mvarchar (
INTERNALLENGTH = -1,
INPUT = mvarchar_in,
OUTPUT = mvarchar_out,
RECEIVE = mvarchar_recv,
SEND = mvarchar_send,
STORAGE = extended
);
CREATE FUNCTION mvarchar(mvarchar, integer, boolean)
RETURNS mvarchar
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE CAST (mvarchar as mvarchar)
WITH FUNCTION mvarchar(mvarchar, integer, boolean) as IMPLICIT;
—Operations and functions
CREATE FUNCTION length(mchar)
RETURNS int4
AS ‘$libdir/mchar’, ‘mchar_length’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION upper(mchar)
RETURNS mchar
AS ‘$libdir/mchar’, ‘mchar_upper’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION lower(mchar)
RETURNS mchar
AS ‘$libdir/mchar’, ‘mchar_lower’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mchar_hash(mchar)
RETURNS int4
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mchar_concat(mchar, mchar)
RETURNS mchar
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE OPERATOR || (
LEFTARG = mchar,
RIGHTARG = mchar,
PROCEDURE = mchar_concat
);
CREATE FUNCTION mchar_like(mchar, mchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION like_escape(mchar, mchar)
RETURNS mchar
AS ‘$libdir/mchar’, ‘mchar_like_escape’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mchar_notlike(mchar, mchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE OPERATOR ~~ (
LEFTARG = mchar,
RIGHTARG = mchar,
PROCEDURE = mchar_like,
RESTRICT = likesel,
JOIN = likejoinsel,
NEGATOR = ‘!~~’
);
CREATE OPERATOR !~~ (
LEFTARG = mchar,
RIGHTARG = mchar,
PROCEDURE = mchar_notlike,
RESTRICT = nlikesel,
JOIN = nlikejoinsel,
NEGATOR = ‘~~’
);
CREATE FUNCTION mchar_regexeq(mchar, mchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mchar_regexne(mchar, mchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE OPERATOR ~ (
LEFTARG = mchar,
RIGHTARG = mchar,
PROCEDURE = mchar_regexeq,
RESTRICT = regexeqsel,
JOIN = regexeqjoinsel,
NEGATOR = ‘!~’
);
CREATE OPERATOR !~ (
LEFTARG = mchar,
RIGHTARG = mchar,
PROCEDURE = mchar_regexne,
RESTRICT = regexnesel,
JOIN = regexnejoinsel,
NEGATOR = ‘~’
);
CREATE FUNCTION similar_escape(mchar, mchar)
RETURNS mchar
AS ‘$libdir/mchar’, ‘mchar_similar_escape’
LANGUAGE C IMMUTABLE;
CREATE FUNCTION length(mvarchar)
RETURNS int4
AS ‘$libdir/mchar’, ‘mvarchar_length’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION upper(mvarchar)
RETURNS mvarchar
AS ‘$libdir/mchar’, ‘mvarchar_upper’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION lower(mvarchar)
RETURNS mvarchar
AS ‘$libdir/mchar’, ‘mvarchar_lower’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mvarchar_hash(mvarchar)
RETURNS int4
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mvarchar_concat(mvarchar, mvarchar)
RETURNS mvarchar
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE OPERATOR || (
LEFTARG = mvarchar,
RIGHTARG = mvarchar,
PROCEDURE = mvarchar_concat
);
CREATE FUNCTION mvarchar_like(mvarchar, mvarchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION like_escape(mvarchar, mvarchar)
RETURNS mvarchar
AS ‘$libdir/mchar’, ‘mvarchar_like_escape’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mvarchar_notlike(mvarchar, mvarchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE OPERATOR ~~ (
LEFTARG = mvarchar,
RIGHTARG = mvarchar,
PROCEDURE = mvarchar_like,
RESTRICT = likesel,
JOIN = likejoinsel,
NEGATOR = ‘!~~’
);
CREATE OPERATOR !~~ (
LEFTARG = mvarchar,
RIGHTARG = mvarchar,
PROCEDURE = mvarchar_notlike,
RESTRICT = nlikesel,
JOIN = nlikejoinsel,
NEGATOR = ‘~~’
);
CREATE FUNCTION mvarchar_regexeq(mvarchar, mvarchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mvarchar_regexne(mvarchar, mvarchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE OPERATOR ~ (
LEFTARG = mvarchar,
RIGHTARG = mvarchar,
PROCEDURE = mvarchar_regexeq,
RESTRICT = regexeqsel,
JOIN = regexeqjoinsel,
NEGATOR = ‘!~’
);
CREATE OPERATOR !~ (
LEFTARG = mvarchar,
RIGHTARG = mvarchar,
PROCEDURE = mvarchar_regexne,
RESTRICT = regexnesel,
JOIN = regexnejoinsel,
NEGATOR = ‘~’
);
CREATE FUNCTION similar_escape(mvarchar, mvarchar)
RETURNS mvarchar
AS ‘$libdir/mchar’, ‘mvarchar_similar_escape’
LANGUAGE C IMMUTABLE;
CREATE FUNCTION substr (mchar, int4)
RETURNS mchar
AS ‘$libdir/mchar’, ‘mchar_substring_no_len’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION substr (mchar, int4, int4)
RETURNS mchar
AS ‘$libdir/mchar’, ‘mchar_substring’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION substr (mvarchar, int4)
RETURNS mvarchar
AS ‘$libdir/mchar’, ‘mvarchar_substring_no_len’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION substr (mvarchar, int4, int4)
RETURNS mvarchar
AS ‘$libdir/mchar’, ‘mvarchar_substring’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
— Comparing
— MCHAR
CREATE FUNCTION mchar_icase_cmp(mchar, mchar)
RETURNS int4
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mchar_icase_eq(mchar, mchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mchar_icase_ne(mchar, mchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mchar_icase_lt(mchar, mchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mchar_icase_le(mchar, mchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mchar_icase_gt(mchar, mchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mchar_icase_ge(mchar, mchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE OPERATOR < (
LEFTARG = mchar,
RIGHTARG = mchar,
PROCEDURE = mchar_icase_lt,
COMMUTATOR = ‘>’,
NEGATOR = ‘>=’,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel
);
CREATE OPERATOR > (
LEFTARG = mchar,
RIGHTARG = mchar,
PROCEDURE = mchar_icase_gt,
COMMUTATOR = ‘<‘,
NEGATOR = ‘<=’,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel
);
CREATE OPERATOR <= (
LEFTARG = mchar,
RIGHTARG = mchar,
PROCEDURE = mchar_icase_le,
COMMUTATOR = ‘>=’,
NEGATOR = ‘>’,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel
);
CREATE OPERATOR >= (
LEFTARG = mchar,
RIGHTARG = mchar,
PROCEDURE = mchar_icase_ge,
COMMUTATOR = ‘<=’,
NEGATOR = ‘<‘,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel
);
CREATE OPERATOR = (
LEFTARG = mchar,
RIGHTARG = mchar,
PROCEDURE = mchar_icase_eq,
COMMUTATOR = ‘=’,
NEGATOR = ‘<>’,
RESTRICT = eqsel,
JOIN = eqjoinsel,
SORT1 = ‘<‘,
SORT2 = ‘<‘,
HASHES
);
CREATE OPERATOR <> (
LEFTARG = mchar,
RIGHTARG = mchar,
PROCEDURE = mchar_icase_ne,
COMMUTATOR = ‘<>’,
NEGATOR = ‘=’,
RESTRICT = neqsel,
JOIN = neqjoinsel
);
CREATE FUNCTION mchar_case_cmp(mchar, mchar)
RETURNS int4
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mchar_case_eq(mchar, mchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mchar_case_ne(mchar, mchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mchar_case_lt(mchar, mchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mchar_case_le(mchar, mchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mchar_case_gt(mchar, mchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mchar_case_ge(mchar, mchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE OPERATOR &< (
LEFTARG = mchar,
RIGHTARG = mchar,
PROCEDURE = mchar_case_lt,
COMMUTATOR = ‘&>’,
NEGATOR = ‘&>=’,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel
);
CREATE OPERATOR &> (
LEFTARG = mchar,
RIGHTARG = mchar,
PROCEDURE = mchar_case_gt,
COMMUTATOR = ‘&<‘,
NEGATOR = ‘&<=’,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel
);
CREATE OPERATOR &<= (
LEFTARG = mchar,
RIGHTARG = mchar,
PROCEDURE = mchar_case_le,
COMMUTATOR = ‘&>=’,
NEGATOR = ‘&>’,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel
);
CREATE OPERATOR &>= (
LEFTARG = mchar,
RIGHTARG = mchar,
PROCEDURE = mchar_case_ge,
COMMUTATOR = ‘&<=’,
NEGATOR = ‘&<‘,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel
);
CREATE OPERATOR &= (
LEFTARG = mchar,
RIGHTARG = mchar,
PROCEDURE = mchar_case_eq,
COMMUTATOR = ‘&=’,
NEGATOR = ‘&<>’,
RESTRICT = eqsel,
JOIN = eqjoinsel,
SORT1 = ‘&<‘,
SORT2 = ‘&<‘
);
CREATE OPERATOR &<> (
LEFTARG = mchar,
RIGHTARG = mchar,
PROCEDURE = mchar_case_ne,
COMMUTATOR = ‘&<>’,
NEGATOR = ‘&=’,
RESTRICT = neqsel,
JOIN = neqjoinsel
);
—MVARCHAR
CREATE FUNCTION mvarchar_icase_cmp(mvarchar, mvarchar)
RETURNS int4
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mvarchar_icase_eq(mvarchar, mvarchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mvarchar_icase_ne(mvarchar, mvarchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mvarchar_icase_lt(mvarchar, mvarchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mvarchar_icase_le(mvarchar, mvarchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mvarchar_icase_gt(mvarchar, mvarchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mvarchar_icase_ge(mvarchar, mvarchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE OPERATOR < (
LEFTARG = mvarchar,
RIGHTARG = mvarchar,
PROCEDURE = mvarchar_icase_lt,
COMMUTATOR = ‘>’,
NEGATOR = ‘>=’,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel
);
CREATE OPERATOR > (
LEFTARG = mvarchar,
RIGHTARG = mvarchar,
PROCEDURE = mvarchar_icase_gt,
COMMUTATOR = ‘<‘,
NEGATOR = ‘<=’,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel
);
CREATE OPERATOR <= (
LEFTARG = mvarchar,
RIGHTARG = mvarchar,
PROCEDURE = mvarchar_icase_le,
COMMUTATOR = ‘>=’,
NEGATOR = ‘>’,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel
);
CREATE OPERATOR >= (
LEFTARG = mvarchar,
RIGHTARG = mvarchar,
PROCEDURE = mvarchar_icase_ge,
COMMUTATOR = ‘<=’,
NEGATOR = ‘<‘,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel
);
CREATE OPERATOR = (
LEFTARG = mvarchar,
RIGHTARG = mvarchar,
PROCEDURE = mvarchar_icase_eq,
COMMUTATOR = ‘=’,
NEGATOR = ‘<>’,
RESTRICT = eqsel,
JOIN = eqjoinsel,
SORT1 = ‘<‘,
SORT2 = ‘<‘,
HASHES
);
CREATE OPERATOR <> (
LEFTARG = mvarchar,
RIGHTARG = mvarchar,
PROCEDURE = mvarchar_icase_ne,
COMMUTATOR = ‘<>’,
NEGATOR = ‘=’,
RESTRICT = neqsel,
JOIN = neqjoinsel
);
CREATE FUNCTION mvarchar_case_cmp(mvarchar, mvarchar)
RETURNS int4
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mvarchar_case_eq(mvarchar, mvarchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mvarchar_case_ne(mvarchar, mvarchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mvarchar_case_lt(mvarchar, mvarchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mvarchar_case_le(mvarchar, mvarchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mvarchar_case_gt(mvarchar, mvarchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mvarchar_case_ge(mvarchar, mvarchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE OPERATOR &< (
LEFTARG = mvarchar,
RIGHTARG = mvarchar,
PROCEDURE = mvarchar_case_lt,
COMMUTATOR = ‘&>’,
NEGATOR = ‘&>=’,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel
);
CREATE OPERATOR &> (
LEFTARG = mvarchar,
RIGHTARG = mvarchar,
PROCEDURE = mvarchar_case_gt,
COMMUTATOR = ‘&<‘,
NEGATOR = ‘&<=’,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel
);
CREATE OPERATOR &<= (
LEFTARG = mvarchar,
RIGHTARG = mvarchar,
PROCEDURE = mvarchar_case_le,
COMMUTATOR = ‘&>=’,
NEGATOR = ‘&>’,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel
);
CREATE OPERATOR &>= (
LEFTARG = mvarchar,
RIGHTARG = mvarchar,
PROCEDURE = mvarchar_case_ge,
COMMUTATOR = ‘&<=’,
NEGATOR = ‘&<‘,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel
);
CREATE OPERATOR &= (
LEFTARG = mvarchar,
RIGHTARG = mvarchar,
PROCEDURE = mvarchar_case_eq,
COMMUTATOR = ‘&=’,
NEGATOR = ‘&<>’,
RESTRICT = eqsel,
JOIN = eqjoinsel,
SORT1 = ‘&<‘,
SORT2 = ‘&<‘
);
CREATE OPERATOR &<> (
LEFTARG = mvarchar,
RIGHTARG = mvarchar,
PROCEDURE = mvarchar_case_ne,
COMMUTATOR = ‘&<>’,
NEGATOR = ‘&=’,
RESTRICT = neqsel,
JOIN = neqjoinsel
);
— MCHAR <> MVARCHAR
CREATE FUNCTION mc_mv_icase_cmp(mchar, mvarchar)
RETURNS int4
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mc_mv_icase_eq(mchar, mvarchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mc_mv_icase_ne(mchar, mvarchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mc_mv_icase_lt(mchar, mvarchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mc_mv_icase_le(mchar, mvarchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mc_mv_icase_gt(mchar, mvarchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mc_mv_icase_ge(mchar, mvarchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE OPERATOR < (
LEFTARG = mchar,
RIGHTARG = mvarchar,
PROCEDURE = mc_mv_icase_lt,
COMMUTATOR = ‘>’,
NEGATOR = ‘>=’,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel
);
CREATE OPERATOR > (
LEFTARG = mchar,
RIGHTARG = mvarchar,
PROCEDURE = mc_mv_icase_gt,
COMMUTATOR = ‘<‘,
NEGATOR = ‘<=’,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel
);
CREATE OPERATOR <= (
LEFTARG = mchar,
RIGHTARG = mvarchar,
PROCEDURE = mc_mv_icase_le,
COMMUTATOR = ‘>=’,
NEGATOR = ‘>’,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel
);
CREATE OPERATOR >= (
LEFTARG = mchar,
RIGHTARG = mvarchar,
PROCEDURE = mc_mv_icase_ge,
COMMUTATOR = ‘<=’,
NEGATOR = ‘<‘,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel
);
CREATE OPERATOR = (
LEFTARG = mchar,
RIGHTARG = mvarchar,
PROCEDURE = mc_mv_icase_eq,
COMMUTATOR = ‘=’,
NEGATOR = ‘<>’,
RESTRICT = eqsel,
JOIN = eqjoinsel,
SORT1 = ‘<‘,
SORT2 = ‘<‘
);
CREATE OPERATOR <> (
LEFTARG = mchar,
RIGHTARG = mvarchar,
PROCEDURE = mc_mv_icase_ne,
COMMUTATOR = ‘<>’,
NEGATOR = ‘=’,
RESTRICT = neqsel,
JOIN = neqjoinsel
);
CREATE FUNCTION mc_mv_case_cmp(mchar, mvarchar)
RETURNS int4
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mc_mv_case_eq(mchar, mvarchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mc_mv_case_ne(mchar, mvarchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mc_mv_case_lt(mchar, mvarchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mc_mv_case_le(mchar, mvarchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mc_mv_case_gt(mchar, mvarchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mc_mv_case_ge(mchar, mvarchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE OPERATOR &< (
LEFTARG = mchar,
RIGHTARG = mvarchar,
PROCEDURE = mc_mv_case_lt,
COMMUTATOR = ‘&>’,
NEGATOR = ‘&>=’,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel
);
CREATE OPERATOR &> (
LEFTARG = mchar,
RIGHTARG = mvarchar,
PROCEDURE = mc_mv_case_gt,
COMMUTATOR = ‘&<‘,
NEGATOR = ‘&<=’,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel
);
CREATE OPERATOR &<= (
LEFTARG = mchar,
RIGHTARG = mvarchar,
PROCEDURE = mc_mv_case_le,
COMMUTATOR = ‘&>=’,
NEGATOR = ‘&>’,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel
);
CREATE OPERATOR &>= (
LEFTARG = mchar,
RIGHTARG = mvarchar,
PROCEDURE = mc_mv_case_ge,
COMMUTATOR = ‘&<=’,
NEGATOR = ‘&<‘,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel
);
CREATE OPERATOR &= (
LEFTARG = mchar,
RIGHTARG = mvarchar,
PROCEDURE = mc_mv_case_eq,
COMMUTATOR = ‘&=’,
NEGATOR = ‘&<>’,
RESTRICT = eqsel,
JOIN = eqjoinsel,
SORT1 = ‘&<‘,
SORT2 = ‘&<‘
);
CREATE OPERATOR &<> (
LEFTARG = mchar,
RIGHTARG = mvarchar,
PROCEDURE = mc_mv_case_ne,
COMMUTATOR = ‘&<>’,
NEGATOR = ‘&=’,
RESTRICT = neqsel,
JOIN = neqjoinsel
);
— MVARCHAR <> MCHAR
CREATE FUNCTION mv_mc_icase_cmp(mvarchar, mchar)
RETURNS int4
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mv_mc_icase_eq(mvarchar, mchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mv_mc_icase_ne(mvarchar, mchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mv_mc_icase_lt(mvarchar, mchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mv_mc_icase_le(mvarchar, mchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mv_mc_icase_gt(mvarchar, mchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mv_mc_icase_ge(mvarchar, mchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE OPERATOR < (
LEFTARG = mvarchar,
RIGHTARG = mchar,
PROCEDURE = mv_mc_icase_lt,
COMMUTATOR = ‘>’,
NEGATOR = ‘>=’,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel
);
CREATE OPERATOR > (
LEFTARG = mvarchar,
RIGHTARG = mchar,
PROCEDURE = mv_mc_icase_gt,
COMMUTATOR = ‘<‘,
NEGATOR = ‘<=’,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel
);
CREATE OPERATOR <= (
LEFTARG = mvarchar,
RIGHTARG = mchar,
PROCEDURE = mv_mc_icase_le,
COMMUTATOR = ‘>=’,
NEGATOR = ‘>’,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel
);
CREATE OPERATOR >= (
LEFTARG = mvarchar,
RIGHTARG = mchar,
PROCEDURE = mv_mc_icase_ge,
COMMUTATOR = ‘<=’,
NEGATOR = ‘<‘,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel
);
CREATE OPERATOR = (
LEFTARG = mvarchar,
RIGHTARG = mchar,
PROCEDURE = mv_mc_icase_eq,
COMMUTATOR = ‘=’,
NEGATOR = ‘<>’,
RESTRICT = eqsel,
JOIN = eqjoinsel,
SORT1 = ‘<‘,
SORT2 = ‘<‘
);
CREATE OPERATOR <> (
LEFTARG = mvarchar,
RIGHTARG = mchar,
PROCEDURE = mv_mc_icase_ne,
COMMUTATOR = ‘<>’,
NEGATOR = ‘=’,
RESTRICT = neqsel,
JOIN = neqjoinsel
);
CREATE FUNCTION mv_mc_case_cmp(mvarchar, mchar)
RETURNS int4
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mv_mc_case_eq(mvarchar, mchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mv_mc_case_ne(mvarchar, mchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mv_mc_case_lt(mvarchar, mchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mv_mc_case_le(mvarchar, mchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mv_mc_case_gt(mvarchar, mchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mv_mc_case_ge(mvarchar, mchar)
RETURNS bool
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE OPERATOR &< (
LEFTARG = mvarchar,
RIGHTARG = mchar,
PROCEDURE = mv_mc_case_lt,
COMMUTATOR = ‘&>’,
NEGATOR = ‘&>=’,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel
);
CREATE OPERATOR &> (
LEFTARG = mvarchar,
RIGHTARG = mchar,
PROCEDURE = mv_mc_case_gt,
COMMUTATOR = ‘&<‘,
NEGATOR = ‘&<=’,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel
);
CREATE OPERATOR &<= (
LEFTARG = mvarchar,
RIGHTARG = mchar,
PROCEDURE = mv_mc_case_le,
COMMUTATOR = ‘&>=’,
NEGATOR = ‘&>’,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel
);
CREATE OPERATOR &>= (
LEFTARG = mvarchar,
RIGHTARG = mchar,
PROCEDURE = mv_mc_case_ge,
COMMUTATOR = ‘&<=’,
NEGATOR = ‘&<‘,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel
);
CREATE OPERATOR &= (
LEFTARG = mvarchar,
RIGHTARG = mchar,
PROCEDURE = mv_mc_case_eq,
COMMUTATOR = ‘&=’,
NEGATOR = ‘&<>’,
RESTRICT = eqsel,
JOIN = eqjoinsel,
SORT1 = ‘&<‘,
SORT2 = ‘&<‘
);
CREATE OPERATOR &<> (
LEFTARG = mvarchar,
RIGHTARG = mchar,
PROCEDURE = mv_mc_case_ne,
COMMUTATOR = ‘&<>’,
NEGATOR = ‘&=’,
RESTRICT = neqsel,
JOIN = neqjoinsel
);
— MCHAR — VARCHAR operations
CREATE FUNCTION mchar_mvarchar_concat(mchar, mvarchar)
RETURNS mvarchar
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE OPERATOR || (
LEFTARG = mchar,
RIGHTARG = mvarchar,
PROCEDURE = mchar_mvarchar_concat
);
CREATE FUNCTION mvarchar_mchar_concat(mvarchar, mchar)
RETURNS mvarchar
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE OPERATOR || (
LEFTARG = mvarchar,
RIGHTARG = mchar,
PROCEDURE = mvarchar_mchar_concat
);
&nb
18 — 01.06.07 — 18:30
CREATE FUNCTION mvarchar_mchar(mvarchar, integer, boolean)
RETURNS mchar
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE CAST (mvarchar as mchar)
WITH FUNCTION mvarchar_mchar(mvarchar, integer, boolean) as IMPLICIT;
CREATE FUNCTION mchar_mvarchar(mchar, integer, boolean)
RETURNS mvarchar
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE CAST (mchar as mvarchar)
WITH FUNCTION mchar_mvarchar(mchar, integer, boolean) as IMPLICIT;
— Aggregates
CREATE FUNCTION mchar_larger(mchar, mchar)
RETURNS mchar
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE AGGREGATE max (
BASETYPE = mchar,
SFUNC = mchar_larger,
STYPE = mchar,
SORTOP = ‘>’
);
CREATE FUNCTION mchar_smaller(mchar, mchar)
RETURNS mchar
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE AGGREGATE min (
BASETYPE = mchar,
SFUNC = mchar_smaller,
STYPE = mchar,
SORTOP = ‘<‘
);
CREATE FUNCTION mvarchar_larger(mvarchar, mvarchar)
RETURNS mvarchar
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE AGGREGATE max (
BASETYPE = mvarchar,
SFUNC = mvarchar_larger,
STYPE = mvarchar,
SORTOP = ‘>’
);
CREATE FUNCTION mvarchar_smaller(mvarchar, mvarchar)
RETURNS mvarchar
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE AGGREGATE min (
BASETYPE = mvarchar,
SFUNC = mvarchar_smaller,
STYPE = mvarchar,
SORTOP = ‘<‘
);
— B-tree support
CREATE OPERATOR CLASS mchar_icase_ops
DEFAULT FOR TYPE mchar USING btree AS
OPERATOR 1 < ,
OPERATOR 2 <= ,
OPERATOR 3 = ,
OPERATOR 4 >= ,
OPERATOR 5 > ,
FUNCTION 1 mchar_icase_cmp(mchar, mchar),
OPERATOR 1 < (mchar, mvarchar),
OPERATOR 2 <= (mchar, mvarchar),
OPERATOR 3 = (mchar, mvarchar),
OPERATOR 4 >= (mchar, mvarchar),
OPERATOR 5 > (mchar, mvarchar),
FUNCTION 1 mc_mv_icase_cmp(mchar, mvarchar);
CREATE OPERATOR CLASS mchar_icase_ops
DEFAULT FOR TYPE mchar USING hash AS
OPERATOR 1 = ,
FUNCTION 1 mchar_hash(mchar);
CREATE OPERATOR CLASS mvarchar_icase_ops
DEFAULT FOR TYPE mvarchar USING btree AS
OPERATOR 1 < ,
OPERATOR 2 <= ,
OPERATOR 3 = ,
OPERATOR 4 >= ,
OPERATOR 5 > ,
FUNCTION 1 mvarchar_icase_cmp(mvarchar, mvarchar),
OPERATOR 1 < (mvarchar, mchar),
OPERATOR 2 <= (mvarchar, mchar),
OPERATOR 3 = (mvarchar, mchar),
OPERATOR 4 >= (mvarchar, mchar),
OPERATOR 5 > (mvarchar, mchar),
FUNCTION 1 mv_mc_icase_cmp(mvarchar, mchar);
CREATE OPERATOR CLASS mvarchar_icase_ops
DEFAULT FOR TYPE mvarchar USING hash AS
OPERATOR 1 = ,
FUNCTION 1 mvarchar_hash(mvarchar);
— Index support for LIKE
CREATE FUNCTION mchar_pattern_fixed_prefix(bool, internal, internal, internal, internal)
RETURNS int4
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
CREATE FUNCTION mchar_greaterstring(bool, internal)
RETURNS internal
AS ‘$libdir/mchar’
LANGUAGE C IMMUTABLE RETURNS NULL ON NULL INPUT;
—
—
— FULLEQ
—
—
CREATE OR REPLACE FUNCTION isfulleq_bool(bool, bool)
RETURNS bool AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OR REPLACE FUNCTION fullhash_bool(bool)
RETURNS int4 AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OPERATOR == (
LEFTARG = bool,
RIGHTARG = bool,
PROCEDURE = isfulleq_bool,
COMMUTATOR = ‘==’,
RESTRICT = eqsel,
JOIN = eqjoinsel,
HASHES
);
CREATE OPERATOR CLASS bool_fill_ops
FOR TYPE bool USING hash AS
OPERATOR 1 ==,
FUNCTION 1 fullhash_bool(bool);
— For bytea
CREATE OR REPLACE FUNCTION isfulleq_bytea(bytea, bytea)
RETURNS bool AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OR REPLACE FUNCTION fullhash_bytea(bytea)
RETURNS int4 AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OPERATOR == (
LEFTARG = bytea,
RIGHTARG = bytea,
PROCEDURE = isfulleq_bytea,
COMMUTATOR = ‘==’,
RESTRICT = eqsel,
JOIN = eqjoinsel,
HASHES
);
CREATE OPERATOR CLASS bytea_fill_ops
FOR TYPE bytea USING hash AS
OPERATOR 1 ==,
FUNCTION 1 fullhash_bytea(bytea);
— For char
CREATE OR REPLACE FUNCTION isfulleq_char(char, char)
RETURNS bool AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OR REPLACE FUNCTION fullhash_char(char)
RETURNS int4 AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OPERATOR == (
LEFTARG = char,
RIGHTARG = char,
PROCEDURE = isfulleq_char,
COMMUTATOR = ‘==’,
RESTRICT = eqsel,
JOIN = eqjoinsel,
HASHES
);
CREATE OPERATOR CLASS char_fill_ops
FOR TYPE char USING hash AS
OPERATOR 1 ==,
FUNCTION 1 fullhash_char(char);
— For name
CREATE OR REPLACE FUNCTION isfulleq_name(name, name)
RETURNS bool AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OR REPLACE FUNCTION fullhash_name(name)
RETURNS int4 AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OPERATOR == (
LEFTARG = name,
RIGHTARG = name,
PROCEDURE = isfulleq_name,
COMMUTATOR = ‘==’,
RESTRICT = eqsel,
JOIN = eqjoinsel,
HASHES
);
CREATE OPERATOR CLASS name_fill_ops
FOR TYPE name USING hash AS
OPERATOR 1 ==,
FUNCTION 1 fullhash_name(name);
— For int8
CREATE OR REPLACE FUNCTION isfulleq_int8(int8, int8)
RETURNS bool AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OR REPLACE FUNCTION fullhash_int8(int8)
RETURNS int4 AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OPERATOR == (
LEFTARG = int8,
RIGHTARG = int8,
PROCEDURE = isfulleq_int8,
COMMUTATOR = ‘==’,
RESTRICT = eqsel,
JOIN = eqjoinsel,
HASHES
);
CREATE OPERATOR CLASS int8_fill_ops
FOR TYPE int8 USING hash AS
OPERATOR 1 ==,
FUNCTION 1 fullhash_int8(int8);
— For int2
CREATE OR REPLACE FUNCTION isfulleq_int2(int2, int2)
RETURNS bool AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OR REPLACE FUNCTION fullhash_int2(int2)
RETURNS int4 AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OPERATOR == (
LEFTARG = int2,
RIGHTARG = int2,
PROCEDURE = isfulleq_int2,
COMMUTATOR = ‘==’,
RESTRICT = eqsel,
JOIN = eqjoinsel,
HASHES
);
CREATE OPERATOR CLASS int2_fill_ops
FOR TYPE int2 USING hash AS
OPERATOR 1 ==,
FUNCTION 1 fullhash_int2(int2);
— For int2vector
CREATE OR REPLACE FUNCTION isfulleq_int2vector(int2vector, int2vector)
RETURNS bool AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OR REPLACE FUNCTION fullhash_int2vector(int2vector)
RETURNS int4 AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OPERATOR == (
LEFTARG = int2vector,
RIGHTARG = int2vector,
PROCEDURE = isfulleq_int2vector,
COMMUTATOR = ‘==’,
RESTRICT = eqsel,
JOIN = eqjoinsel,
HASHES
);
CREATE OPERATOR CLASS int2vector_fill_ops
FOR TYPE int2vector USING hash AS
OPERATOR 1 ==,
FUNCTION 1 fullhash_int2vector(int2vector);
— For int4
CREATE OR REPLACE FUNCTION isfulleq_int4(int4, int4)
RETURNS bool AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OR REPLACE FUNCTION fullhash_int4(int4)
RETURNS int4 AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OPERATOR == (
LEFTARG = int4,
RIGHTARG = int4,
PROCEDURE = isfulleq_int4,
COMMUTATOR = ‘==’,
RESTRICT = eqsel,
JOIN = eqjoinsel,
HASHES
);
CREATE OPERATOR CLASS int4_fill_ops
FOR TYPE int4 USING hash AS
OPERATOR 1 ==,
FUNCTION 1 fullhash_int4(int4);
— For text
CREATE OR REPLACE FUNCTION isfulleq_text(text, text)
RETURNS bool AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OR REPLACE FUNCTION fullhash_text(text)
RETURNS int4 AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OPERATOR == (
LEFTARG = text,
RIGHTARG = text,
PROCEDURE = isfulleq_text,
COMMUTATOR = ‘==’,
RESTRICT = eqsel,
JOIN = eqjoinsel,
HASHES
);
CREATE OPERATOR CLASS text_fill_ops
FOR TYPE text USING hash AS
OPERATOR 1 ==,
FUNCTION 1 fullhash_text(text);
— For oid
CREATE OR REPLACE FUNCTION isfulleq_oid(oid, oid)
RETURNS bool AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OR REPLACE FUNCTION fullhash_oid(oid)
RETURNS int4 AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OPERATOR == (
LEFTARG = oid,
RIGHTARG = oid,
PROCEDURE = isfulleq_oid,
COMMUTATOR = ‘==’,
RESTRICT = eqsel,
JOIN = eqjoinsel,
HASHES
);
CREATE OPERATOR CLASS oid_fill_ops
FOR TYPE oid USING hash AS
OPERATOR 1 ==,
FUNCTION 1 fullhash_oid(oid);
— For xid
CREATE OR REPLACE FUNCTION isfulleq_xid(xid, xid)
RETURNS bool AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OR REPLACE FUNCTION fullhash_xid(xid)
RETURNS int4 AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OPERATOR == (
LEFTARG = xid,
RIGHTARG = xid,
PROCEDURE = isfulleq_xid,
COMMUTATOR = ‘==’,
RESTRICT = eqsel,
JOIN = eqjoinsel,
HASHES
);
CREATE OPERATOR CLASS xid_fill_ops
FOR TYPE xid USING hash AS
OPERATOR 1 ==,
FUNCTION 1 fullhash_xid(xid);
— For cid
CREATE OR REPLACE FUNCTION isfulleq_cid(cid, cid)
RETURNS bool AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OR REPLACE FUNCTION fullhash_cid(cid)
RETURNS int4 AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OPERATOR == (
LEFTARG = cid,
RIGHTARG = cid,
PROCEDURE = isfulleq_cid,
COMMUTATOR = ‘==’,
RESTRICT = eqsel,
JOIN = eqjoinsel,
HASHES
);
CREATE OPERATOR CLASS cid_fill_ops
FOR TYPE cid USING hash AS
OPERATOR 1 ==,
FUNCTION 1 fullhash_cid(cid);
— For oidvector
CREATE OR REPLACE FUNCTION isfulleq_oidvector(oidvector, oidvector)
RETURNS bool AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OR REPLACE FUNCTION fullhash_oidvector(oidvector)
RETURNS int4 AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OPERATOR == (
LEFTARG = oidvector,
RIGHTARG = oidvector,
PROCEDURE = isfulleq_oidvector,
COMMUTATOR = ‘==’,
RESTRICT = eqsel,
JOIN = eqjoinsel,
HASHES
);
CREATE OPERATOR CLASS oidvector_fill_ops
FOR TYPE oidvector USING hash AS
OPERATOR 1 ==,
FUNCTION 1 fullhash_oidvector(oidvector);
— For float4
CREATE OR REPLACE FUNCTION isfulleq_float4(float4, float4)
RETURNS bool AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OR REPLACE FUNCTION fullhash_float4(float4)
RETURNS int4 AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OPERATOR == (
LEFTARG = float4,
RIGHTARG = float4,
PROCEDURE = isfulleq_float4,
COMMUTATOR = ‘==’,
RESTRICT = eqsel,
JOIN = eqjoinsel,
HASHES
);
CREATE OPERATOR CLASS float4_fill_ops
FOR TYPE float4 USING hash AS
OPERATOR 1 ==,
FUNCTION 1 fullhash_float4(float4);
— For float8
CREATE OR REPLACE FUNCTION isfulleq_float8(float8, float8)
RETURNS bool AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OR REPLACE FUNCTION fullhash_float8(float8)
RETURNS int4 AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OPERATOR == (
LEFTARG = float8,
RIGHTARG = float8,
PROCEDURE = isfulleq_float8,
COMMUTATOR = ‘==’,
RESTRICT = eqsel,
JOIN = eqjoinsel,
HASHES
);
CREATE OPERATOR CLASS float8_fill_ops
FOR TYPE float8 USING hash AS
OPERATOR 1 ==,
FUNCTION 1 fullhash_float8(float8);
— For abstime
CREATE OR REPLACE FUNCTION isfulleq_abstime(abstime, abstime)
RETURNS bool AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OR REPLACE FUNCTION fullhash_abstime(abstime)
RETURNS int4 AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OPERATOR == (
LEFTARG = abstime,
RIGHTARG = abstime,
PROCEDURE = isfulleq_abstime,
COMMUTATOR = ‘==’,
RESTRICT = eqsel,
JOIN = eqjoinsel,
HASHES
);
CREATE OPERATOR CLASS abstime_fill_ops
FOR TYPE abstime USING hash AS
OPERATOR 1 ==,
FUNCTION 1 fullhash_abstime(abstime);
— For reltime
CREATE OR REPLACE FUNCTION isfulleq_reltime(reltime, reltime)
RETURNS bool AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OR REPLACE FUNCTION fullhash_reltime(reltime)
RETURNS int4 AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OPERATOR == (
LEFTARG = reltime,
RIGHTARG = reltime,
PROCEDURE = isfulleq_reltime,
COMMUTATOR = ‘==’,
RESTRICT = eqsel,
JOIN = eqjoinsel,
HASHES
);
CREATE OPERATOR CLASS reltime_fill_ops
FOR TYPE reltime USING hash AS
OPERATOR 1 ==,
FUNCTION 1 fullhash_reltime(reltime);
— For macaddr
CREATE OR REPLACE FUNCTION isfulleq_macaddr(macaddr, macaddr)
RETURNS bool AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OR REPLACE FUNCTION fullhash_macaddr(macaddr)
RETURNS int4 AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OPERATOR == (
LEFTARG = macaddr,
RIGHTARG = macaddr,
PROCEDURE = isfulleq_macaddr,
COMMUTATOR = ‘==’,
RESTRICT = eqsel,
JOIN = eqjoinsel,
HASHES
);
CREATE OPERATOR CLASS macaddr_fill_ops
FOR TYPE macaddr USING hash AS
OPERATOR 1 ==,
FUNCTION 1 fullhash_macaddr(macaddr);
— For inet
CREATE OR REPLACE FUNCTION isfulleq_inet(inet, inet)
RETURNS bool AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OR REPLACE FUNCTION fullhash_inet(inet)
RETURNS int4 AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OPERATOR == (
LEFTARG = inet,
RIGHTARG = inet,
PROCEDURE = isfulleq_inet,
COMMUTATOR = ‘==’,
RESTRICT = eqsel,
JOIN = eqjoinsel,
HASHES
);
CREATE OPERATOR CLASS inet_fill_ops
FOR TYPE inet USING hash AS
OPERATOR 1 ==,
FUNCTION 1 fullhash_inet(inet);
— For cidr
CREATE OR REPLACE FUNCTION isfulleq_cidr(cidr, cidr)
RETURNS bool AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OR REPLACE FUNCTION fullhash_cidr(cidr)
RETURNS int4 AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OPERATOR == (
LEFTARG = cidr,
RIGHTARG = cidr,
PROCEDURE = isfulleq_cidr,
COMMUTATOR = ‘==’,
RESTRICT = eqsel,
JOIN = eqjoinsel,
HASHES
);
CREATE OPERATOR CLASS cidr_fill_ops
FOR TYPE cidr USING hash AS
OPERATOR 1 ==,
FUNCTION 1 fullhash_cidr(cidr);
— For varchar
CREATE OR REPLACE FUNCTION isfulleq_varchar(varchar, varchar)
RETURNS bool AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OR REPLACE FUNCTION fullhash_varchar(varchar)
RETURNS int4 AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OPERATOR == (
LEFTARG = varchar,
RIGHTARG = varchar,
PROCEDURE = isfulleq_varchar,
COMMUTATOR = ‘==’,
RESTRICT = eqsel,
JOIN = eqjoinsel,
HASHES
);
CREATE OPERATOR CLASS varchar_fill_ops
FOR TYPE varchar USING hash AS
OPERATOR 1 ==,
FUNCTION 1 fullhash_varchar(varchar);
— For date
CREATE OR REPLACE FUNCTION isfulleq_date(date, date)
RETURNS bool AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OR REPLACE FUNCTION fullhash_date(date)
RETURNS int4 AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OPERATOR == (
LEFTARG = date,
RIGHTARG = date,
PROCEDURE = isfulleq_date,
COMMUTATOR = ‘==’,
RESTRICT = eqsel,
JOIN = eqjoinsel,
HASHES
);
CREATE OPERATOR CLASS date_fill_ops
FOR TYPE date USING hash AS
OPERATOR 1 ==,
FUNCTION 1 fullhash_date(date);
— For time
CREATE OR REPLACE FUNCTION isfulleq_time(time, time)
RETURNS bool AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OR REPLACE FUNCTION fullhash_time(time)
RETURNS int4 AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OPERATOR == (
LEFTARG = time,
RIGHTARG = time,
PROCEDURE = isfulleq_time,
COMMUTATOR = ‘==’,
RESTRICT = eqsel,
JOIN = eqjoinsel,
HASHES
);
CREATE OPERATOR CLASS time_fill_ops
FOR TYPE time USING hash AS
OPERATOR 1 ==,
FUNCTION 1 fullhash_time(time);
— For timestamp
CREATE OR REPLACE FUNCTION isfulleq_timestamp(timestamp, timestamp)
RETURNS bool AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OR REPLACE FUNCTION fullhash_timestamp(timestamp)
RETURNS int4 AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OPERATOR == (
LEFTARG = timestamp,
RIGHTARG = timestamp,
PROCEDURE = isfulleq_timestamp,
COMMUTATOR = ‘==’,
RESTRICT = eqsel,
JOIN = eqjoinsel,
HASHES
);
CREATE OPERATOR CLASS timestamp_fill_ops
FOR TYPE timestamp USING hash AS
OPERATOR 1 ==,
FUNCTION 1 fullhash_timestamp(timestamp);
— For timestamptz
CREATE OR REPLACE FUNCTION isfulleq_timestamptz(timestamptz, timestamptz)
RETURNS bool AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OR REPLACE FUNCTION fullhash_timestamptz(timestamptz)
RETURNS int4 AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OPERATOR == (
LEFTARG = timestamptz,
RIGHTARG = timestamptz,
PROCEDURE = isfulleq_timestamptz,
COMMUTATOR = ‘==’,
RESTRICT = eqsel,
JOIN = eqjoinsel,
HASHES
);
CREATE OPERATOR CLASS timestamptz_fill_ops
FOR TYPE timestamptz USING hash AS
OPERATOR 1 ==,
FUNCTION 1 fullhash_timestamptz(timestamptz);
— For interval
CREATE OR REPLACE FUNCTION isfulleq_interval(interval, interval)
RETURNS bool AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OR REPLACE FUNCTION fullhash_interval(interval)
RETURNS int4 AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OPERATOR == (
LEFTARG = interval,
RIGHTARG = interval,
PROCEDURE = isfulleq_interval,
COMMUTATOR = ‘==’,
RESTRICT = eqsel,
JOIN = eqjoinsel,
HASHES
);
CREATE OPERATOR CLASS interval_fill_ops
FOR TYPE interval USING hash AS
OPERATOR 1 ==,
FUNCTION 1 fullhash_interval(interval);
— For timetz
CREATE OR REPLACE FUNCTION isfulleq_timetz(timetz, timetz)
RETURNS bool AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OR REPLACE FUNCTION fullhash_timetz(timetz)
RETURNS int4 AS ‘$libdir/fulleq’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OPERATOR == (
LEFTARG = timetz,
RIGHTARG = timetz,
PROCEDURE = isfulleq_timetz,
COMMUTATOR = ‘==’,
RESTRICT = eqsel,
JOIN = eqjoinsel,
HASHES
);
CREATE OPERATOR CLASS timetz_fill_ops
FOR TYPE timetz USING hash AS
OPERATOR 1 ==,
FUNCTION 1 fullhash_timetz(timetz);
— For mchar
CREATE OR REPLACE FUNCTION isfulleq_mchar(mchar, mchar)
RETURNS bool AS ‘$libdir/mchar’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OR REPLACE FUNCTION fullhash_mchar(mchar)
RETURNS int4 AS ‘$libdir/mchar’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OPERATOR == (
LEFTARG = mchar,
RIGHTARG = mchar,
PROCEDURE = isfulleq_mchar,
COMMUTATOR = ‘==’,
RESTRICT = eqsel,
JOIN = eqjoinsel,
HASHES
);
CREATE OPERATOR CLASS mchar_fill_ops
FOR TYPE mchar USING hash AS
OPERATOR 1 ==,
FUNCTION 1 fullhash_mchar(mchar);
— For mvarchar
CREATE OR REPLACE FUNCTION isfulleq_mvarchar(mvarchar, mvarchar)
RETURNS bool AS ‘$libdir/mchar’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OR REPLACE FUNCTION fullhash_mvarchar(mvarchar)
RETURNS int4 AS ‘$libdir/mchar’
LANGUAGE C CALLED ON NULL INPUT IMMUTABLE;
CREATE OPERATOR == (
LEFTARG = mvarchar,
RIGHTARG = mvarchar,
PROCEDURE = isfulleq_mvarchar,
COMMUTATOR = ‘==’,
RESTRICT = eqsel,
JOIN = eqjoinsel,
HASHES
);
CREATE OPERATOR CLASS mvarchar_fill_ops
FOR TYPE mvarchar USING hash AS
OPERATOR 1 ==,
FUNCTION 1 fullhash_mvarchar(mvarchar);
CREATE OR REPLACE FUNCTION fasttruncate(text)
RETURNS void AS ‘$libdir/fasttrun’
LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
2007-06-01 18:07:25 WARNING: there is no transaction in progress
2007-06-01 18:07:26 ERROR: syntax error at or near «application» at character 24
2007-06-01 18:07:26 STATEMENT: lock table pg_class in application share mode
2007-06-01 18:07:26 WARNING: there is no transaction in progress
2007-06-01 18:07:26 ERROR: syntax error at or near «(» at character 39
2007-06-01 18:07:26 STATEMENT: create table Config (FileName mvarchar(128) not null primary key, Creation timestamp not null, Modified timestamp not null, Attributes int not null, DataSize int not null, BinaryData bytea not null)
2007-06-01 18:07:26 WARNING: there is no transaction in progress
PostgreSQL присваивает пятисимвольные коды ошибок, которые соответствуют «SQLSTATE». Приложения обычно проверяют код ошибки и только потом обращаются к текстовому сообщению об ошибке. Коды ошибок и текстовое сообщение не меняются в новых выпусках. Обратите внимание, что не все коды ошибок, создаваемые PostgreSQL, определены в стандарте SQL. Некоторые дополнительные коды ошибок были добавлены самостоятельно или заимствованы из других баз данных.
Первые два символа кода ошибки представляют класс ошибок, а последние три символа — конкретное условие в этом классе. Таким образом, если вы не знаете значение конкретного кода ошибки, вы можете определить причину по классу ошибки.
Все коды ошибок и классы ошибок перечислены в статье. Для каждого класса ошибок существует свой «стандарт», код ошибки с тремя последними нулями. Этот код указывается только для условий ошибки, которые принадлежат к определенному классу, но не имеют конкретного кода. Читайте так же: Расшифровка кодов ошибок MySQL.
Класс 00 — Успешное завершение
00000
successful_completion
УСПЕШНОЕ ЗАВЕРШЕНИЕ
Класс 01 — Предупреждение
01000
warning
ПРЕДУПРЕЖДЕНИЕ
0100C
dynamic_result_sets_returned
ВОЗВРАЩЕНЫ ДИНАМИЧЕСКИЕ НАБОРЫ РЕЗУЛЬТАТОВ
01008
implicit_zero_bit_padding
НЕЯВНОЕ ЗАПОЛНЕНИЕ НУЛЕВОГО БИТА
01003
null_value_eliminated_in_set_function
НУЛЕВОЕ ЗНАЧЕНИЕ ИСКЛЮЧЕНО В ФУНКЦИИ SET
01007
privilege_not_granted
ПРИВИЛЕГИЯ НЕ ПРЕДОСТАВЛЕНА
1006
privilege_not_revoked
ПРИВИЛЕГИЯ НЕ ОТОЗВАНА
01004
string_data_right_truncation
УСЕЧЕНИЕ ПРАВОЙ ЧАСТИ СТРОКОВЫХ ДАННЫХ
01P01
deprecated_feature
УСТАРЕВШАЯ ФУНКЦИЯ
Класс 02 — Нет данных (это также класс предупреждения в соответствии со стандартом SQL)
02000
no_data
НЕТ ДАННЫХ
02001
no_additional_dynamic_result_sets_returned
ДОПОЛНИТЕЛЬНЫЕ ДИНАМИЧЕСКИЕ НАБОРЫ РЕЗУЛЬТАТОВ НЕ ВОЗВРАЩАЮТСЯ
Класс 03 — SQL-запрос еще не завершен
03000
sql_statement_not_yet_complete
SQL-ЗАПРОС ЕЩЕ НЕ ЗАВЕРШЕН
Класс 08 — Исключение подключения
08000
connection_exception
ИСКЛЮЧЕНИЕ СОЕДИНЕНИЯ
08003
connection_does_not_exist
СОЕДИНЕНИЕ НЕ СУЩЕСТВУЕТ
08006
connection_failure
СБОЙ СОЕДИНЕНИЯ
08001
sqlclient_unable_to_establish_sqlconnection
SQLCLIENT НЕ МОЖЕТ УСТАНОВИТЬ SQL-СОЕДИНЕНИЕ
008004
sqlserver_rejected_establishment_of_sqlconnection
SQLSERVER ОТКЛОНИЛ СОЗДАНИЕ SQL-СОЕДИНЕНИЯ
08007
transaction_resolution_unknown
РАЗРЕШЕНИЕ ТРАНЗАКЦИИ НЕИЗВЕСТНО
08P01
protocol_violation
Нарушение ПРОТОКОЛА
Класс 09 — Спровоцированное исключение действия
09000
triggered_action_exception
ИСКЛЮЧЕНИЕ СРАБОТАВШЕГО ДЕЙСТВИЯ
Класс 0A — Функция не поддерживается
0A000
feature_not_supported
ФАТУРА НЕ ПОДДЕРЖИВАЕТСЯ Класс 0B — Неправильная инициация транзакции
0B000
invalid_transaction_initiation
НЕКОРРЕКТНОЕ ИНИЦИИРОВАНИЕ ТРАНЗАКЦИИ
Класс 0F — Исключение локатора
0F000
locator_exception
ИСКЛЮЧЕНИЕ ЛОКАТОРА
0F001
invalid_locator_specification
НЕДЕЙСТВИТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЛОКАТОРА
Класс 0L — Неверный грантодатель
0L000
invalid_grantor
НЕДЕЙСТВИТЕЛЬНЫЙ ПРАВОДАТЕЛЬ
0LP01
invalid_grant_operation
НЕДОПУСТИМАЯ ОПЕРАЦИЯ ГРАНТА
Класс 0P — Неверная спецификация роли
0P000
invalid_role_specification
НЕДОПУСТИМАЯ СПЕЦИФИКАЦИЯ РОЛИ
Класс 21 — Нарушение кардинальности
21000
cardinality_violation
НАРУШЕНИЕ КАРДИНАЛЬНОСТИ
Класс 22 — Исключение данных
22000
data_exception
ИСКЛЮЧЕНИЕ ДАННЫХ
2202E
array_subscript_error
ОШИБКА ПОДСКРИПТА МАССИВА
22021
character_not_in_repertoire
СИМВОЛ ОТСУТСТВУЕТ В РЕПЕРТУАРЕ
22008
datetime_field_overflow
ПЕРЕПОЛНЕНИЕ ПОЛЯ DATETIME
22012
division_by_zero
ДЕЛЕНИЕ НА НОЛЬ
22005
error_in_assignment
ОШИБКА В ПРИСВОЕНИИ
2200B
escape_character_conflict
КОНФЛИКТ УПРАВЛЯЮЩИХ СИМВОЛОВ
22022
indicator_overflow
ПЕРЕПОЛНЕНИЕ ИНДИКАТОРА
22015
interval_field_overflow
ПЕРЕПОЛНЕНИЕ ПОЛЯ ИНТЕРВАЛА
2201E
invalid_argument_for_logarithm
НЕДОПУСТИМЫЙ АРГУМЕНТ ДЛЯ ЛОГАРИФМА
2201F
invalid_argument_for_power_function
НЕДОПУСТИМЫЙ АРГУМЕНТ ДЛЯ ФУНКЦИИ ПИТАНИЯ
2201G
invalid_argument_for_width_bucket_function
НЕДОПУСТИМЫЙ АРГУМЕНТ ДЛЯ ФУНКЦИИ ШИРИНЫ ВЕДРА
22018
invalid_character_value_for_cast
НЕДОПУСТИМОЕ ЗНАЧЕНИЕ СИМВОЛА ДЛЯ БРОСКА
22007
invalid_datetime_format
НЕВЕРНЫЙ ФОРМАТ ВРЕМЕНИ ДАТЫ
22019
invalid_escape_character
НЕДОПУСТИМЫЙ УПРАВЛЯЮЩИЙ СИМВОЛ
2200D
invalid_escape_octet
НЕДОПУСТИМЫЙ УПРАВЛЯЮЩИЙ ОКТЕТ
22025
invalid_escape_sequence
НЕВЕРНАЯ ПОСЛЕДОВАТЕЛЬНОСТЬ СИМВОЛОВ
22P06
nonstandard_use_of_escape_character
НЕСТАНДАРТНОЕ ИСПОЛЬЗОВАНИЕ УПРАВЛЯЮЩЕГО СИМВОЛА
22010
invalid_indicator_parameter_value
НЕДОПУСТИМОЕ ЗНАЧЕНИЕ ПАРАМЕТРА ИНДИКАТОРА
22020
invalid_limit_value
НЕДОПУСТИМОЕ ПРЕДЕЛЬНОЕ ЗНАЧЕНИЕ
22023
invalid_parameter_value
НЕДОПУСТИМОЕ ЗНАЧЕНИЕ ПАРАМЕТРА
2201B
invalid_regular_expression
НЕВЕРНОЕ РЕГУЛЯРНОЕ ВЫРАЖЕНИЕ
22009
invalid_time_zone_displacement_value
НЕДОПУСТИМОЕ ЗНАЧЕНИЕ СМЕЩЕНИЯ ЧАСОВОГО ПОЯСА
2200C
invalid_use_of_escape_character
НЕКОРРЕКТНОЕ ИСПОЛЬЗОВАНИЕ УПРАВЛЯЮЩЕГО СИМВОЛА
2200G
most_specific_type_mismatch
НАИБОЛЕЕ СПЕЦИФИЧЕСКОЕ НЕСООТВЕТСТВИЕ ТИПОВ
22004
null_value_not_allowed
НУЛЕВОЕ ЗНАЧЕНИЕ НЕДОПУСТИМО
22002
null_value_no_indicator_parameter
НУЛЕВОЕ ЗНАЧЕНИЕ НЕТ ПАРАМЕТРА ИНДИКАТОРА
22003
numeric_value_out_of_range
ЧИСЛОВОЕ ЗНАЧЕНИЕ ВНЕ ДИАПАЗОНА
22026
string_data_length_mismatch
НЕСООТВЕТСТВИЕ ДЛИНЫ СТРОКОВЫХ ДАННЫХ
22001
string_data_right_truncation
УСЕЧЕНИЕ СТРОКОВЫХ ДАННЫХ СПРАВА
22011
substring_error
ОШИБКА ПОДСТРОКИ
22027
trim_error
ОШИБКА ТРИМ
22024
unterminated_c_string
НЕЗАВЕРШЕННАЯ СТРОКА C
2200F
zero_length_character_string
СТРОКА СИМВОЛОВ НУЛЕВОЙ ДЛИНЫ
22P01
floating_point_exception
ИСКЛЮЧЕНИЕ ПЛАВАЮЩЕЙ ТОЧКИ
22P02
invalid_text_representation
НЕКОРРЕКТНОЕ ПРЕДСТАВЛЕНИЕ ТЕКСТА
22P03
invalid_binary_representation
НЕКОРРЕКТНОЕ ДВОИЧНОЕ ПРЕДСТАВЛЕНИЕ
22P04
bad_copy_file_format
НЕПРАВИЛЬНЫЙ ФОРМАТ ФАЙЛА КОПИИ
22P05
untranslatable_character
НЕПЕРЕВОДИМЫЙ СИМВОЛ
Класс 23 — Нарушение ограничений целостности
23000
integrity_constraint_violation
НАРУШЕНИЕ ОГРАНИЧЕНИЯ ЦЕЛОСТНОСТИ
23001
restrict_violation
НАРУШЕНИЕ ОГРАНИЧЕНИЙ
23502
not_null_violation
НАРУШЕНИЕ НЕ НУЛЯ
23503
foreign_key_violation
НАРУШЕНИЕ ВНЕШНЕГО КЛЮЧА
23505
unique_violation
УНИКАЛЬНОЕ НАРУШЕНИЕ
23514
check_violation
НАРУШЕНИЕ ПРОВЕРКИ
Класс 24 — Неверное состояние курсора
24000
invalid_cursor_state
НЕДОПУСТИМОЕ СОСТОЯНИЕ КУРСОРА
Класс 25 — Неверное состояние транзакции
25000
invalid_transaction_state
НЕДЕЙСТВИТЕЛЬНОЕ СОСТОЯНИЕ ТРАНЗАКЦИИ
25001
active_sql_transaction
АКТИВНАЯ SQL ТРАНЗАКЦИЯ
25002
branch_transaction_already_active
ТРАНЗАКЦИЯ ОТДЕЛЕНИЯ УЖЕ АКТИВНА
25008
held_cursor_requires_same_isolation_level
УДЕРЖИВАЕМЫЙ КУРСОР ТРЕБУЕТ ОДИНАКОВОГО УРОВНЯ ИЗОЛЯЦИИ
25003
inappropriate_access_mode_for_branch_transaction
НЕСООТВЕТСТВУЮЩИЙ РЕЖИМ ДОСТУПА ДЛЯ ТРАНЗАКЦИИ ВЕТВЛЕНИЯ
25004
inappropriate_isolation_level_for_branch_transaction
НЕСООТВЕТСТВУЮЩИЙ УРОВЕНЬ ИЗОЛЯЦИИ ДЛЯ ТРАНЗАКЦИИ ФИЛИАЛА
25005
no_active_sql_transaction_for_branch_transaction
НЕТ АКТИВНОЙ SQL-ТРАНЗАКЦИИ ДЛЯ ТРАНЗАКЦИИ ФИЛИАЛА
25006
read_only_sql_transaction
SQL-ТРАНЗАКЦИЯ ТОЛЬКО ДЛЯ ЧТЕНИЯ
25007
schema_and_data_statement_mixing_not_supported
СМЕШИВАНИЕ СХЕМЫ И ОПЕРАТОРА ДАННЫХ НЕ ПОДДЕРЖИВАЕТСЯ
25P01
no_active_sql_transaction
НЕТ АКТИВНОЙ SQL ТРАНЗАКЦИИ
25P02
in_failed_sql_transaction
В НЕУДАЧНОЙ ТРАНЗАКЦИИ SQL
Класс 26 — Неверное имя SQL-запроса
26000
invalid_sql_statement_name
НЕДОПУСТИМОЕ ИМЯ SQL-ОПЕРАТОРА
Класс 27 — Нарушение триггерного изменения данных
27000
triggered_data_change_violation
НАРУШЕНИЕ ПРАВИЛ ИЗМЕНЕНИЯ ДАННЫХ
Класс 28 — Неверная спецификация авторизации
28000
invalid_authorization_specification
НЕДОПУСТИМАЯ СПЕЦИФИКАЦИЯ АВТОРИЗАЦИИ
Класс 2B — Зависимые дескрипторы привилегий все еще существуют
2B000
dependent_privilege_descriptors_still_exist
ЗАВИСИМЫЕ ДЕСКРИПТОРЫ ПРИВИЛЕГИЙ ВСЕ ЕЩЕ СУЩЕСТВУЮТ
2BP01
dependent_objects_still_exist
ЗАВИСИМЫЕ ОБЪЕКТЫ ВСЕ ЕЩЕ СУЩЕСТВУЮТ
Класс 2D — Некорректное завершение транзакции
2D000
invalid_transaction_termination
НЕКОРРЕКТНОЕ ЗАВЕРШЕНИЕ ТРАНЗАКЦИИ
Класс 2F — Исключение SQL-маршрута
2F000
sql_routine_exception
ИСКЛЮЧЕНИЕ SQL-ПРОЦЕДУРЫ
2F005
function_executed_no_return_statement
ФУНКЦИЯ ВЫПОЛНЕНА НЕТ ЗАЯВЛЕНИЯ О ВОЗВРАТЕ
2F002
modifying_sql_data_not_permitted
МОДИФИКАЦИЯ ДАННЫХ SQL ЗАПРЕЩЕНА
2F003
prohibited_sql_statement_attempted
ПОПЫТКА ЗАПРЕЩЕННОГО SQL-ОПЕРАТОРА
2F004
reading_sql_data_not_permitted
ЧТЕНИЕ SQL-ДАННЫХ ЗАПРЕЩЕНО
Класс 34 — Неверное имя курсора
34000
invalid_cursor_name
НЕДОПУСТИМОЕ ИМЯ КУРСОРА
Класс 38 — Исключение внешней программы
38000
external_routine_exception
ИСКЛЮЧЕНИЕ ВНЕШНЕЙ ПРОЦЕДУРЫ
38001
containing_sql_not_permitted
СОДЕРЖАНИЕ SQL НЕ РАЗРЕШЕНО
38002
modifying_sql_data_not_permitted
МОДИФИКАЦИЯ ДАННЫХ SQL НЕ РАЗРЕШЕНА
38003
prohibited_sql_statement_attempted
ПРЕДПРИНЯТА ПОПЫТКА ВЫПОЛНЕНИЯ ЗАПРЕЩЕННОГО SQL-ЗАПРОСА
38004
reading_sql_data_not_permitted
ЧТЕНИЕ SQL-ДАННЫХ НЕ РАЗРЕШЕНО
Класс 39 — Исключение при вызове внешнего маршрута
39000
external_routine_invocation_exception
ИСКЛЮЧЕНИЕ ВЫЗОВА ВНЕШНЕЙ ПРОЦЕДУРЫ
39001
invalid_sqlstate_returned
ВОЗВРАЩЕНО НЕВЕРНОЕ СОСТОЯНИЕ SQLSTATE
39004
null_value_not_allowed
НУЛЕВОЕ ЗНАЧЕНИЕ НЕДОПУСТИМО
39P01
trigger_protocol_violated
НАРУШЕН ПРОТОКОЛ ТРИГГЕРА
39P02
srf_protocol_violated
НАРУШЕН ПРОТОКОЛ SRF
Класс 3B — Исключение точки сохранения
3B000
savepoint_exception
ИСКЛЮЧЕНИЕ ТОЧКИ СОХРАНЕНИЯ
3B001
invalid_savepoint_specification
НЕВЕРНАЯ СПЕЦИФИКАЦИЯ ТОЧКИ СОХРАНЕНИЯ
Класс 3D — Неверное имя каталога
3D000
invalid_catalog_name
НЕДОПУСТИМОЕ ИМЯ КАТАЛОГА
Класс 3F — Неверное имя схемы
3F000
invalid_schema_name
НЕКОРРЕКТНОЕ ИМЯ СХЕМЫ
Класс 40 — Откат транзакции
40000
transaction_rollback
ОТКАТ ТРАНЗАКЦИИ
40002
transaction_integrity_constraint_violation
НАРУШЕНИЕ ОГРАНИЧЕНИЙ ЦЕЛОСТНОСТИ ТРАНЗАКЦИИ
40001
serialization_failure
СБОЙ СЕРИАЛИЗАЦИИ
40003
statement_completion_unknown
ЗАВЕРШЕНИЕ ОПЕРАЦИИ НЕИЗВЕСТНО
40P01
deadlock_detected
ОБНАРУЖЕН ТУПИК
Класс 42 — Ошибка синтаксиса или нарушение правила доступа
42000
syntax_error_or_access_rule_violation
СИНТАКСИЧЕСКАЯ ОШИБКА ИЛИ НАРУШЕНИЕ ПРАВИЛА ДОСТУПА
42601
syntax_error
ОШИБКА СИНТАКСИСА
42501
insufficient_privilege
НЕДОСТАТОЧНАЯ ПРИВИЛЕГИЯ
42846
cannot_coerce
НЕ МОЖЕТ СОХРАНИТЬСЯ
42803
grouping_error
ОШИБКА ГРУППИРОВКИ
42830
invalid_foreign_key
НЕДОПУСТИМЫЙ ВНЕШНИЙ КЛЮЧ
42602
invalid_name
НЕПРАВИЛЬНОЕ ИМЯ
42622
name_too_long
СЛИШКОМ ДЛИННОЕ ИМЯ
42939
reserved_name
ЗАРЕГИСТРИРОВАННОЕ ИМЯ
42804
datatype_mismatch
НЕСООТВЕТСТВИЕ ТИПОВ ДАННЫХ
42P18
indeterminate_datatype
НЕОПРЕДЕЛЕННЫЙ ТИП ДАННЫХ
42809
wrong_object_type
НЕПРАВИЛЬНЫЙ ТИП ОБЪЕКТА
42703
undefined_column
НЕОПРЕДЕЛЁННЫЙ СТОЛБЕЦ
42883
undefined_function
НЕОПРЕДЕЛЁННАЯ ФУНКЦИЯ
42P01
undefined_table
НЕОПРЕДЕЛЁННАЯ ТАБЛИЦА
42P02
undefined_parameter
НЕОПРЕДЕЛЁННЫЙ ПАРАМЕТР
42704
undefined_object
НЕОПРЕДЕЛЕННЫЙ ОБЪЕКТ
42701
duplicate_column
ДУБЛИРУЮЩИЙ СТОЛБЕЦ
42P03
duplicate_cursor
ДУБЛИРУЮЩИЙ КУРСОР
42P04
duplicate_database
ДУБЛИРОВАНИЕ БАЗЫ ДАННЫХ
42723
duplicate_function
ДУБЛИРУЮЩАЯ ФУНКЦИЯ
42P05
duplicate_prepared_statement
ДУБЛИРОВАНИЕ ПОДГОТОВЛЕННОГО ОПЕРАТОРА
42P06
duplicate_schema
ДУБЛИРОВАНИЕ СХЕМЫ
42P07
duplicate_table
ДУБЛИРУЮЩАЯ ТАБЛИЦА
42712
duplicate_alias
ДУБЛИКАТ ПСЕВДОНИМА
42710
duplicate_object
ДУБЛИРУЮЩИЙ ОБЪЕКТ
42702
ambiguous_column
НЕОДНОЗНАЧНЫЙ СТОЛБЕЦ
42725
ambiguous_function
НЕОДНОЗНАЧНАЯ ФУНКЦИЯ
42P08
ambiguous_parameter
НЕОДНОЗНАЧНЫЙ ПАРАМЕТР
42P09
ambiguous_alias
НЕОДНОЗНАЧНЫЙ ПСЕВДОНИМ
42P10
invalid_column_reference
НЕДОПУСТИМАЯ ССЫЛКА НА СТОЛБЕЦ
42611
invalid_column_definition
НЕКОРРЕКТНОЕ ОПРЕДЕЛЕНИЕ СТОЛБЦА
42P11
invalid_cursor_definition
НЕКОРРЕКТНОЕ ОПРЕДЕЛЕНИЕ КУРСОРА
42P12
invalid_database_definition
НЕДОПУСТИМОЕ ОПРЕДЕЛЕНИЕ БАЗЫ ДАННЫХ
42P13
invalid_function_definition
НЕВЕРНОЕ ОПРЕДЕЛЕНИЕ ФУНКЦИИ
42P14
invalid_prepared_statement_definition
НЕДОПУСТИМОЕ ОПРЕДЕЛЕНИЕ ПОДГОТОВЛЕННОГО ОПЕРАТОРА
42P15
invalid_schema_definition
НЕВЕРНОЕ ОПРЕДЕЛЕНИЕ СХЕМЫ
42P16
invalid_table_definition
НЕВЕРНОЕ ОПРЕДЕЛЕНИЕ ТАБЛИЦЫ
42P17
invalid_object_definition
НЕВЕРНОЕ ОПРЕДЕЛЕНИЕ ОБЪЕКТА
Класс 44 — Нарушение проверки
44000
with_check_option_violation
НАРУШЕНИЕ ОПЦИИ ПРОВЕРКИ
Класс 53 — Недостаточно ресурсов
53000
insufficient_resources
НЕДОСТАТОЧНОЕ КОЛИЧЕСТВО РЕСУРСОВ
53100
disk_full
ДИСК ПЕРЕПОЛНЕН
53200
out_of_memory
МАЛО ПАМЯТИ
53300
too_many_connections
СЛИШКОМ МНОГО СОЕДИНЕНИЙ
Класс 54 — Превышен лимит программы
54000
program_limit_exceeded
ПРЕВЫШЕН ЛИМИТ ПРОГРАММЫ
54001
statement_too_complex
СЛИШКОМ СЛОЖНОЕ УТВЕРЖДЕНИЕ
54011
too_many_columns
СЛИШКОМ МНОГО СТОЛБЦОВ
54023
too_many_arguments
СЛИШКОМ МНОГО АРГУМЕНТОВ
Класс 55 — Объект не находится в состоянии предпосылки
55000
object_not_in_prerequisite_state
ОБЪЕКТ НЕ НАХОДИТСЯ В СОСТОЯНИИ ПРЕДПОСЫЛКИ
55006
object_in_use
ОБЪЕКТ В ИСПОЛЬЗОВАНИИ
55P02
cant_change_runtime_param
НЕВОЗМОЖНО ИЗМЕНИТЬ ПАРАМЕТР ВРЕМЕНИ ВЫПОЛНЕНИЯ
55P03
lock_not_available
БЛОКИРОВКА НЕДОСТУПНА
Класс 57 — Вмешательство оператора
57000
operator_intervention
ВМЕШАТЕЛЬСТВО ОПЕРАТОРА
57014
query_canceled
ЗАПРОС ОТМЕНЕН
57P01
admin_shutdown
ОТКЛЮЧЕНИЕ АДМИНИСТРАТОРА
57P02
crash_shutdown
АВАРИЙНОЕ ОТКЛЮЧЕНИЕ
57P03
cannot_connect_now
НЕВОЗМОЖНО ПОДКЛЮЧИТЬСЯ
Класс 58 — Системная ошибка (ошибки, внешние по отношению к самому PostgreSQL)
58030
io_error
ОШИБКА ВВОДА-ВЫВОДА
58P01
undefined_file
НЕОПРЕДЕЛЕННЫЙ ФАЙЛ
58P02
duplicate_file
ДУБЛИКАТ ФАЙЛА
Класс F0 — Ошибка файла конфигурации
F0000
config_file_error
ОШИБКА ФАЙЛА КОНФИГУРАЦИИ
F0001
lock_file_exists
СУЩЕСТВУЕТ ФАЙЛ БЛОКИРОВКИ
Класс P0 — Ошибка PL/pgSQL
P0000
plpgsql_error
PLPGSQL ERROR
P0001
raise_exception
ПОДНЯТЬ ИСКЛЮЧЕНИЕ
P0002
no_data_found
НЕ НАЙДЕНЫ ДАННЫЕ
P0003
too_many_rows
СЛИШКОМ МНОГО СТРОК
Класс XX — Внутренняя ошибка
XX000
internal_error
ВНУТРЕННЯЯ ОШИБКА
XX001
data_corrupted
ДАННЫЕ ИСПОРЧЕНЫ
XX002
index_corrupted
ПОВРЕЖДЁННЫЙ ИНДЕКС