Обсуждение: ascii to character conversion in postgres
Postgres has an 'ascii' function that converts characters to ascii, values, but it appears to be a one way street. I can't find a way to convert ascii values to characters, like 'chr' in Oracle. Anyone know how to do this? -Alex __________________________________________________ Do You Yahoo!? Yahoo! Mail - Free email you can access from anywhere! http://mail.yahoo.com/
On Sat, 16 Sep 2000, Alex Sokoloff wrote:
> Postgres has an 'ascii' function that converts
> characters to ascii, values, but it appears to be a
> one way street. I can't find a way to convert ascii
> values to characters, like 'chr' in Oracle. Anyone
> know how to do this?
Interesting for me, I try explore (or write) it next week :-)
By the way, the Oracle has more interesting fuction that can
season DB's users life and I mean that for porting from rich
Oracle to great PostgreSQL we need it....
Karel
>> Postgres has an 'ascii' function that converts
>> characters to ascii, values, but it appears to be a
>> one way street. I can't find a way to convert ascii
>> values to characters, like 'chr' in Oracle. Anyone
>> know how to do this?
ichar(). Since that's part of the "oracle_compatibility" file,
I'd assumed the function name spelling was the same as Oracle's.
Not so?
regards, tom lane
On Sun, 17 Sep 2000, Tom Lane wrote:
> >> Postgres has an 'ascii' function that converts
> >> characters to ascii, values, but it appears to be a
> >> one way street. I can't find a way to convert ascii
> >> values to characters, like 'chr' in Oracle. Anyone
> >> know how to do this?
>
> ichar(). Since that's part of the "oracle_compatibility" file,
> I'd assumed the function name spelling was the same as Oracle's.
> Not so?
Not documented (from oracle_compat.c) in PG documentation:
btrim()ascii()ichar()repeat()
and about ichar() is nothing in Oracle documentation, it's knows chr()
only...
Directly rename it, or add "alias" entry to the pg_proc?
Or ignore? :-)
Karel
Karel Zak <zakkr@zf.jcu.cz> writes:
> Not documented (from oracle_compat.c) in PG documentation:
> btrim()
> ascii()
> ichar()
> repeat()
> and about ichar() is nothing in Oracle documentation, it's knows chr()
> only...
Sounds to me like calling it ichar() was an error, then. Should be chr().
> Directly rename it, or add "alias" entry to the pg_proc?
The alias would only be useful to people who had been using it as
"ichar()" --- which is not many people, since it's undocumented ;-)
Furthermore, now that I look, it looks like ichar() was new in
contrib/odbc in 7.0 and has only recently been moved into the main
code.
I vote for just renaming it to chr(). Any objections?
regards, tom lane
On Mon, 18 Sep 2000, Tom Lane wrote:
> Karel Zak <zakkr@zf.jcu.cz> writes:
> > Not documented (from oracle_compat.c) in PG documentation:
> > btrim()
> > ascii()
> > ichar()
> > repeat()
> > and about ichar() is nothing in Oracle documentation, it's knows chr()
> > only...
>
> Sounds to me like calling it ichar() was an error, then. Should be chr().
>
> > Directly rename it, or add "alias" entry to the pg_proc?
>
> The alias would only be useful to people who had been using it as
> "ichar()" --- which is not many people, since it's undocumented ;-)
> Furthermore, now that I look, it looks like ichar() was new in
> contrib/odbc in 7.0 and has only recently been moved into the main
> code.
>
> I vote for just renaming it to chr(). Any objections?
first thing off the top of my head ... was there a reason why it was added
to contrib/odbc? ignoring the "oracle documentation", is it something
that is/was needed for ODBC?
Marc G. Fournier ICQ#7615664 IRC Nick: Scrappy
Systems Administrator @ hub.org
primary: scrappy@hub.org secondary: scrappy@{freebsd|postgresql}.org
The Hermit Hacker <scrappy@hub.org> writes:
>> I vote for just renaming it to chr(). Any objections?
> first thing off the top of my head ... was there a reason why it was added
> to contrib/odbc? ignoring the "oracle documentation", is it something
> that is/was needed for ODBC?
Now that I look, it seems ODBC specifies the function as "char()",
which means contrib/odbc is wrong on that score too :-(
New proposal: forget ichar(), give the function two entries chr() and
char().
regards, tom lane
On Mon, 18 Sep 2000, Tom Lane wrote: > The Hermit Hacker <scrappy@hub.org> writes: > >> I vote for just renaming it to chr(). Any objections? > > > first thing off the top of my head ... was there a reason why it was added > > to contrib/odbc? ignoring the "oracle documentation", is it something > > that is/was needed for ODBC? > > Now that I look, it seems ODBC specifies the function as "char()", > which means contrib/odbc is wrong on that score too :-( > > New proposal: forget ichar(), give the function two entries chr() and > char(). sounds good to me ... chr() == char(), I take it? is there a reason for having both vs just changing char() to chr() in the odbc stuff?
The Hermit Hacker <scrappy@hub.org> writes:
> sounds good to me ... chr() == char(), I take it? is there a reason for
> having both vs just changing char() to chr() in the odbc stuff?
We don't control the ODBC specification ...
regards, tom lane
On Mon, 18 Sep 2000, Tom Lane wrote: > The Hermit Hacker <scrappy@hub.org> writes: > > sounds good to me ... chr() == char(), I take it? is there a reason for > > having both vs just changing char() to chr() in the odbc stuff? > > We don't control the ODBC specification ... okay, granted, but, other then ODBC, do we need the char() type? could it not be an internal translation in the ODBC driver itself?
Tom Lane writes: > ichar(). Since that's part of the "oracle_compatibility" file, > I'd assumed the function name spelling was the same as Oracle's. > Not so? ichar() is for ODBC compliance. chr() could probably be an alias to it. -- Peter Eisentraut peter_e@gmx.net http://yi.org/peter-e/
I wrote: > ichar() is for ODBC compliance. chr() could probably be an alias to it. Ignore that. Probably "char()" had some parsing or overloading problems. -- Peter Eisentraut peter_e@gmx.net http://yi.org/peter-e/
Of course, if an alias for ichar is carried forward I can write code for the current postgres that won't break with future releases. I realize that I might end up being the only person on the planet who ends up using ichar, and that may not be sufficient justification for an alias.... Best, Alex --- Tom Lane <tgl@sss.pgh.pa.us> wrote: > > New proposal: forget ichar(), give the function two > entries chr() and > char(). > > regards, tom lane __________________________________________________ Do You Yahoo!? Yahoo! Mail - Free email you can access from anywhere! http://mail.yahoo.com/
> New proposal: forget ichar(), give the function two entries chr() and
> char().
OK, I will send patch for this and send domumentation for all
oracle_compat.c routines...
I don't want make some changes to contrib/odbc, because it's out of
me... but I have a question, Why in the contrib/odbc/odbc.c are total
same function as in oracle_compat.c (like ascii(), ichar(), repeat())?
Is it anything specific for ODBC?
Karel
Alex Sokoloff <alex_sokoloff@yahoo.com> writes:
> Of course, if an alias for ichar is carried forward I
> can write code for the current postgres that won't
> break with future releases. I realize that I might end
> up being the only person on the planet who ends up
> using ichar, and that may not be sufficient
> justification for an alias....
Well, we will certainly have chr(), so why not save yourself the
trouble of converting later and make that alias today?
create function chr(int4) returns text as 'ichar'
language 'internal' with (iscachable);
ought to do it in 7.0.*.
regards, tom lane
Karel Zak <zakkr@zf.jcu.cz> writes:
> I don't want make some changes to contrib/odbc, because it's out of
> me... but I have a question, Why in the contrib/odbc/odbc.c are total
> same function as in oracle_compat.c (like ascii(), ichar(), repeat())?
contrib/odbc was a quick hack just before 7.0 release; we had already
frozen the system catalogs for 7.0, and didn't want to force another
initdb for beta testers. It's not supposed to survive into 7.1 --- most
or all of what's in there should be, or perhaps already has been, merged
into the main code.
Thomas did the work on that originally, and might remember more about
whether any of the ODBC compatibility functions ought *not* go into
the main tree.
regards, tom lane
Karel Zak writes: > I don't want make some changes to contrib/odbc, because it's out of > me... but I have a question, Why in the contrib/odbc/odbc.c are total > same function as in oracle_compat.c (like ascii(), ichar(), repeat())? The odbc.c file is for installing the set of ODBC compatibility functions into a pre-7.0 server. -- Peter Eisentraut peter_e@gmx.net http://yi.org/peter-e/