blob: 9209d69e3012613902685434a8cae10a27d97ee2 [file] [log] [blame]
<div class="codehilite"><pre><span></span><code><span class="c1">-- explode</span>
<span class="k">SELECT</span><span class="w"> </span><span class="n">explode</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="w"> </span><span class="mi">20</span><span class="p">));</span>
<span class="o">+</span><span class="c1">---+</span>
<span class="o">|</span><span class="n">col</span><span class="o">|</span>
<span class="o">+</span><span class="c1">---+</span>
<span class="o">|</span><span class="w"> </span><span class="mi">10</span><span class="o">|</span>
<span class="o">|</span><span class="w"> </span><span class="mi">20</span><span class="o">|</span>
<span class="o">+</span><span class="c1">---+</span>
<span class="k">SELECT</span><span class="w"> </span><span class="n">explode</span><span class="p">(</span><span class="n">collection</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="nb">array</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="w"> </span><span class="mi">20</span><span class="p">));</span>
<span class="o">+</span><span class="c1">---+</span>
<span class="o">|</span><span class="n">col</span><span class="o">|</span>
<span class="o">+</span><span class="c1">---+</span>
<span class="o">|</span><span class="w"> </span><span class="mi">10</span><span class="o">|</span>
<span class="o">|</span><span class="w"> </span><span class="mi">20</span><span class="o">|</span>
<span class="o">+</span><span class="c1">---+</span>
<span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">explode</span><span class="p">(</span><span class="n">collection</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="nb">array</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="w"> </span><span class="mi">20</span><span class="p">));</span>
<span class="o">+</span><span class="c1">---+</span>
<span class="o">|</span><span class="n">col</span><span class="o">|</span>
<span class="o">+</span><span class="c1">---+</span>
<span class="o">|</span><span class="w"> </span><span class="mi">10</span><span class="o">|</span>
<span class="o">|</span><span class="w"> </span><span class="mi">20</span><span class="o">|</span>
<span class="o">+</span><span class="c1">---+</span>
<span class="c1">-- explode_outer</span>
<span class="k">SELECT</span><span class="w"> </span><span class="n">explode_outer</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="w"> </span><span class="mi">20</span><span class="p">));</span>
<span class="o">+</span><span class="c1">---+</span>
<span class="o">|</span><span class="n">col</span><span class="o">|</span>
<span class="o">+</span><span class="c1">---+</span>
<span class="o">|</span><span class="w"> </span><span class="mi">10</span><span class="o">|</span>
<span class="o">|</span><span class="w"> </span><span class="mi">20</span><span class="o">|</span>
<span class="o">+</span><span class="c1">---+</span>
<span class="k">SELECT</span><span class="w"> </span><span class="n">explode_outer</span><span class="p">(</span><span class="n">collection</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="nb">array</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="w"> </span><span class="mi">20</span><span class="p">));</span>
<span class="o">+</span><span class="c1">---+</span>
<span class="o">|</span><span class="n">col</span><span class="o">|</span>
<span class="o">+</span><span class="c1">---+</span>
<span class="o">|</span><span class="w"> </span><span class="mi">10</span><span class="o">|</span>
<span class="o">|</span><span class="w"> </span><span class="mi">20</span><span class="o">|</span>
<span class="o">+</span><span class="c1">---+</span>
<span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">explode_outer</span><span class="p">(</span><span class="n">collection</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="nb">array</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="w"> </span><span class="mi">20</span><span class="p">));</span>
<span class="o">+</span><span class="c1">---+</span>
<span class="o">|</span><span class="n">col</span><span class="o">|</span>
<span class="o">+</span><span class="c1">---+</span>
<span class="o">|</span><span class="w"> </span><span class="mi">10</span><span class="o">|</span>
<span class="o">|</span><span class="w"> </span><span class="mi">20</span><span class="o">|</span>
<span class="o">+</span><span class="c1">---+</span>
<span class="c1">-- inline</span>
<span class="k">SELECT</span><span class="w"> </span><span class="n">inline</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="n">struct</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;a&#39;</span><span class="p">),</span><span class="w"> </span><span class="n">struct</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;b&#39;</span><span class="p">)));</span>
<span class="o">+</span><span class="c1">----+----+</span>
<span class="o">|</span><span class="n">col1</span><span class="o">|</span><span class="n">col2</span><span class="o">|</span>
<span class="o">+</span><span class="c1">----+----+</span>
<span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="o">|</span><span class="w"> </span><span class="n">a</span><span class="o">|</span>
<span class="o">|</span><span class="w"> </span><span class="mi">2</span><span class="o">|</span><span class="w"> </span><span class="n">b</span><span class="o">|</span>
<span class="o">+</span><span class="c1">----+----+</span>
<span class="c1">-- inline_outer</span>
<span class="k">SELECT</span><span class="w"> </span><span class="n">inline_outer</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="n">struct</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;a&#39;</span><span class="p">),</span><span class="w"> </span><span class="n">struct</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="s1">&#39;b&#39;</span><span class="p">)));</span>
<span class="o">+</span><span class="c1">----+----+</span>
<span class="o">|</span><span class="n">col1</span><span class="o">|</span><span class="n">col2</span><span class="o">|</span>
<span class="o">+</span><span class="c1">----+----+</span>
<span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="o">|</span><span class="w"> </span><span class="n">a</span><span class="o">|</span>
<span class="o">|</span><span class="w"> </span><span class="mi">2</span><span class="o">|</span><span class="w"> </span><span class="n">b</span><span class="o">|</span>
<span class="o">+</span><span class="c1">----+----+</span>
<span class="c1">-- posexplode</span>
<span class="k">SELECT</span><span class="w"> </span><span class="n">posexplode</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">20</span><span class="p">));</span>
<span class="o">+</span><span class="c1">---+---+</span>
<span class="o">|</span><span class="n">pos</span><span class="o">|</span><span class="n">col</span><span class="o">|</span>
<span class="o">+</span><span class="c1">---+---+</span>
<span class="o">|</span><span class="w"> </span><span class="mi">0</span><span class="o">|</span><span class="w"> </span><span class="mi">10</span><span class="o">|</span>
<span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="o">|</span><span class="w"> </span><span class="mi">20</span><span class="o">|</span>
<span class="o">+</span><span class="c1">---+---+</span>
<span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">posexplode</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">20</span><span class="p">));</span>
<span class="o">+</span><span class="c1">---+---+</span>
<span class="o">|</span><span class="n">pos</span><span class="o">|</span><span class="n">col</span><span class="o">|</span>
<span class="o">+</span><span class="c1">---+---+</span>
<span class="o">|</span><span class="w"> </span><span class="mi">0</span><span class="o">|</span><span class="w"> </span><span class="mi">10</span><span class="o">|</span>
<span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="o">|</span><span class="w"> </span><span class="mi">20</span><span class="o">|</span>
<span class="o">+</span><span class="c1">---+---+</span>
<span class="c1">-- posexplode_outer</span>
<span class="k">SELECT</span><span class="w"> </span><span class="n">posexplode_outer</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">20</span><span class="p">));</span>
<span class="o">+</span><span class="c1">---+---+</span>
<span class="o">|</span><span class="n">pos</span><span class="o">|</span><span class="n">col</span><span class="o">|</span>
<span class="o">+</span><span class="c1">---+---+</span>
<span class="o">|</span><span class="w"> </span><span class="mi">0</span><span class="o">|</span><span class="w"> </span><span class="mi">10</span><span class="o">|</span>
<span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="o">|</span><span class="w"> </span><span class="mi">20</span><span class="o">|</span>
<span class="o">+</span><span class="c1">---+---+</span>
<span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">posexplode_outer</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">20</span><span class="p">));</span>
<span class="o">+</span><span class="c1">---+---+</span>
<span class="o">|</span><span class="n">pos</span><span class="o">|</span><span class="n">col</span><span class="o">|</span>
<span class="o">+</span><span class="c1">---+---+</span>
<span class="o">|</span><span class="w"> </span><span class="mi">0</span><span class="o">|</span><span class="w"> </span><span class="mi">10</span><span class="o">|</span>
<span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="o">|</span><span class="w"> </span><span class="mi">20</span><span class="o">|</span>
<span class="o">+</span><span class="c1">---+---+</span>
<span class="c1">-- stack</span>
<span class="k">SELECT</span><span class="w"> </span><span class="n">stack</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">);</span>
<span class="o">+</span><span class="c1">----+----+</span>
<span class="o">|</span><span class="n">col0</span><span class="o">|</span><span class="n">col1</span><span class="o">|</span>
<span class="o">+</span><span class="c1">----+----+</span>
<span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="o">|</span><span class="w"> </span><span class="mi">2</span><span class="o">|</span>
<span class="o">|</span><span class="w"> </span><span class="mi">3</span><span class="o">|</span><span class="k">NULL</span><span class="o">|</span>
<span class="o">+</span><span class="c1">----+----+</span>
</code></pre></div>