I'm getting some odd results when running two generate_series calls in a SELECT. When the two calls return the same number of rows you get that many rows out:

# SELECT generate_series(1,3), generate_series(1,3);
 generate_series | generate_series
-----------------+-----------------
               1 |               1
               2 |               2
               3 |               3
(3 rows)

When the row counts differ you get the least common multiple number of rows.

# SELECT generate_series(1,4), generate_series(1,2);
 generate_series | generate_series
-----------------+-----------------
               1 |               1
               2 |               2
               3 |               1
               4 |               2
(4 rows)

I was personally expecting a cross join between them that would be equivalent to

# SELECT * FROM generate_series(1,4) a, generate_series(1,2) b;
 a | b
---+---
 1 | 1
 1 | 2
 2 | 1
 2 | 2
 3 | 1
 3 | 2
 4 | 1
 4 | 2
(8 rows)

Tested on 8.1.3 and CVS HEAD.

Kris Jurka

---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster

Reply via email to