Explanation of tree-generating query - Mailing list pgsql-general

From Guyren Howe
Subject Explanation of tree-generating query
Date
Msg-id 4149AB44-016F-40B3-A3E1-F61AD150A406@gmail.com
Whole thread Raw
Responses Re: Explanation of tree-generating query
Re: Explanation of tree-generating query
List pgsql-general
I feel like I'm pretty decent with Postgres. But I saw the following query on the excellent Periscope blog. I've no idea how it works, and the various symbols involved are difficult to look up either with google or in the documentation. I believe the @ sign is probably ABS, but the <= clause in the consequent of a when-then is something I haven't seen before. I'm comfortable with the rest. Can someone explain how this works?

with a as (    select *   from     generate_series(0, 3, 1) ) , b as (   select *   from     generate_series(-3, 3, 1) ) , tree as (   select a.generate_series as t     , b.generate_series as branch   from a, b   where     case when mod(a.generate_series, 2) = 1       then @ b.generate_series <= a.generate_series         and mod(@ b.generate_series, 2) = 1       else @ b.generate_series <= a.generate_series         and mod(@ b.generate_series, 2) = 0     end )

pgsql-general by date:

Previous
From: Adrian Klaver
Date:
Subject: Re: handling time series data
Next
From: "Dickson S. Guedes"
Date:
Subject: Re: MongoDB FDW Problem.