Ошибка субд 58p01 1с

Не подскажете в чем причина?
При попытке создания базы:
Ошибка СУБД:
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?

Afshin Moazami's user avatar

asked Nov 8, 2017 at 2:18

Bitwise's user avatar

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 Albe's user avatar

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

У меня пока не работает 8)

Могу подсказать вот что — Постгрес умеет логгировать практически всё.

Настраивается в 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. [Решено] 1С сервер базы данных не обнаружен is the server running on host and accepting tcp/ip connections on port 5432
  2. 58p01 postgresql 1c mchar control
  3. Установка Сервера 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

   VasGen

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

   VasGen

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

ПОВРЕЖДЁННЫЙ ИНДЕКС

Понравилась статья? Поделить с друзьями:
  • Ошибка субд 53200 error out of shared memory
  • Ошибка субд 53100 error could not extend file
  • Ошибка субд 42704 postgresql
  • Ошибка субд 42601
  • Ошибка субд 1cv8