Re: On Conflict Do nothing errors IF conflict and there is a data type length or check failure

Поиск
Список
Период
Сортировка
От Amit Langote
Тема Re: On Conflict Do nothing errors IF conflict and there is a data type length or check failure
Дата
Msg-id 56C410A9.6050907@lab.ntt.co.jp
обсуждение исходный текст
Ответ на On Conflict Do nothing errors IF conflict and there is a data type length or check failure  ("Regina Obe" <lr@pcorp.us>)
Список pgsql-hackers
Hi,

On 2016/02/17 14:34, Regina Obe wrote:
> I'm guessing this is by design but just wanted to confirm that since it
> makes this feature not as useful for us.  
> 
> It also wasn't absolutely clear to me from the documentation.
> 
> We are running PostgreSQL 9.5.1 and if we do something like:
> 
> CREATE TABLE test(field1 varchar(5) primary key, field2 varchar(3));
> 
> INSERT INTO test(field1, field2) VALUES ('test','tes');
> 
> INSERT INTO test(field1,field2) VALUES('test', 'test')
> ON CONFLICT(field1) DO NOTHING;
> 
> It triggers an error:
> 
> ERROR:  value too long for type character varying(3)
> 
> I think it does this for check constraints too.
> 
> 
> Even though the record under consideration would be thrown out anyway.

I think the error occurs long before it would/could be determined that it
won't be inserted anyway (the latter being execution time). It would be
quite out-of-place to document such behaviors under ON CONFLICT or check
constraints description, IMHO.

Thanks,
Amit





В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tatsuo Ishii
Дата:
Сообщение: Re: Figures in docs
Следующее
От: Catalin Iacob
Дата:
Сообщение: Re: proposal: PL/Pythonu - function ereport