Search Postgresql Archives

Explanation of tree-generating query

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
  )


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux