1
0
Fork 0

Merging upstream version 23.13.7.

Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
Daniel Baumann 2025-02-13 21:34:33 +01:00
parent 5354237ad5
commit 73214d5324
Signed by: daniel
GPG key ID: FBB4F0E80A80222F
38 changed files with 5529 additions and 5366 deletions

View file

@ -5104,7 +5104,7 @@
</span><span id="L-3795"><a href="#L-3795"><span class="linenos">3795</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">cred_expr</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="p">):</span>
</span><span id="L-3796"><a href="#L-3796"><span class="linenos">3796</span></a> <span class="c1"># Redshift case: CREDENTIALS &lt;string&gt;</span>
</span><span id="L-3797"><a href="#L-3797"><span class="linenos">3797</span></a> <span class="n">credentials</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;credentials&quot;</span><span class="p">)</span>
</span><span id="L-3798"><a href="#L-3798"><span class="linenos">3798</span></a> <span class="n">credentials</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;CREDENTIALS </span><span class="si">{</span><span class="n">credentials</span><span class="si">}</span><span class="s2">&quot;</span>
</span><span id="L-3798"><a href="#L-3798"><span class="linenos">3798</span></a> <span class="n">credentials</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;CREDENTIALS </span><span class="si">{</span><span class="n">credentials</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">credentials</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
</span><span id="L-3799"><a href="#L-3799"><span class="linenos">3799</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-3800"><a href="#L-3800"><span class="linenos">3800</span></a> <span class="c1"># Snowflake case: CREDENTIALS = (...)</span>
</span><span id="L-3801"><a href="#L-3801"><span class="linenos">3801</span></a> <span class="n">credentials</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="s2">&quot;credentials&quot;</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot; &quot;</span><span class="p">)</span>
@ -5114,7 +5114,7 @@
</span><span id="L-3805"><a href="#L-3805"><span class="linenos">3805</span></a> <span class="n">storage</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">storage</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">storage</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
</span><span id="L-3806"><a href="#L-3806"><span class="linenos">3806</span></a>
</span><span id="L-3807"><a href="#L-3807"><span class="linenos">3807</span></a> <span class="n">encryption</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="s2">&quot;encryption&quot;</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot; &quot;</span><span class="p">)</span>
</span><span id="L-3808"><a href="#L-3808"><span class="linenos">3808</span></a> <span class="n">encryption</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;ENCRYPTION = (</span><span class="si">{</span><span class="n">encryption</span><span class="si">}</span><span class="s2">)&quot;</span> <span class="k">if</span> <span class="n">encryption</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
</span><span id="L-3808"><a href="#L-3808"><span class="linenos">3808</span></a> <span class="n">encryption</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; ENCRYPTION = (</span><span class="si">{</span><span class="n">encryption</span><span class="si">}</span><span class="s2">)&quot;</span> <span class="k">if</span> <span class="n">encryption</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
</span><span id="L-3809"><a href="#L-3809"><span class="linenos">3809</span></a>
</span><span id="L-3810"><a href="#L-3810"><span class="linenos">3810</span></a> <span class="n">iam_role</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;iam_role&quot;</span><span class="p">)</span>
</span><span id="L-3811"><a href="#L-3811"><span class="linenos">3811</span></a> <span class="n">iam_role</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;IAM_ROLE </span><span class="si">{</span><span class="n">iam_role</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">iam_role</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
@ -5130,16 +5130,15 @@
</span><span id="L-3821"><a href="#L-3821"><span class="linenos">3821</span></a>
</span><span id="L-3822"><a href="#L-3822"><span class="linenos">3822</span></a> <span class="n">credentials</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;credentials&quot;</span><span class="p">)</span>
</span><span id="L-3823"><a href="#L-3823"><span class="linenos">3823</span></a> <span class="n">credentials</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">credentials</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">credentials</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
</span><span id="L-3824"><a href="#L-3824"><span class="linenos">3824</span></a>
</span><span id="L-3825"><a href="#L-3825"><span class="linenos">3825</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="s2">&quot; FROM &quot;</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;kind&quot;</span><span class="p">)</span> <span class="k">else</span> <span class="s2">&quot; TO &quot;</span>
</span><span id="L-3826"><a href="#L-3826"><span class="linenos">3826</span></a> <span class="n">files</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="s2">&quot;files&quot;</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span><span id="L-3827"><a href="#L-3827"><span class="linenos">3827</span></a>
</span><span id="L-3828"><a href="#L-3828"><span class="linenos">3828</span></a> <span class="n">sep</span> <span class="o">=</span> <span class="s2">&quot;, &quot;</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dialect</span><span class="o">.</span><span class="n">COPY_PARAMS_ARE_CSV</span> <span class="k">else</span> <span class="s2">&quot; &quot;</span>
</span><span id="L-3829"><a href="#L-3829"><span class="linenos">3829</span></a> <span class="n">params</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="s2">&quot;params&quot;</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">sep</span><span class="p">)</span>
</span><span id="L-3830"><a href="#L-3830"><span class="linenos">3830</span></a> <span class="k">if</span> <span class="n">params</span><span class="p">:</span>
</span><span id="L-3831"><a href="#L-3831"><span class="linenos">3831</span></a> <span class="n">params</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; WITH (</span><span class="si">{</span><span class="n">params</span><span class="si">}</span><span class="s2">)&quot;</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">COPY_PARAMS_ARE_WRAPPED</span> <span class="k">else</span> <span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">params</span><span class="si">}</span><span class="s2">&quot;</span>
</span><span id="L-3832"><a href="#L-3832"><span class="linenos">3832</span></a>
</span><span id="L-3833"><a href="#L-3833"><span class="linenos">3833</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;COPY</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">kind</span><span class="si">}{</span><span class="n">files</span><span class="si">}{</span><span class="n">credentials</span><span class="si">}{</span><span class="n">params</span><span class="si">}</span><span class="s2">&quot;</span>
</span><span id="L-3824"><a href="#L-3824"><span class="linenos">3824</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="s2">&quot; FROM &quot;</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;kind&quot;</span><span class="p">)</span> <span class="k">else</span> <span class="s2">&quot; TO &quot;</span>
</span><span id="L-3825"><a href="#L-3825"><span class="linenos">3825</span></a> <span class="n">files</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="s2">&quot;files&quot;</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span><span id="L-3826"><a href="#L-3826"><span class="linenos">3826</span></a>
</span><span id="L-3827"><a href="#L-3827"><span class="linenos">3827</span></a> <span class="n">sep</span> <span class="o">=</span> <span class="s2">&quot;, &quot;</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dialect</span><span class="o">.</span><span class="n">COPY_PARAMS_ARE_CSV</span> <span class="k">else</span> <span class="s2">&quot; &quot;</span>
</span><span id="L-3828"><a href="#L-3828"><span class="linenos">3828</span></a> <span class="n">params</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="s2">&quot;params&quot;</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">sep</span><span class="p">)</span>
</span><span id="L-3829"><a href="#L-3829"><span class="linenos">3829</span></a> <span class="k">if</span> <span class="n">params</span><span class="p">:</span>
</span><span id="L-3830"><a href="#L-3830"><span class="linenos">3830</span></a> <span class="n">params</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; WITH (</span><span class="si">{</span><span class="n">params</span><span class="si">}</span><span class="s2">)&quot;</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">COPY_PARAMS_ARE_WRAPPED</span> <span class="k">else</span> <span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">params</span><span class="si">}</span><span class="s2">&quot;</span>
</span><span id="L-3831"><a href="#L-3831"><span class="linenos">3831</span></a>
</span><span id="L-3832"><a href="#L-3832"><span class="linenos">3832</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;COPY</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">kind</span><span class="si">}{</span><span class="n">files</span><span class="si">}{</span><span class="n">credentials</span><span class="si">}{</span><span class="n">params</span><span class="si">}</span><span class="s2">&quot;</span>
</span></pre></div>
@ -8941,7 +8940,7 @@
</span><span id="Generator-3796"><a href="#Generator-3796"><span class="linenos">3796</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">cred_expr</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="p">):</span>
</span><span id="Generator-3797"><a href="#Generator-3797"><span class="linenos">3797</span></a> <span class="c1"># Redshift case: CREDENTIALS &lt;string&gt;</span>
</span><span id="Generator-3798"><a href="#Generator-3798"><span class="linenos">3798</span></a> <span class="n">credentials</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;credentials&quot;</span><span class="p">)</span>
</span><span id="Generator-3799"><a href="#Generator-3799"><span class="linenos">3799</span></a> <span class="n">credentials</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;CREDENTIALS </span><span class="si">{</span><span class="n">credentials</span><span class="si">}</span><span class="s2">&quot;</span>
</span><span id="Generator-3799"><a href="#Generator-3799"><span class="linenos">3799</span></a> <span class="n">credentials</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;CREDENTIALS </span><span class="si">{</span><span class="n">credentials</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">credentials</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
</span><span id="Generator-3800"><a href="#Generator-3800"><span class="linenos">3800</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="Generator-3801"><a href="#Generator-3801"><span class="linenos">3801</span></a> <span class="c1"># Snowflake case: CREDENTIALS = (...)</span>
</span><span id="Generator-3802"><a href="#Generator-3802"><span class="linenos">3802</span></a> <span class="n">credentials</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="s2">&quot;credentials&quot;</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot; &quot;</span><span class="p">)</span>
@ -8951,7 +8950,7 @@
</span><span id="Generator-3806"><a href="#Generator-3806"><span class="linenos">3806</span></a> <span class="n">storage</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">storage</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">storage</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
</span><span id="Generator-3807"><a href="#Generator-3807"><span class="linenos">3807</span></a>
</span><span id="Generator-3808"><a href="#Generator-3808"><span class="linenos">3808</span></a> <span class="n">encryption</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="s2">&quot;encryption&quot;</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot; &quot;</span><span class="p">)</span>
</span><span id="Generator-3809"><a href="#Generator-3809"><span class="linenos">3809</span></a> <span class="n">encryption</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;ENCRYPTION = (</span><span class="si">{</span><span class="n">encryption</span><span class="si">}</span><span class="s2">)&quot;</span> <span class="k">if</span> <span class="n">encryption</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
</span><span id="Generator-3809"><a href="#Generator-3809"><span class="linenos">3809</span></a> <span class="n">encryption</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; ENCRYPTION = (</span><span class="si">{</span><span class="n">encryption</span><span class="si">}</span><span class="s2">)&quot;</span> <span class="k">if</span> <span class="n">encryption</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
</span><span id="Generator-3810"><a href="#Generator-3810"><span class="linenos">3810</span></a>
</span><span id="Generator-3811"><a href="#Generator-3811"><span class="linenos">3811</span></a> <span class="n">iam_role</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;iam_role&quot;</span><span class="p">)</span>
</span><span id="Generator-3812"><a href="#Generator-3812"><span class="linenos">3812</span></a> <span class="n">iam_role</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;IAM_ROLE </span><span class="si">{</span><span class="n">iam_role</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">iam_role</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
@ -8967,16 +8966,15 @@
</span><span id="Generator-3822"><a href="#Generator-3822"><span class="linenos">3822</span></a>
</span><span id="Generator-3823"><a href="#Generator-3823"><span class="linenos">3823</span></a> <span class="n">credentials</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;credentials&quot;</span><span class="p">)</span>
</span><span id="Generator-3824"><a href="#Generator-3824"><span class="linenos">3824</span></a> <span class="n">credentials</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">credentials</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">credentials</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
</span><span id="Generator-3825"><a href="#Generator-3825"><span class="linenos">3825</span></a>
</span><span id="Generator-3826"><a href="#Generator-3826"><span class="linenos">3826</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="s2">&quot; FROM &quot;</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;kind&quot;</span><span class="p">)</span> <span class="k">else</span> <span class="s2">&quot; TO &quot;</span>
</span><span id="Generator-3827"><a href="#Generator-3827"><span class="linenos">3827</span></a> <span class="n">files</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="s2">&quot;files&quot;</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span><span id="Generator-3828"><a href="#Generator-3828"><span class="linenos">3828</span></a>
</span><span id="Generator-3829"><a href="#Generator-3829"><span class="linenos">3829</span></a> <span class="n">sep</span> <span class="o">=</span> <span class="s2">&quot;, &quot;</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dialect</span><span class="o">.</span><span class="n">COPY_PARAMS_ARE_CSV</span> <span class="k">else</span> <span class="s2">&quot; &quot;</span>
</span><span id="Generator-3830"><a href="#Generator-3830"><span class="linenos">3830</span></a> <span class="n">params</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="s2">&quot;params&quot;</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">sep</span><span class="p">)</span>
</span><span id="Generator-3831"><a href="#Generator-3831"><span class="linenos">3831</span></a> <span class="k">if</span> <span class="n">params</span><span class="p">:</span>
</span><span id="Generator-3832"><a href="#Generator-3832"><span class="linenos">3832</span></a> <span class="n">params</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; WITH (</span><span class="si">{</span><span class="n">params</span><span class="si">}</span><span class="s2">)&quot;</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">COPY_PARAMS_ARE_WRAPPED</span> <span class="k">else</span> <span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">params</span><span class="si">}</span><span class="s2">&quot;</span>
</span><span id="Generator-3833"><a href="#Generator-3833"><span class="linenos">3833</span></a>
</span><span id="Generator-3834"><a href="#Generator-3834"><span class="linenos">3834</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;COPY</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">kind</span><span class="si">}{</span><span class="n">files</span><span class="si">}{</span><span class="n">credentials</span><span class="si">}{</span><span class="n">params</span><span class="si">}</span><span class="s2">&quot;</span>
</span><span id="Generator-3825"><a href="#Generator-3825"><span class="linenos">3825</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="s2">&quot; FROM &quot;</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;kind&quot;</span><span class="p">)</span> <span class="k">else</span> <span class="s2">&quot; TO &quot;</span>
</span><span id="Generator-3826"><a href="#Generator-3826"><span class="linenos">3826</span></a> <span class="n">files</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="s2">&quot;files&quot;</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span><span id="Generator-3827"><a href="#Generator-3827"><span class="linenos">3827</span></a>
</span><span id="Generator-3828"><a href="#Generator-3828"><span class="linenos">3828</span></a> <span class="n">sep</span> <span class="o">=</span> <span class="s2">&quot;, &quot;</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dialect</span><span class="o">.</span><span class="n">COPY_PARAMS_ARE_CSV</span> <span class="k">else</span> <span class="s2">&quot; &quot;</span>
</span><span id="Generator-3829"><a href="#Generator-3829"><span class="linenos">3829</span></a> <span class="n">params</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="s2">&quot;params&quot;</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">sep</span><span class="p">)</span>
</span><span id="Generator-3830"><a href="#Generator-3830"><span class="linenos">3830</span></a> <span class="k">if</span> <span class="n">params</span><span class="p">:</span>
</span><span id="Generator-3831"><a href="#Generator-3831"><span class="linenos">3831</span></a> <span class="n">params</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; WITH (</span><span class="si">{</span><span class="n">params</span><span class="si">}</span><span class="s2">)&quot;</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">COPY_PARAMS_ARE_WRAPPED</span> <span class="k">else</span> <span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">params</span><span class="si">}</span><span class="s2">&quot;</span>
</span><span id="Generator-3832"><a href="#Generator-3832"><span class="linenos">3832</span></a>
</span><span id="Generator-3833"><a href="#Generator-3833"><span class="linenos">3833</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;COPY</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">kind</span><span class="si">}{</span><span class="n">files</span><span class="si">}{</span><span class="n">credentials</span><span class="si">}{</span><span class="n">params</span><span class="si">}</span><span class="s2">&quot;</span>
</span></pre></div>
@ -9780,7 +9778,7 @@ Default: True</li>
<div class="attr variable">
<span class="name">SUPPORTED_JSON_PATH_PARTS</span> =
<input id="Generator.SUPPORTED_JSON_PATH_PARTS-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<label class="view-value-button pdoc-button" for="Generator.SUPPORTED_JSON_PATH_PARTS-view-value"></label><span class="default_value">{&lt;class &#39;<a href="expressions.html#JSONPathRecursive">sqlglot.expressions.JSONPathRecursive</a>&#39;&gt;, &lt;class &#39;<a href="expressions.html#JSONPathKey">sqlglot.expressions.JSONPathKey</a>&#39;&gt;, &lt;class &#39;<a href="expressions.html#JSONPathWildcard">sqlglot.expressions.JSONPathWildcard</a>&#39;&gt;, &lt;class &#39;<a href="expressions.html#JSONPathFilter">sqlglot.expressions.JSONPathFilter</a>&#39;&gt;, &lt;class &#39;<a href="expressions.html#JSONPathUnion">sqlglot.expressions.JSONPathUnion</a>&#39;&gt;, &lt;class &#39;<a href="expressions.html#JSONPathSubscript">sqlglot.expressions.JSONPathSubscript</a>&#39;&gt;, &lt;class &#39;<a href="expressions.html#JSONPathSelector">sqlglot.expressions.JSONPathSelector</a>&#39;&gt;, &lt;class &#39;<a href="expressions.html#JSONPathSlice">sqlglot.expressions.JSONPathSlice</a>&#39;&gt;, &lt;class &#39;<a href="expressions.html#JSONPathScript">sqlglot.expressions.JSONPathScript</a>&#39;&gt;, &lt;class &#39;<a href="expressions.html#JSONPathRoot">sqlglot.expressions.JSONPathRoot</a>&#39;&gt;}</span>
<label class="view-value-button pdoc-button" for="Generator.SUPPORTED_JSON_PATH_PARTS-view-value"></label><span class="default_value">{&lt;class &#39;<a href="expressions.html#JSONPathRecursive">sqlglot.expressions.JSONPathRecursive</a>&#39;&gt;, &lt;class &#39;<a href="expressions.html#JSONPathWildcard">sqlglot.expressions.JSONPathWildcard</a>&#39;&gt;, &lt;class &#39;<a href="expressions.html#JSONPathUnion">sqlglot.expressions.JSONPathUnion</a>&#39;&gt;, &lt;class &#39;<a href="expressions.html#JSONPathKey">sqlglot.expressions.JSONPathKey</a>&#39;&gt;, &lt;class &#39;<a href="expressions.html#JSONPathSubscript">sqlglot.expressions.JSONPathSubscript</a>&#39;&gt;, &lt;class &#39;<a href="expressions.html#JSONPathFilter">sqlglot.expressions.JSONPathFilter</a>&#39;&gt;, &lt;class &#39;<a href="expressions.html#JSONPathSelector">sqlglot.expressions.JSONPathSelector</a>&#39;&gt;, &lt;class &#39;<a href="expressions.html#JSONPathSlice">sqlglot.expressions.JSONPathSlice</a>&#39;&gt;, &lt;class &#39;<a href="expressions.html#JSONPathScript">sqlglot.expressions.JSONPathScript</a>&#39;&gt;, &lt;class &#39;<a href="expressions.html#JSONPathRoot">sqlglot.expressions.JSONPathRoot</a>&#39;&gt;}</span>
</div>
@ -10038,7 +10036,7 @@ Default: True</li>
<div id="Generator.PARAMETERIZABLE_TEXT_TYPES" class="classattr">
<div class="attr variable">
<span class="name">PARAMETERIZABLE_TEXT_TYPES</span> =
<span class="default_value">{&lt;Type.NVARCHAR: &#39;NVARCHAR&#39;&gt;, &lt;Type.NCHAR: &#39;NCHAR&#39;&gt;, &lt;Type.CHAR: &#39;CHAR&#39;&gt;, &lt;Type.VARCHAR: &#39;VARCHAR&#39;&gt;}</span>
<span class="default_value">{&lt;Type.VARCHAR: &#39;VARCHAR&#39;&gt;, &lt;Type.CHAR: &#39;CHAR&#39;&gt;, &lt;Type.NVARCHAR: &#39;NVARCHAR&#39;&gt;, &lt;Type.NCHAR: &#39;NCHAR&#39;&gt;}</span>
</div>
@ -18459,7 +18457,7 @@ it is safer to copy.</li>
</span><span id="Generator.credentials_sql-3796"><a href="#Generator.credentials_sql-3796"><span class="linenos">3796</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">cred_expr</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="p">):</span>
</span><span id="Generator.credentials_sql-3797"><a href="#Generator.credentials_sql-3797"><span class="linenos">3797</span></a> <span class="c1"># Redshift case: CREDENTIALS &lt;string&gt;</span>
</span><span id="Generator.credentials_sql-3798"><a href="#Generator.credentials_sql-3798"><span class="linenos">3798</span></a> <span class="n">credentials</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;credentials&quot;</span><span class="p">)</span>
</span><span id="Generator.credentials_sql-3799"><a href="#Generator.credentials_sql-3799"><span class="linenos">3799</span></a> <span class="n">credentials</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;CREDENTIALS </span><span class="si">{</span><span class="n">credentials</span><span class="si">}</span><span class="s2">&quot;</span>
</span><span id="Generator.credentials_sql-3799"><a href="#Generator.credentials_sql-3799"><span class="linenos">3799</span></a> <span class="n">credentials</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;CREDENTIALS </span><span class="si">{</span><span class="n">credentials</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">credentials</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
</span><span id="Generator.credentials_sql-3800"><a href="#Generator.credentials_sql-3800"><span class="linenos">3800</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="Generator.credentials_sql-3801"><a href="#Generator.credentials_sql-3801"><span class="linenos">3801</span></a> <span class="c1"># Snowflake case: CREDENTIALS = (...)</span>
</span><span id="Generator.credentials_sql-3802"><a href="#Generator.credentials_sql-3802"><span class="linenos">3802</span></a> <span class="n">credentials</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="s2">&quot;credentials&quot;</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot; &quot;</span><span class="p">)</span>
@ -18469,7 +18467,7 @@ it is safer to copy.</li>
</span><span id="Generator.credentials_sql-3806"><a href="#Generator.credentials_sql-3806"><span class="linenos">3806</span></a> <span class="n">storage</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">storage</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">storage</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
</span><span id="Generator.credentials_sql-3807"><a href="#Generator.credentials_sql-3807"><span class="linenos">3807</span></a>
</span><span id="Generator.credentials_sql-3808"><a href="#Generator.credentials_sql-3808"><span class="linenos">3808</span></a> <span class="n">encryption</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="s2">&quot;encryption&quot;</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot; &quot;</span><span class="p">)</span>
</span><span id="Generator.credentials_sql-3809"><a href="#Generator.credentials_sql-3809"><span class="linenos">3809</span></a> <span class="n">encryption</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;ENCRYPTION = (</span><span class="si">{</span><span class="n">encryption</span><span class="si">}</span><span class="s2">)&quot;</span> <span class="k">if</span> <span class="n">encryption</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
</span><span id="Generator.credentials_sql-3809"><a href="#Generator.credentials_sql-3809"><span class="linenos">3809</span></a> <span class="n">encryption</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; ENCRYPTION = (</span><span class="si">{</span><span class="n">encryption</span><span class="si">}</span><span class="s2">)&quot;</span> <span class="k">if</span> <span class="n">encryption</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
</span><span id="Generator.credentials_sql-3810"><a href="#Generator.credentials_sql-3810"><span class="linenos">3810</span></a>
</span><span id="Generator.credentials_sql-3811"><a href="#Generator.credentials_sql-3811"><span class="linenos">3811</span></a> <span class="n">iam_role</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;iam_role&quot;</span><span class="p">)</span>
</span><span id="Generator.credentials_sql-3812"><a href="#Generator.credentials_sql-3812"><span class="linenos">3812</span></a> <span class="n">iam_role</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;IAM_ROLE </span><span class="si">{</span><span class="n">iam_role</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">iam_role</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
@ -18501,16 +18499,15 @@ it is safer to copy.</li>
</span><span id="Generator.copy_sql-3822"><a href="#Generator.copy_sql-3822"><span class="linenos">3822</span></a>
</span><span id="Generator.copy_sql-3823"><a href="#Generator.copy_sql-3823"><span class="linenos">3823</span></a> <span class="n">credentials</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">&quot;credentials&quot;</span><span class="p">)</span>
</span><span id="Generator.copy_sql-3824"><a href="#Generator.copy_sql-3824"><span class="linenos">3824</span></a> <span class="n">credentials</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">credentials</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">credentials</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
</span><span id="Generator.copy_sql-3825"><a href="#Generator.copy_sql-3825"><span class="linenos">3825</span></a>
</span><span id="Generator.copy_sql-3826"><a href="#Generator.copy_sql-3826"><span class="linenos">3826</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="s2">&quot; FROM &quot;</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;kind&quot;</span><span class="p">)</span> <span class="k">else</span> <span class="s2">&quot; TO &quot;</span>
</span><span id="Generator.copy_sql-3827"><a href="#Generator.copy_sql-3827"><span class="linenos">3827</span></a> <span class="n">files</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="s2">&quot;files&quot;</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span><span id="Generator.copy_sql-3828"><a href="#Generator.copy_sql-3828"><span class="linenos">3828</span></a>
</span><span id="Generator.copy_sql-3829"><a href="#Generator.copy_sql-3829"><span class="linenos">3829</span></a> <span class="n">sep</span> <span class="o">=</span> <span class="s2">&quot;, &quot;</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dialect</span><span class="o">.</span><span class="n">COPY_PARAMS_ARE_CSV</span> <span class="k">else</span> <span class="s2">&quot; &quot;</span>
</span><span id="Generator.copy_sql-3830"><a href="#Generator.copy_sql-3830"><span class="linenos">3830</span></a> <span class="n">params</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="s2">&quot;params&quot;</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">sep</span><span class="p">)</span>
</span><span id="Generator.copy_sql-3831"><a href="#Generator.copy_sql-3831"><span class="linenos">3831</span></a> <span class="k">if</span> <span class="n">params</span><span class="p">:</span>
</span><span id="Generator.copy_sql-3832"><a href="#Generator.copy_sql-3832"><span class="linenos">3832</span></a> <span class="n">params</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; WITH (</span><span class="si">{</span><span class="n">params</span><span class="si">}</span><span class="s2">)&quot;</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">COPY_PARAMS_ARE_WRAPPED</span> <span class="k">else</span> <span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">params</span><span class="si">}</span><span class="s2">&quot;</span>
</span><span id="Generator.copy_sql-3833"><a href="#Generator.copy_sql-3833"><span class="linenos">3833</span></a>
</span><span id="Generator.copy_sql-3834"><a href="#Generator.copy_sql-3834"><span class="linenos">3834</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;COPY</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">kind</span><span class="si">}{</span><span class="n">files</span><span class="si">}{</span><span class="n">credentials</span><span class="si">}{</span><span class="n">params</span><span class="si">}</span><span class="s2">&quot;</span>
</span><span id="Generator.copy_sql-3825"><a href="#Generator.copy_sql-3825"><span class="linenos">3825</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="s2">&quot; FROM &quot;</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;kind&quot;</span><span class="p">)</span> <span class="k">else</span> <span class="s2">&quot; TO &quot;</span>
</span><span id="Generator.copy_sql-3826"><a href="#Generator.copy_sql-3826"><span class="linenos">3826</span></a> <span class="n">files</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="s2">&quot;files&quot;</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span><span id="Generator.copy_sql-3827"><a href="#Generator.copy_sql-3827"><span class="linenos">3827</span></a>
</span><span id="Generator.copy_sql-3828"><a href="#Generator.copy_sql-3828"><span class="linenos">3828</span></a> <span class="n">sep</span> <span class="o">=</span> <span class="s2">&quot;, &quot;</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dialect</span><span class="o">.</span><span class="n">COPY_PARAMS_ARE_CSV</span> <span class="k">else</span> <span class="s2">&quot; &quot;</span>
</span><span id="Generator.copy_sql-3829"><a href="#Generator.copy_sql-3829"><span class="linenos">3829</span></a> <span class="n">params</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="s2">&quot;params&quot;</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">sep</span><span class="p">)</span>
</span><span id="Generator.copy_sql-3830"><a href="#Generator.copy_sql-3830"><span class="linenos">3830</span></a> <span class="k">if</span> <span class="n">params</span><span class="p">:</span>
</span><span id="Generator.copy_sql-3831"><a href="#Generator.copy_sql-3831"><span class="linenos">3831</span></a> <span class="n">params</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot; WITH (</span><span class="si">{</span><span class="n">params</span><span class="si">}</span><span class="s2">)&quot;</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">COPY_PARAMS_ARE_WRAPPED</span> <span class="k">else</span> <span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">params</span><span class="si">}</span><span class="s2">&quot;</span>
</span><span id="Generator.copy_sql-3832"><a href="#Generator.copy_sql-3832"><span class="linenos">3832</span></a>
</span><span id="Generator.copy_sql-3833"><a href="#Generator.copy_sql-3833"><span class="linenos">3833</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;COPY</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">kind</span><span class="si">}{</span><span class="n">files</span><span class="si">}{</span><span class="n">credentials</span><span class="si">}{</span><span class="n">params</span><span class="si">}</span><span class="s2">&quot;</span>
</span></pre></div>