PostgreSQL - создать приведение из текста к целочисленным ошибкам max_stack_depth - PullRequest
0 голосов
/ 13 декабря 2018

В PostgreSQL 10 мне нужно выполнить такую ​​команду SQL:

select id from table1 where id='859'::text

Конечно, это может вызвать ошибку, поэтому я создал такой CAST:

CREATE FUNCTION to_int(text) 
  RETURNS integer 
  STRICT IMMUTABLE LANGUAGE SQL AS 
'SELECT cast($1 as integer);';

CREATE CAST (text AS integer) WITH FUNCTION to_int(text) as Implicit;

Но после выполнения команды select id from table1 where id='859'::text PostgreSQL выдает исключение max_stack_depth.Есть идеи, как это решить?

1 Ответ

0 голосов
/ 13 декабря 2018

Ваш звонок бесконечно рекурсивен.В вашей функции приведения вы вызываете приведение.

Вы получаете ошибку, потому что этот бесконечный цикл достигает максимально возможной глубины рекурсии.

Чтение этого старого сообщения в блоге , чтобы увидетькак вы можете правильно создать такой бросок.

Лучшее, однако, не делать это и исправлять ваш код.Эти броски были удалены по причине;они создают неясности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...