Re: stored procedure - Mailing list pgsql-general

From Peter Choe
Subject Re: stored procedure
Date
Msg-id 3E89F164.6040904@mindspring.com
Whole thread Raw
In response to stored procedure  (Peter Choe <choepete@mindspring.com>)
Responses Re: stored procedure  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-general
i tested the random thing and it seems to do something strange.  i have
the following table set up:
| idx  |  c  |
|-----|--- |
|  0   |  o  |
|   1  |  a  |
|   2  |  b  |
|   3 |   c  |
----------

i do the following:
select c from charkey where idx=((4 * random())::int)%4;

sometimes i get one character back (which is good), but other times, i
get two characters or none.

by the way, i am using postgres 7.2 on freebsd 4.8.

Peter Choe

Dennis Gearon wrote:

> then do ( ( 6 * random() )::int ) % 6
>
> Bruno Wolff III wrote:
>
>> On Tue, Apr 01, 2003 at 11:26:47 -0500,
>>   Peter Choe <choepete@mindspring.com> wrote:
>>
>>> thanks.  i just tried it out and it seems that it would generate a
>>> random number between 0 and 1.  is that a valid assumption?  if that
>>> is the case, how can i cast it to an int value?  i assume that there
>>> is a cast function somewhere, but i can't tell by the names of the
>>> pronames.
>>
>>
>>
>> Normally you multiply by the range you want and then you can make a
>> cast.
>> Note however, that multiplication may cause a value to round up so that
>> (6*random())::int might on very rare occasions return 6 instead of the
>> expected 0, 1, 2, 3, 4 or 5. (At least on some systems.)
>>
>>
>> ---------------------------(end of broadcast)---------------------------
>> TIP 2: you can get off all lists at once with the unregister command
>>     (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
>>
>
>


pgsql-general by date:

Previous
From: Moritz Sinn
Date:
Subject: mariposa
Next
From: Tom Lane
Date:
Subject: Re: mariposa