| <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">=></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">=></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">=></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">=></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">'a'</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">'b'</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">'a'</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">'b'</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> |