title: postgres array overlap operator (&&) in case of empty array
body: <p>I am running the below query. the (&amp;&amp;) operator is used to filter the result set with any overlaping array elements and is working fine if i have a non empty array but in case of an empty array the result set is empty which can be reasoned out but can an empty array be treated as a universal set in this case maybe something like <code>array &amp;&amp; ({*}::int[])</code> I wanted to know if there is a workaround for something like this.</p>
  
  <pre><code>select  pm.id,
          sum(c.density) as score
  from    
      metadata pm,
      unnest(pm.dimen_one_id::int[], pm.dimen_one_density::float[]) as c(id, density)
  where   
      c.id = any('{1}'::int[])
  group by
      pm.pin_id,
      pm.dimen_one_id,
      pm.dimen_two_id,
      pm.dimen_three_id
  having 
      pm.dimen_two_id &amp;&amp; '{36,37,38}'::int[] and 
      pm.dimen_three_id &amp;&amp; '{23}'::int[]  
  order by 
      score desc
  limit 
      10
  offset  
      0
  </code></pre>