Re: Legacy app not working with newer PG, is there a quick fix?
От | Sameer Kumar |
---|---|
Тема | Re: Legacy app not working with newer PG, is there a quick fix? |
Дата | |
Msg-id | CADp-Sm6LoNQTFe1RMFLS4atErPbW3j9LPHfuoLN2Sndy-n-=vA@mail.gmail.com обсуждение исходный текст |
Ответ на | Legacy app not working with newer PG, is there a quick fix? (Lars Gustafsson <gumse@me.com>) |
Список | pgsql-novice |
On Fri, Feb 8, 2019, 11:40 PM Lars Gustafsson <gumse@me.com> wrote:
I have a legacy client java application that I try to run against a new Postgres server.
All data migrates as expected. Everything seems to work ok, except for one thing.
ERROR: function to_date(timestamp without time zone, unknown) does not exist at character 9
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
The application was written with and works with PG 8.2.3
I understand that from PG 8.3 explicit typecasting is necessary, like:
to_date(cast(createddate as TEXT),'YYYY-MM-DD’)
You could write a function say my_schema.to_date which essentially calls and returns output of pg_catalog.to_date(cast($1 as TEXT),'YYYY-MM-DD’)
In your config change the search path to give priority to the overridding function :
search_path=my_schema,pg_catalog
But remember that it is a bad hack and any expression index you have might not give you a benefit or might need to be rebuilt after these changes.
But I do not have access to the source code. Is there a way to go around this, by creating a macro & function to provide the type cast on the server side.
Without having to change anything in the client application?
Yes, as said above. But there would be a cost for it on performance side.
/Lars
Sameer Kumar | Senior Solution Architect
ASHNIK PTE. LTD.
36 Robinson Road, #14-04 City House, Singapore 068877
T: +65 6438 3504 | www.ashnik.com
Skype: sameer.ashnik | M: +65 8110 0350
В списке pgsql-novice по дате отправления: