Re: How to implent CONVERT ( data_type [ ( length ) ] , expression ) function in postgreSQL - Mailing list pgsql-hackers

From rohtodeveloper
Subject Re: How to implent CONVERT ( data_type [ ( length ) ] , expression ) function in postgreSQL
Date
Msg-id BAY178-W181CE2A53835F8345B488EC4980@phx.gbl
Whole thread Raw
In response to Re: How to implent CONVERT ( data_type [ ( length ) ] , expression ) function in postgreSQL  (Atri Sharma <atri.jiit@gmail.com>)
Responses Re: How to implent CONVERT ( data_type [ ( length ) ] , expression ) function in postgreSQL  (Pavel Stehule <pavel.stehule@gmail.com>)
Re: How to implent CONVERT ( data_type [ ( length ) ] , expression ) function in postgreSQL  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
I  need the convert function because that Our application will be switched from SQL Server to PostgreSQL.

>For the options you suggested:

>1) Pass in datatype as string and deparse and process in the function.
>2) Are you referring to pg_convert here?

1) is yes. but I want to use the CONVERT ( data_type [ ( length ) ] , expression ) just as same as in the SQLServer, SO, that doesn't  work.
2)  I mean modifying the 'src\backend\parser\gram.y'  file.  There will be a grammer conflict with the PostgreSQL self's convert(data,src_encoding_name,dest_encoding_name) function.




Date: Sun, 2 Nov 2014 16:00:14 +05
Subject: Re: [HACKERS] How to implent CONVERT ( data_type [ ( length ) ] , expression ) function in postgreSQL
From: atri.jiit@gmail.com
To: rohtodeveloper@outlook.com
CC: pgsql-hackers@postgresql.org



On Sun, Nov 2, 2014 at 3:40 PM, rohtodeveloper <rohtodeveloper@outlook.com> wrote:

Dear


In SQLServer, there'are two functions to converte an expression of one data type to another.

1. CAST ( expression AS data_type [ ( length ) ] )
2. CONVERT ( data_type [ ( length ) ] , expression )

However, In PostgreSQL, there's only the CAST ( expression AS data_type [ ( length ) ] ) function. I have tried the following two ways to implenting the CONVERT ( data_type [ ( length ) ] , expression ) function, but both are failed.

1. CREATE FUNCTION ..... 
The function's arguments can only be expressions but not data_type . 
2. Modifying the gram.y .....
The CONVERT ( data_type [ ( length ) ] , expression ) is in grammer conflict with the PostgreSQL self's convert(data,src_encoding_name,dest_encoding_name) function. And the PostgreSQL self's convert(data,src_encoding_name,dest_encoding_name) function cannot be used.

I wonder whether there's a better way to solve this problem. 
Any help will be appreciated.
Please do not cross post to multiple lists.



Please do not cross post to various lists.

For the options you suggested:

1) Pass in datatype as string and deparse and process in the function.
2) Are you referring to pg_convert here?

IMO I do not understand why you need the convert function in the first place. You may want to refer to http://www.postgresql.org/docs/9.3/static/typeconv.html

 

pgsql-hackers by date:

Previous
From: Mikko Tiihonen
Date:
Subject: Re: Pipelining executions to postgresql server
Next
From: Andres Freund
Date:
Subject: Re: Pipelining executions to postgresql server