Jeffrey W. Baker wrote:
>
>yabbut, has anyone seen yet if 7.2 can use bigint in an index (on a 32-bit
>machine)?
>
I don't see why it wouldn't! gcc has supported 8-byte longs for a
(*sigh*) long, long, time now. =)
This is on my i686-class linux box, build of yesterday's CVS snapshot:
test=# create table ttab(a int, b serial8);
NOTICE: CREATE TABLE will create implicit sequence 'ttab_b_seq' for
SERIAL column 'ttab.b'
NOTICE: CREATE TABLE / UNIQUE will create implicit index 'ttab_b_key'
for table 'ttab'
CREATE
test=# CREATE INDEX ttab_b_idx ON ttab (a);
CREATE
test=# CREATE FUNCTION populate(int) RETURNS bool AS '
test'# BEGIN
test'# FOR i IN 1..$1 LOOP
test'# INSERT INTO ttab(a) VALUES((i*i)%133);
test'# END LOOP;
test'# RETURN true;
test'# END; ' language 'plpgsql';
CREATE
test=# select populate(90000);
test=# EXPLAIN SELECT * FROM ttab WHERE a = 30 LIMIT 18;
NOTICE: QUERY PLAN:
Limit (cost=0.00..17.07 rows=5 width=12)
-> Index Scan using ttab_b_idx on ttab (cost=0.00..17.07 rows=5
width=12)
EXPLAIN
test=# select * from ttab where a = 30 limit 10;
a | b
----+--------
30 | 136329
30 | 136315
30 | 136253
30 | 136239
30 | 136196
30 | 136182
30 | 136120
30 | 136106
30 | 136063
30 | 136049
(10 rows)
-dj