Gregory Stark wrote: > WITH RECURSIVE Z(IX, IY, CX, CY, X, Y, I) AS ( > SELECT IX, IY, X::float, Y::float, X::float, Y::float, 0 > FROM (select -2.2 + 0.031 * i, i from generate_series(0,101) > as i) as xgen(x,ix), > (select -1.5 + 0.031 * i, i from generate_series(0,101) > as i) as ygen(y,iy) > UNION ALL > SELECT IX, IY, CX, CY, X * X - Y * Y + CX AS X, Y * X * 2 + > CY, I + 1 > FROM Z > WHERE X * X + Y * Y < 16::float > AND I < 100 > ) > SELECT array_to_string(array_agg(SUBSTRING(' .,,,-----++++%%%%@@@@#### ', > LEAST(GREATEST(I,1),27), 1)),'') > FROM ( > SELECT IX, IY, MAX(I) AS I > FROM Z > GROUP BY IY, IX > ORDER BY IY, IX > ) AS ZT > GROUP BY IY > ORDER BY IY
FWIW you can halve the running time by restricting I to 27 instead of 100 in the recursive term, and obtain the same result. -- Alvaro Herrera http://www.CommandPrompt.com/ The PostgreSQL Company - Command Prompt, Inc. -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers