D. Stimits wrote:
> table field pair. E.G., if I had in table 'one': > left right > ==== ===== > a b > a c > b d > > ...then I'd need a list of a, b, c, d, and produce a new table: > left right > ==== ===== > a b > a c > a d > b a > b c > b d > c a > c b > c d > d a > d b > d c
I don't have 7.2 to test on (and you really should upgrade to 7.3.4 if possible anyway), but why not:
create table t1(f1 text, f2 text); insert into t1 values('a','b'); insert into t1 values('a','c'); insert into t1 values('b','d ');
select a, b from (select distinct f1 as a from t1 union select distinct f2 from t1) as ss1, (select distinct f1 as b from t1 union select distinct f2 from t1) as ss2 where ss1.a != ss2.b; a | b ----+---- a | b a | c a | d b | a b | c b | d c | a c | b c | d d | a d | b d | c (12 rows)
This worked quite well, thank you! I'm still in need though of learning more about PL/PGSQL, as I have other programming to add (well, I could do this in C as a PostgreSQL C function, but I want to stick to PL/PGSQL for the moment). I'm still looking for a non-trivial, in-depth, full reference to PL/PGSQL. I've found many good introductory or tutorial type web pages, but not a full and complete reference to PL/PGSQL. The permutations were themselves the easy part, now each permutation has to do some non-trivial combinatorics on trigger whenever a change is made.
D. Stimits
---------------------------(end of broadcast)--------------------------- TIP 9: the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match