Re: question about return value when selecting next id from postgresql using nextval

2008-09-30 Thread Merrick

Thank you, I was doing this:

def encode_id(id):
...
number = id
charset = string.letters + string.digits
base = len(charset)
count = 0
while number:
digit = number % base
...

and kept getting an error, when I did this:

id = row[0]
encode_id(id)

I didn't realize that the L stood for long, anyhow this works:

id = int(row[0]
encode_id(id)





On Sep 30, 7:15 pm, Malcolm Tredinnick <[EMAIL PROTECTED]>
wrote:
> On Tue, 2008-09-30 at 15:08 -0700, Merrick wrote:
> > If I run the following query on psql:
>
> > SELECT nextval('redirect_link_id_seq');
>
> > it returns an integer, say 5
>
> > when I do the following with the django shell I get a different
> > result:
>
> > >>> def get_next_id():
> > ...     cursor = connection.cursor()
> > ...     cursor.execute("SELECT nextval('redirect_link_id_seq');")
> > ...     next_id = cursor.fetchone()
> > ...     return next_id
> > >>> row = get_next_id()
> > >>> row[0]
> > 5L
>
> > Of course I can cast to an integer
> > >>> int(row[0])
> > 5
>
> > But I was hoping someone could let me know why my return value is 5L
> > and not 5, sorry for such a noob question.
>
> Because that's what the db wrapper returns. In practice it makes
> effectively no difference. Historically, Python use to distinguish
> between longs and integers, but even in those days you could almost
> always just work with them as "numbers". Today, that's particularly
> true. Just use the value returned. Why do you need to it to have type
> "int" instead of type "long"?
>
> Regards,
> Malcolm
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~--~~~~--~~--~--~---



Re: question about return value when selecting next id from postgresql using nextval

2008-09-30 Thread Malcolm Tredinnick


On Tue, 2008-09-30 at 15:08 -0700, Merrick wrote:
> If I run the following query on psql:
> 
> SELECT nextval('redirect_link_id_seq');
> 
> it returns an integer, say 5
> 
> when I do the following with the django shell I get a different
> result:
> 
> >>> def get_next_id():
> ... cursor = connection.cursor()
> ... cursor.execute("SELECT nextval('redirect_link_id_seq');")
> ... next_id = cursor.fetchone()
> ... return next_id
> >>> row = get_next_id()
> >>> row[0]
> 5L
> 
> Of course I can cast to an integer
> >>> int(row[0])
> 5
> 
> But I was hoping someone could let me know why my return value is 5L
> and not 5, sorry for such a noob question.

Because that's what the db wrapper returns. In practice it makes
effectively no difference. Historically, Python use to distinguish
between longs and integers, but even in those days you could almost
always just work with them as "numbers". Today, that's particularly
true. Just use the value returned. Why do you need to it to have type
"int" instead of type "long"?

Regards,
Malcolm



--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~--~~~~--~~--~--~---



question about return value when selecting next id from postgresql using nextval

2008-09-30 Thread Merrick

If I run the following query on psql:

SELECT nextval('redirect_link_id_seq');

it returns an integer, say 5

when I do the following with the django shell I get a different
result:

>>> def get_next_id():
... cursor = connection.cursor()
... cursor.execute("SELECT nextval('redirect_link_id_seq');")
... next_id = cursor.fetchone()
... return next_id
>>> row = get_next_id()
>>> row[0]
5L

Of course I can cast to an integer
>>> int(row[0])
5

But I was hoping someone could let me know why my return value is 5L
and not 5, sorry for such a noob question.
I
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~--~~~~--~~--~--~---