I see you're point, but nobody is going to be interested in the first 2 billion rows of a table without using a cursor and having some other process do the math in the background.
You have the same problem:
test=# begin; BEGIN test=# declare c cursor for select * from a; DECLARE CURSOR test=# move 2147483647 in c; MOVE 0 test=# move 2147483648 in c; ERROR: syntax error at or near "2147483648" at character 6 test=# test=# fetch absolute 2147483648 in c; ERROR: syntax error at or near "2147483648" at character 16 test=# fetch relative 2147483648 in c; ERROR: syntax error at or near "2147483648" at character 16
That said, perhaps the TODO for changing LIMIT / OFFSET to be expression based should also mention bumping them to int8.
It is fairly hypothetical, but there are some people starting to put some rather large databases in Postgres these days. Shouldn't it at least be an unsigned integer?
Chris
---------------------------(end of broadcast)--------------------------- TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]