Проблема во втором вызове ST_LineFromText () заключается в том, что вы пытаетесь передать в него параметры, что невозможно. У вас есть:
ST_LineFromText('linestring (0 0,v1.pre 0,v1.pre v1.post,0 v1.post,0 0 )',5)
Строка содержит 'v1.pre', который не является допустимым числом и т. Д. Если вам нужно параметризовать запрос, вам нужно либо сгенерировать строку с этими значениями на месте, либо вам нужно использовать другой метод. Одно грубое, но возможное решение:
ST_LineFromText('linestring (0 0,' || v1.pre || ' 0,' || v1.pre || ' ' ||
v1.post || ',0 ' || v1.post || ',0 0 )', 5)
Это может не сработать, но иллюстрирует проблему.