Search Postgresql Archives

Re: Column information

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



David et al,

On Thu, May 4, 2017 at 11:27 AM, David G. Johnston
<david.g.johnston@xxxxxxxxx> wrote:
> On Thu, May 4, 2017 at 8:08 AM, Igor Korot <ikorot01@xxxxxxxxx> wrote:
>>
>> Hi, guys,
>>
>> On Thu, May 4, 2017 at 10:54 AM, Adrian Klaver
>> <adrian.klaver@xxxxxxxxxxx> wrote:
>> > On 05/04/2017 07:44 AM, Tom Lane wrote:
>> >>
>> >> Adrian Klaver <adrian.klaver@xxxxxxxxxxx> writes:
>> >>>
>> >>> Alright I see that, but why does my example show a
>> >>> numeric_precision_radix of 10?
>> >>
>> >>
>> >>> Is there some transition point where it goes from base 10 to base 2?
>> >>
>> >>
>> >> In PG, "numeric" always has radix 10, because the underlying
>> >> implementation is decimal, and all other numerical types such as int
>> >> and
>> >> float have radix 2, because the underlying implementation is binary.
>> >> Other DBMSses could perhaps do it differently.
>> >>
>> >> Hmm ... you could argue that numeric_precision_radix is telling you
>> >> something about the type's arithmetic behavior independently of what
>> >> the particular column's maximum-precision-if-any is.  That's not how
>> >> the SQL spec defines it, but that's really what it's doing.
>> >>
>> >>> Also why does the OPs query show anything when the data_type is
>> >>> integer?
>> >>
>> >>
>> >> The point is that our integers are 32-bit integers, not some other
>> >> size.
>> >> If you try it on bigint or smallint columns, you'll get other answers.
>> >
>> >
>> > Got it thanks, I was being too literal in my interpretation of numeric.
>>
>> So basically what you are all saying is that since the value "32"
>> contains 2 digits:
>> "3" and "2" the column radix will contain "2". And it is not the
>> actual representation
>> of the number 32 the radix applies to.
>>
>> Am I right?
>>
>
> No.
>
> 32 is the number of digits/positions available to represent a number.
>
> 2 is the base of the number being represented.
>
> Therefore there are 2 ^ 32 possible numbers that can be represented by this
> column.
>
> If the radix was instead 10, and the precision was still 32 - which is
> acceptable - there would instead be 10 ^ 32 possible numbers that could be
> represented.
>
> And yes, we are talking about parts of numbers here but the concept holds.
> Its too early for me to get my head around precision/scale...
>
> So one column is the base and the other is the exponent.

So if I write for example:

CREATE TABLE foo(id INTEGER PRIMARY KEY, label VARCHAR(50), price
DOUBLE(10, 2));

how can I get 50, 10 and 2 from those 5 fields?

I thought that this is what will be stored in the columns table...

Thank you.

>
> David J.


-- 
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]

  Powered by Linux