hex values

Started by Oberpriller, Wade D.about 24 years ago7 messagesgeneral
Jump to latest
#1Oberpriller, Wade D.
oberpwd@nsc-msg01.network.com

Does Postgres support hex values?

Can I do something like:

VAL := 0xFFFF;

And is it possible to output the value in a hex-string? So VAL would display
as 0xFFFF instead of 65535?

Wade Oberpriller http://www.storagetek.com
Software Development Phone: (763) 424-1538
StorageTek: MRDC (800) 328-9108 ext. 1538
wade_oberpriller@storagetek.com Fax: (763) 391-1095

#2Heiko Klein
Heiko.Klein@met.no
In reply to: Oberpriller, Wade D. (#1)
Re: hex values

Hi,

as far as I've found out, it doesn't.
Retrieving int data as hex I solved by this plperl function:

CREATE FUNCTION int2hex(integer) RETURNS char(10)
AS '$tmp = sprintf "%X", $_[0];
return ("0x" . "0"x(4-length($tmp)) . $tmp);'
LANGUAGE 'plperl';

This will give you allways 4 ciphers behind 0x. I didn't need it for
reading data, but at least, it should work about the same, i.e. if you have
several kinds of numbers, some dec, some hex, some oct, I would do
something like:

CREATE FUNCITON mynumber2int(char(10)) RETURNS integer
AS 'return int($_[0]);'
LANGUAGE 'plperl';

which simply uses perls internal conversion-mechanism.

I would also like postgres to include this behavior by default, at least
for the reading. But I haven't found out how.

Heiko

Oberpriller, Wade D. writes:

Show quoted text

Does Postgres support hex values?

Can I do something like:

VAL := 0xFFFF;

And is it possible to output the value in a hex-string? So VAL would display
as 0xFFFF instead of 65535?

Wade Oberpriller http://www.storagetek.com
Software Development Phone: (763) 424-1538
StorageTek: MRDC (800) 328-9108 ext. 1538
wade_oberpriller@storagetek.com Fax: (763) 391-1095

---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

http://archives.postgresql.org

#3Jean-Luc Lachance
jllachan@nsd.ca
In reply to: Oberpriller, Wade D. (#1)
Problem with factorial operator

Hi all,

The PG Documentation states:

tgl=> select cast(text '44' as int8) ! as "factorial";
factorial
---------------------
2673996885588443136
(1 row)

If you try it, you will get the same result, but it is the wrong answer.
Factorial work up to 20. After that one gets negative results.

JLL

#4Tom Lane
tgl@sss.pgh.pa.us
In reply to: Jean-Luc Lachance (#3)
Re: Problem with factorial operator

Jean-Luc Lachance <jllachan@nsd.ca> writes:

If you try it, you will get the same result, but it is the wrong answer.
Factorial work up to 20. After that one gets negative results.

There's a TODO item to replace the existing integer-based factorial ops
with a NUMERIC-based one, which would work for output values up to
whatever the NUMERIC precision limit is (10^1000, I think). Want to
work on that?

regards, tom lane

#5Bruce Momjian
bruce@momjian.us
In reply to: Jean-Luc Lachance (#3)
Re: Problem with factorial operator

Jean-Luc Lachance wrote:

Hi all,

The PG Documentation states:

tgl=> select cast(text '44' as int8) ! as "factorial";
factorial
---------------------
2673996885588443136
(1 row)

If you try it, you will get the same result, but it is the wrong answer.
Factorial work up to 20. After that one gets negative results.

I changed the docs to do a 20!.

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

Attachments:

/bjm/difftext/plainDownload+12-12
#6Tom Lane
tgl@sss.pgh.pa.us
In reply to: Bruce Momjian (#5)
Re: Problem with factorial operator

Bruce Momjian <pgman@candle.pha.pa.us> writes:

Factorial work up to 20. After that one gets negative results.

I changed the docs to do a 20!.

Don't we have a TODO item to replace the existing factorial functions
with a NUMERIC implementation?

regards, tom lane

#7Bruce Momjian
bruce@momjian.us
In reply to: Tom Lane (#6)
Re: Problem with factorial operator

Tom Lane wrote:

Bruce Momjian <pgman@candle.pha.pa.us> writes:

Factorial work up to 20. After that one gets negative results.

I changed the docs to do a 20!.

Don't we have a TODO item to replace the existing factorial functions
with a NUMERIC implementation?

We do, but until then, we should document a factorial that actually
returns a value in the int8 range. ;-)

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026